সেলুলার অটোমেটন কী
সেলুলার অটোমেটন হলো ঘরের একটি বোর্ড, যেখানে প্রতিটি ঘর একটি অবস্থায় থাকে (এখানে জীবিত বা মৃত) এবং প্রজন্ম নামে ধাপে ধাপে বদলায়। প্রতিটি ধাপে সব ঘর একসঙ্গে একই নিয়মে হালনাগাদ হয়, আর সেই নিয়ম শুধু প্রতিটি ঘরকে ঘিরে থাকা আটটি প্রতিবেশী ঘর দেখে।
গেম অফ লাইফে জেতা বা হারার কিছু নেই: আপনি শুরুর অবস্থান বেছে দেন, বাকিটা নিয়মই করে। মজার ব্যাপার হলো, এত সরল নিয়ম থেকে খুবই জটিল ও অপ্রত্যাশিত আচরণ তৈরি হয়, আর সেজন্যই গণিত, কম্পিউটার বিজ্ঞান, এমনকি জীববিজ্ঞানেও এটি নিয়ে পড়াশোনা হয়।
নিয়মগুলো সহজ ভাষায়
প্রতিটি ঘরের জীবিত প্রতিবেশীর সংখ্যা দেখা হয় (ঘরকে ঘিরে থাকা আটটি ঘর, কোনাকুনিগুলোসহ), এবং পুরো বোর্ডে একসঙ্গে এই নিয়মগুলো প্রয়োগ হয়:
- দুইয়ের কম জীবিত প্রতিবেশী থাকলে একটি জীবিত কোষ একাকিত্বে মারা যায়।
- দুই বা তিনটি জীবিত প্রতিবেশী থাকলে একটি জীবিত কোষ বেঁচে থাকে।
- তিনটির বেশি জীবিত প্রতিবেশী থাকলে একটি জীবিত কোষ ভিড়ের চাপে মারা যায়।
- ঠিক তিনটি জীবিত প্রতিবেশী থাকলে একটি মৃত ঘরে নতুন কোষ জন্মায়।
এই নিয়মের সংক্ষিপ্ত সংকেত হলো B3/S23: B (birth, জন্ম) 3 মানে 3 প্রতিবেশী থাকলে জন্ম হয়, আর S (survival, বেঁচে থাকা) 23 মানে 2 বা 3 প্রতিবেশী থাকলে কোষ বেঁচে থাকে। টুলের বিকল্প নিয়মগুলোও একই সংকেত ব্যবহার করে, যেমন হাইলাইফ হলো B36/S23 এবং বীজ হলো B2/S।
হাতে করে একটি প্রজন্ম হিসাব
ব্লিঙ্কার নিন: একটি অনুভূমিক সারিতে তিনটি জীবিত কোষ। মাঝেরটির 2টি জীবিত প্রতিবেশী আছে, তাই সেটি বেঁচে থাকে। দুই প্রান্তের কোষের মাত্র 1টি প্রতিবেশী, তাই সেগুলো মারা যায়। মাঝের কোষের ঠিক ওপরের ও ঠিক নিচের ঘরে 3টি জীবিত প্রতিবেশী (সারির তিনটি কোষ), তাই সেখানে নতুন কোষ জন্মায়। ফল: তিনটি কোষের একটি উল্লম্ব সারি।
পরের প্রজন্মে একই প্রক্রিয়া আবার হয় এবং সারিটি আবার অনুভূমিক হয়ে যায়। এজন্যই ব্লিঙ্কার 2 পর্যায়ের একটি দোলক। 2 × 2 বর্গ, অর্থাৎ ব্লক দিয়েও একই চেষ্টা করে দেখুন: প্রতিটি কোষের 3টি প্রতিবেশী, তাই সবাই বেঁচে থাকে, আর কোনো খালি ঘরেরই 3টি জীবিত প্রতিবেশী নেই। এটি কখনো বদলায় না, তাই একে বলা হয় স্থির আকার (স্টিল লাইফ)।
ইতিহাস: কনওয়ে, গার্ডনার ও পত্রিকা
ব্রিটিশ গণিতবিদ জন কনওয়ে 1970 সালে খেলাটি উদ্ভাবন করেন। মার্টিন গার্ডনার Scientific American পত্রিকায় তাঁর গাণিতিক খেলার কলামে, 1970 সালের অক্টোবর সংখ্যায়, এটি ছড়িয়ে দেন। তখন থেকে প্যাটার্ন খুঁজে বের করা ও তালিকা করা শখের মানুষদের একটি বিশাল সম্প্রদায় গড়ে উঠেছে।
সময়ের সঙ্গে প্রমাণিত হয়েছে যে খেলাটি টুরিং সম্পূর্ণ: সঠিক আকার সাজালে নীতিগতভাবে কম্পিউটার যা হিসাব করতে পারে, এটিও তা পারে। এটি এখনও বিখ্যাত থাকার একটি কারণ: ন্যূনতম নিয়ম থেকে সীমাহীন জটিলতা।
প্যাটার্নের পরিবার এবং কোনগুলো চেষ্টা করবেন
প্যাটার্নগুলোকে আচরণ অনুযায়ী ভাগ করা হয়। সবগুলো টুলের «প্যাটার্ন» মেনুতে এই নামগুলোতেই আছে:
| পরিবার | প্যাটার্ন | কী করে |
|---|---|---|
| স্থির আকার | ব্লক, মৌচাক | কখনো বদলায় না: ব্লকে 4টি কোষ, মৌচাকে 6টি |
| দোলক | ব্লিঙ্কার, টোড, বিকন | পর্যায় 2: প্রতি 2 প্রজন্মে আবার শুরু থেকে |
| দোলক | পালসার | পর্যায় 3, প্রাথমিক দশায় 48টি কোষ |
| দোলক | পেন্টাডেকাথলন | পর্যায় 15 |
| মহাকাশযান | গ্লাইডার | 5টি কোষ; প্রতি 4 প্রজন্মে কোনাকুনি 1 ঘর এগোয় |
| মহাকাশযান | হালকা মহাকাশযান | সোজা পথে বোর্ড পার হয়, পর্যায় 4 |
| গান | গসপার গ্লাইডার গান | প্রতি 30 প্রজন্মে একটি নতুন গ্লাইডার ছাড়ে |
| শুরুর বিশৃঙ্খলা | R-পেন্টোমিনো | 5টি কোষ, অসীম সমতলে স্থির হতে 1.103 প্রজন্ম লাগে |
গসপার গ্লাইডার গান আবিষ্কার করেন বিল গসপার 1970 সালে, আর এটিই প্রথম প্রমাণ যে একটি জনসংখ্যা সীমাহীনভাবে বাড়তে পারে। এগুলো ছাড়াও টুলে আছে একর্ন ও ডাই হার্ড, দুটি ছোট প্যাটার্ন, যেগুলো স্থির হতে অনেক সময় নেয়।
গেম অফ লাইফ টুল কীভাবে ব্যবহার করবেন
- বোর্ডে ট্যাপ করুন বা টেনে জীবিত কোষ আঁকুন (জীবিত ঘরে আবার ট্যাপ করলে সেটি সরে যায়), অথবা «প্যাটার্ন» মেনু থেকে একটি প্যাটার্ন বেছে নিন।
- «শুরু» চাপুন। «এক প্রজন্ম» দিয়ে একটি করে ধাপ এগিয়ে ধীরেসুস্থে বিবর্তন দেখতে পারেন, আর «বিরতি» দিয়ে সব থামান। বোর্ড নির্বাচিত থাকলে কীবোর্ডও ব্যবহার করা যায়: স্পেস শুরু বা বিরতি দেয়, N একটি ধাপ এগোয়, R এলোমেলো ভরে দেয় আর C সব মুছে দেয়।
- «গতি», «বোর্ডের আকার» ও «নিয়ম» ঠিক করুন এবং কোষে ভরা বোর্ড দিয়ে শুরু করতে «এলোমেলো» (সঙ্গে «এলোমেলোর ঘনত্ব») চেষ্টা করুন। «মুছুন» বোর্ড খালি করে দেয়।
- কোন অংশ বেশি সময় স্থির আছে দেখতে «প্রতিটি কোষের বয়স অনুযায়ী রং করুন» চালু করুন। ওপরে প্রজন্ম ও জীবিত কোষ দেখানো হয়, আর বোর্ড স্থির হলে, চক্রে ঢুকলে বা প্রাণহীন হয়ে গেলে টুল জানিয়ে দেয়।
সবকিছু আপনার ডিভাইসেই হিসাব হয়, কোনো সার্ভারে কিছু পাঠানো হয় না। টুলটি আপনার ব্রাউজারে সেটিংস (আকার, গতি, নিয়ম) সংরক্ষণ করে, কিন্তু আঁকা নকশা নয়।
যেসব পরীক্ষা করে দেখতে পারেন
- গ্লাইডার বসিয়ে গুনে দেখুন কোনাকুনি এক ঘর সরতে কত প্রজন্ম লাগে: 4। সংযুক্ত প্রান্ত চালু থাকলে এটি বোর্ড ঘুরে অন্য পাশ দিয়ে আবার ঢোকে।
- দুটি গ্লাইডারকে সংঘর্ষের পথে বসান এবং দেখুন শেষে কী হয়: কীভাবে পৌঁছায় তার ওপর নির্ভর করে, এরা একে অপরকে ধ্বংস করতে পারে বা একটি স্থির আকার রেখে যেতে পারে।
- অন্তত 48 × 48 বোর্ডে গসপার গ্লাইডার গান বসান এবং গুনে দেখুন প্রতিটি গ্লাইডার ছাড়তে কত সময় লাগে: 30 প্রজন্ম।
- বড় বোর্ডে R-পেন্টোমিনো বসিয়ে সংযুক্ত প্রান্ত চালু ও বন্ধ রেখে তুলনা করুন। অসীম সমতলে স্থির হতে 1.103 প্রজন্ম লাগে, কিন্তু সসীম বোর্ডে ফল বদলে যায়।
- একই নকশায় নিয়ম বদলে দেখুন। বীজ (B2/S) নিয়মে প্রতি প্রজন্মে সব কোষ মারা যায় আর কেবল নতুন জন্মগুলো টিকে থাকে, তাই নকশাটি বাইরের দিকে ছড়ায়; গোলকধাঁধা (B3/S12345) নিয়মে করিডরের মতো কাঠামো তৈরি হয়।
সসীম বোর্ডের সীমাবদ্ধতা
আসল খেলা হয় অসীম সমতলে। টুলের বোর্ডের আকার নির্দিষ্ট, তাই যা প্রান্তে পৌঁছায় তা অন্যভাবে আচরণ করে: প্রান্ত সংযুক্ত থাকলে বিপরীত পাশ দিয়ে আবার ঢোকে (বোর্ড অনেকটা ডোনাটের মতো হয়ে যায়), আর সংযুক্ত না থাকলে দেয়ালে ঠেকে নিভে যায়।
এজন্য বড় প্যাটার্নের জায়গা লাগে (গসপার গ্লাইডার গানের জন্য অন্তত 48 × 48), আর R-পেন্টোমিনোর মতো কিছু প্যাটার্নের শেষ ফল অসীম সমতলে যা দেখা যায় তার থেকে আলাদা হতে পারে। প্যাটার্ন না ধরলে টুল আরও বড় বোর্ড বেছে নিতে বলে।
সাধারণ প্রশ্ন
কনওয়ের গেম অফ লাইফের নিয়ম কী কী?
2 বা 3টি জীবিত প্রতিবেশী থাকলে জীবিত কোষ বেঁচে থাকে; 2-এর কম হলে একাকিত্বে এবং 3-এর বেশি হলে ভিড়ে মারা যায়। ঠিক 3টি জীবিত প্রতিবেশী থাকলে মৃত ঘরে নতুন কোষ জন্মায়। সংক্ষেপে এটি B3/S23।
B3/S23 মানে কী?
B হলো জন্ম (birth) এবং S হলো বেঁচে থাকা (survival)। B3 বলে 3টি জীবিত প্রতিবেশী থাকলে নতুন কোষ জন্মায়, আর S23 বলে 2 বা 3টি প্রতিবেশী থাকলে কোষ বেঁচে থাকে।
গ্লাইডার কী?
এটি পাঁচটি কোষের একটি আকার, যা কোনাকুনি সরে যায়, প্রতি 4 প্রজন্মে এক ঘর। এটি খেলার সবচেয়ে পরিচিত প্যাটার্ন।
গেম অফ লাইফ কে উদ্ভাবন করেছেন?
ব্রিটিশ গণিতবিদ জন কনওয়ে, 1970 সালে। সেই বছরই মার্টিন গার্ডনার এটি Scientific American পত্রিকায় সবার সামনে আনেন।
আমার নকশা কেন মিলিয়ে যায় বা স্থির হয়ে যায়?
এটি খুব সাধারণ ঘটনা: অনেক ছোট আকার কয়েক প্রজন্মেই বিলীন হয়ে যায় বা স্থির হয়ে পড়ে। অন্য শুরুর বিন্দু, বড় বোর্ড বা «এলোমেলো» দিয়ে চেষ্টা করুন।