দুটি মিলনের খেলা, একটি প্রশ্ন: কোনোটিকে কি নির্ভুলভাবে খেলা যায়? উত্তরটি বয়ে যায় একটি বোর্ডের কোণ, কখনো না-আসা এক প্রতিপক্ষ, আর সতেরো ঘাতাঙ্ক উঁচু একটি সংখ্যার মধ্য দিয়ে।
ইংরেজিতে লেখা ও সম্পাদিত। এই বাংলা সংস্করণটি যন্ত্রানুবাদের মাধ্যমে তৈরি; যেখানে নির্ভুলতা গুরুত্বপূর্ণ, সেখানে ইংরেজি মূলটিই প্রামাণ্য। ইংরেজিতে মূল লেখাটি পড়ুন →
শুরু করা যাক সেই খেলা দিয়ে, যা সবাই চেনে। 2048, চারটি দিক, একটি 4×4 গ্রিড, ছোঁয়া লাগলে দ্বিগুণ হয়ে যাওয়া টাইল, কঠোর অর্থে অমীমাংসিত। কেউ এমন কোনো অ্যালগরিদম লেখেনি যা একে নিখুঁতভাবে খেলে। আমাদের হাতে আছে অত্যন্ত শক্তিশালী আসন্নমান। একটি expectimax অনুসন্ধান (প্রত্যাশিত মান সর্বোচ্চ করার অনুসন্ধান), যা মোটামুটি আট চাল সামনে দেখে এবং হাতে সূক্ষ্মভাবে সাজানো কয়েকটি হিউরিস্টিক দিয়ে প্রতিটি বোর্ডকে নম্বর দেয়, যেমন খোলা ঘর, একটি কিনারায় আটকে রাখা বড় টাইল, মসৃণতা, তা তার এক-তৃতীয়াংশেরও বেশি খেলায় 32768 টাইলে পৌঁছায়, 1 আর সবচেয়ে শক্তিশালী প্রকাশ্য ইঞ্জিন কয়েক শতাংশ ক্ষেত্রে 65536 টাইল ছুঁয়ে ফেলে। 2 একটি m×n বোর্ডে সাধারণীকরণ করলে, কোনো লক্ষ্য-টাইলে পৌঁছানো যায় কি না, শুধু সেটুকু নির্ধারণ করাই NP-hard। 3 শক্তিশালী হওয়া আর সমাধান হওয়া এক জিনিস নয়।
একটি টাইল কত উঁচুতে উঠতে পারে? ষোলোটি ঘরে উত্তরটি গণনার একটি ছোট, মার্জিত নমুনা। বোর্ডটিকে একটি নেমে-যাওয়া সিঁড়ির মতো সাজান: 65536, 32768, 16384, এভাবে নামতে নামতে একটি একা 2 পর্যন্ত। প্রতিটি টাইল তার প্রতিবেশীর ঠিক এক ঘাত নিচে, তাই 21 থেকে 216 পর্যন্ত ষোলোটি স্বতন্ত্র ঘাত বোর্ডটি নিখুঁতভাবে ভরে দেয়, আর 65536 = 216 বসে থাকে চূড়ায়: প্রতি ঘরে একটি ঘাতাঙ্ক। এটিই ছাদ, যদি খেলাটি আপনাকে কেবল 2-ই দেয়। কিন্তু 2048 প্রতি দশবারে একবার একটি 4 দেয়, আর ঠিক সময়ে আসা একটিমাত্র 4 চুপিসারে একটি সপ্তদশ ঘাতাঙ্ক ঢুকিয়ে দেয়, প্রকৃত সর্বোচ্চকে তুলে নেয় 131072 = 217-এ: সতেরোটি টাইলের সমান ঘাত ষোলোটি বর্গে ঠাসা। 4 কোনো মানুষ এটি গড়েনি; কয়েকটি এআই এর গা ছুঁয়ে গেছে।
এই বোর্ডগুলো কেন আপনার সবচেয়ে বড় টাইলটিকে একটি কোণে গুঁজে রাখাকে পুরস্কৃত করে? মাঝখানের একটি টাইলকে চার দিকে ঠেলা যায়, আর যে টাইলগুলোর সঙ্গে সে মিলতে চায়, তাদের থেকে বারবার বিচ্ছিন্ন হয়ে যায়। কোণের টাইল দুটি দেয়াল ছোঁয়; যে দেয়ালগুলো সে আগে থেকেই আঁকড়ে আছে, সেগুলোর দিকে ঠেললে সে নড়তে পারে না, আর যতক্ষণ আপনি সেগুলো থেকে উল্টো দিকে ঠেলা এড়িয়ে চলেন, ততক্ষণ বাকি সবকিছু তার চারপাশে গুছিয়ে ওঠার সময় সে স্থির বসে থাকে। বাকিগুলোকে একটি একমুখী সাপের মতো শিকলে বাঁধুন, সবচেয়ে বড়টি কোণে, অবরোহী ক্রমে এদিক-ওদিক ভাঁজ হয়ে, তাহলে একটিমাত্র সোয়াইপ মিলনের একটি ধারাবাহিক শৃঙ্খল শুরু করে দিতে পারে। 1 এটিই সেই হিউরিস্টিক যা সাধারণ মানুষের খেলায় আধিপত্য করে, আর এআই-দের নিজেদের ওজন নিজেরা ঠিক করতে দিলে তারা প্রায় ঠিক এটিই নতুন করে আবিষ্কার করে।
এলোমেলো টাইল-আগমনের কোনো মিলনের খেলায় কোনো প্রতিপক্ষ নেই, আছে শুধু আবহাওয়া। একে "সমাধান" করা মানে গড়ে পাশাকে হারানো, কোনো মনকে হারানো নয়।
এবার বোর্ডটিকে তিন মাত্রায় কাত করুন। 3927 হলো 2048-এর ঘনকাকার আত্মীয়: 27টি ঘরের একটি 3×3×3 জালিকা, চারটির বদলে ছয়টি সরানোর দিক, আর তিনটি করে জোড়া লাগা টাইল, 3 থেকে 9 থেকে 27 থেকে 81; 2048 যেখানে ভিত্তি দুই, এটি সেখানে ভিত্তি তিন। 5 কোণে-সাজানোর কৌশল কি বাড়তি মাত্রাটি সামলে টিকে থাকে? একটি ঘনকের আটটি কোণ, আর একটি কোণের ঘর এখন দুটির বদলে তিনটি তল ছোঁয়; তাই একসঙ্গে তিনটি দেয়ালে আটকে থেকে তার আরও স্থির হওয়ার কথা, যদিও ছয়টি দিক বোর্ডকে আপনার কাঠামো ঝেড়ে আলগা করে দেওয়ার আরও বেশি উপায় দেয়। সাপটি হয়ে ওঠে তিনটি স্তরের মধ্য দিয়ে সুতোর মতো গাঁথা একটি ভাঁজ-করা পথ। আমি যতদূর খুঁজে পেয়েছি, উপমাটি আসলে খাটে কি না, তা কেউ হিসাব করে দেখেনি; এটি যুক্তি, পরিমাপ নয়।
আর ছাদ? প্রতি-ঘরে-এক-ঘাতাঙ্ক নিয়ম একটি ঢিলেঢালা ঊর্ধ্বসীমা হিসেবে 327 ≈ 7.6 ট্রিলিয়নের ইঙ্গিত দেবে। কিন্তু উপমাটি বেশ খারাপভাবে ছিঁড়ে যায়। 2048-এর বাড়তি ঘাতাঙ্ক এসেছিল একটি ভাগ্যবান 4 থেকে; 3927 কেবল সবচেয়ে ছোট টাইলটিই দেয়, একটি খালি 3, তাই কোনো বোনাস নেই। আরও খারাপ, একটি তিনগুণ-মিলনের জন্য তিনটি টাইলকে এক রেখায় সারিবদ্ধ হতে হয়, আর একটি 3×3×3 ঘনকের প্রতিটি সারি, কলাম ও স্তম্ভ ঠিক তিন ঘর লম্বা, তাই প্রতিটি মিলন একটি পুরো রেখা খেয়ে ফেলে। এই বাধা সমতল খেলার যেকোনো কিছুর চেয়ে অনেক বেশি কামড় বসায় এবং প্রায় নিশ্চিতভাবেই প্রকৃত সর্বোচ্চকে 327-এর অনেক নিচে টেনে নামায়। সেই প্রকৃত সংখ্যাটি কত, তা আমি কোথাও গণনা করা অবস্থায় পাইনি। (স্পষ্টভাবে চিহ্নিত যুক্তি; ওপরের যান্ত্রিক নিয়মগুলো গেমের নকশা-নথি থেকে মাপা।)
এখানেই সেই সূক্ষ্মতা, যা "নিখুঁত খেলা" ধারণাটিকে পিচ্ছিল করে তোলে। এলোমেলো টাইল-আগমনের একটি মিলনের খেলা হলো একটি একক-খেলোয়াড় দৈব-নির্ভর (stochastic) খেলা, একটি পাশার বিরুদ্ধে সলিটেয়ার, কোনো দ্বন্দ্বযুদ্ধ নয়। আপনাকে ধ্বংস করতে কেউ সবচেয়ে খারাপ টাইলটি বেছে দেয় না; আছে কেবল উদাসীন RNG (র্যান্ডম সংখ্যা জেনারেটর)। তাই সর্বোত্তম খেলার সঠিক ধারণা হলো expectimax: টাইল-আগমনের বণ্টনের ওপর প্রত্যাশিত ফলাফল সর্বোচ্চ করা। এটি জোর দিয়েই নয় minimax; minimax একজন প্রতিপক্ষ ধরে নেয়, আর আপনি যদি সত্যিই কাউকে প্রতিটি টাইল বসাতে দেন ("evil 2048", অর্থাৎ দুষ্ট 2048), খেলাটি আরও নিষ্ঠুর কিছুতে পরিণত হয়, যেখানে আপনাকে হারতে বাধ্য করা যায়। যেহেতু পাশা নীতিগতভাবে যেকোনো ক্রম দিতে পারে, একটি নির্দিষ্ট টাইলের নিশ্চয়তা দেয় এমন কৌশল হয়তো আদৌ নেই। তাই "কোনো নিখুঁত কৌশল কি আছে?" প্রশ্নের সৎ উত্তর হলো, একটি দৈব-নির্ভর খেলার জন্য যা সংজ্ঞায়িত করা সম্ভব তার সর্বোচ্চ হলো গড়ে-সেরা একটি কৌশল, আর তা নির্ভুলভাবে গণনা করা 2048-এর জন্য নাগালের বাইরে 6 এবং 3927-এর জন্য পুরোপুরি উন্মুক্ত প্রশ্ন।