সডোকু সমাধানের জন্য সাধারণ কৌশলসমূহ
২৪/৬/২০২৩, ১২:০০:০০ AM
সডোকু ধাঁধা সমাধানের জন্য ব্যবহার করা যেতে পারে এমন বেশ কিছু ভিন্ন কৌশল ও কৌশলগত পদ্ধতি রয়েছে। এখানে কিছু সাধারণ পদ্ধতি দেওয়া হলো:
প্রার্থী বাদ দেওয়া (Candidate Elimination)
সডোকু গ্রিডের প্রতিটি খালি ঘরের জন্য, একই সারি, কলাম এবং ব্লকের সংখ্যাগুলো বিশ্লেষ করে আগে থেকেই থাকা সংখ্যাগুলো বাদ দিন। বাকি সংখ্যাগুলোই সেই ঘরের সম্ভাব্য প্রার্থী (candidate) হয়ে যায়।
পাজলের শুরুর দিকে অবৈধ প্রার্থী বাদ দিয়ে সম্ভাবনাগুলো সংকুচিত করার জন্য ব্যবহারযোগ্য একটি মৌলিক ও সহজ কৌশল।
আরও উন্নত কৌশল প্রয়োজন এমন জটিল পাজলে এটি সময়সাপেক্ষ এবং অকার্যকর হতে পারে।
একক প্রার্থী (Single Candidate)
নির্দিষ্ট কোনো সারি, কলাম, বা ব্লকে যদি কোনো একটি ঘরের জন্য শুধুমাত্র একটি সংখ্যা সম্ভাব্য প্রার্থী হিসেবে থাকে, তাহলে ওই সংখ্যাটিই সেখানে বসাতে হবে।
যখন কোনো সংখ্যার জন্য কেবল একটি সম্ভাব্য অবস্থান থাকে—তখন সেটি খুঁজে বসানোর জন্য এটি একটি কার্যকর কৌশল।
এটি কেবল পৃথক ঘরেই সীমাবদ্ধ এবং একা আরও জটিল পাজল সমাধান করতে পারে না।
Naked Pairs/Triplets/Quads
যদি কোনো সারি, কলাম, বা ব্লকের মধ্যে দুই বা ততোধিক ঘরে একই দুই, তিন, বা চারটি সম্ভাব্য প্রার্থীর সেট থাকে, তাহলে একই সারি, কলাম, বা ব্লকের বাকি সব স্থানে এই প্রার্থীগুলোর অন্য যে কোনো উপস্থিতি বাদ দেওয়া যায়।
সম্পর্কিত সারি, কলাম এবং ব্লকে সংখ্যার সাধারণ সেট চিহ্নিত করে সম্ভাব্য প্রার্থী বাদ দেয়।
ঠিক একই সম্ভাব্য প্রার্থী সেট থাকতে হবে এমন দুই বা ততোধিক ঘরের প্রয়োজন হয়, যা কখনও কখনও বিরল।
Hidden Singles
যদি কোনো সারি, কলাম, বা ব্লকে নির্দিষ্ট একটি সংখ্যার জন্য কেবল একটি অবশিষ্ট স্থান থাকে, তাহলে ওই সংখ্যাটি সেখানে বসাতে হবে।
যে ক্ষেত্রে কোনো নির্দিষ্ট সংখ্যার জন্য কেবল একটাই সম্ভাব্য স্থান বাকি থাকে—সেখানে দ্রুত সংখ্যা খুঁজে বসানোর পদ্ধতি।
একাকী (lone) সম্ভাব্য প্রার্থী খুঁজে বের করতে প্রতিটি সারি, কলাম এবং ব্লককে সতর্কভাবে পর্যালোচনা করা দরকার।
X-Wing
যদি এমন দুইটি সারি এবং দুইটি কলাম থাকে যেখানে কেবল নির্দিষ্ট চারটি ঘরই কোনো একটি সংখ্যার সম্ভাব্য প্রার্থী ধারণ করে, তাহলে ওই সংখ্যাটি ওই দুই সারি ও দুই কলামের বাকি সব ঘর থেকে বাদ দেওয়া যায়।
দুইটি সারি ও দুইটি কলাম জড়িত এমন প্যাটার্ন শনাক্ত করে, যেখানে একটি নির্দিষ্ট সংখ্যা বসানো সম্ভব—এভাবে সম্ভাব্য প্রার্থী বাদ দেয়।
দুইটি সারি ও দুইটি কলাম জুড়ে ওই প্যাটার্নের উপস্থিতি থাকা দরকার, যা কমন নাও হতে পারে।
Swordfish
X-Wing কৌশলের একটি সম্প্রসারণ: এখানে তিনটি সারি ও তিনটি কলাম থাকে, যেখানে কেবল মোট নয়টি নির্দিষ্ট ঘরই কোনো একটি সংখ্যার সম্ভাব্য প্রার্থী ধারণ করে। ফলে ওই সারি ও কলামের অন্য ঘরগুলো থেকে সেই সংখ্যাটি বাদ দেওয়া যায়।
তিনটি সারি ও তিনটি কলাম জড়িত এমন প্যাটার্ন শনাক্ত করে, যেখানে একটি নির্দিষ্ট সংখ্যা বসানো সম্ভব—এভাবে সম্ভাব্য প্রার্থী সীমিত করে।
X-Wing-এর চেয়ে খুঁজে পাওয়া কঠিন, কারণ একই প্যাটার্ন মেলানোর জন্য তিনটি সারি ও তিনটি কলামকে একসাথে ভাগ করতে হয়।
Jellyfish
Swordfish কৌশলের একটি সম্প্রসারণ: এখানে চারটি সারি ও চারটি কলাম থাকে, যেখানে কেবল ষোলটি নির্দিষ্ট ঘরই কোনো একটি সংখ্যার সম্ভাব্য প্রার্থী ধারণ করে। ফলে ওই সারি ও কলামের অন্য ঘরগুলো থেকে সেই সংখ্যাটি বাদ দেওয়া যায়।
চারটি সারি ও চারটি কলাম জড়িত এমন প্যাটার্ন শনাক্ত করে, যেখানে একটি নির্দিষ্ট সংখ্যা বসানো সম্ভব—এভাবে সম্ভাবনাগুলো আরও কমিয়ে আনে।
চারটি সারি ও চারটি কলাম জড়িত প্যাটার্ন পাওয়া বিরল।
Backtracking
যখন কোনো যুক্তিসংগত সিদ্ধান্ত (logical deductions) করা সম্ভব হয় না, তখন backtracking ব্যবহার করা যায়। এতে একটি খালি ঘরের জন্য একটি সংখ্যা ধরে (guess) নিয়ে বাকি পাজল সমাধান করার চেষ্টা করা হয়। যদি তা ভুল সমাধান দেয়, তাহলে ফিরে এসে (backtrack) অন্য একটি অনুমান চেষ্টা করুন। পাজল সমাধান না হওয়া পর্যন্ত এই প্রক্রিয়া চালিয়ে যান।
এই কৌশলগুলো বিভিন্ন মাত্রার সডোকু ধাঁধা সমাধানে একসাথে ব্যবহার করা যেতে পারে। যুক্তি ও কৌশল প্রয়োগ করে গ্রিডটি ধীরে ধীরে সঠিকভাবে পূর্ণ করা যায়।
যখন অন্য যুক্তিসংগত সিদ্ধান্ত আর প্রযোজ্য থাকে না, তখন এটি ব্যবহার হয় এবং অগ্রগতির জন্য অনুমান করার সুযোগ দেয়।
এটি সময়সাপেক্ষ হতে পারে এবং সঠিক সমাধান খুঁজে পেতে বিভিন্ন অনুমান পরীক্ষা করতে হয়। কোনো অনুমান ভুল সমাধানে নিয়ে গেলে আপনাকে backtrack করে আরেকটি অনুমান চেষ্টা করতে হবে।
সংক্ষেপে
যখন কোনো যুক্তিসংগত সিদ্ধান্ত করা সম্ভব হয় না, তখন backtracking ব্যবহার করা যায়। এতে একটি খালি ঘরের জন্য একটি সংখ্যা ধরে (guess) নিয়ে বাকি পাজল সমাধান করার চেষ্টা করা হয়। যদি তা ভুল সমাধান দেয়, তাহলে ফিরে এসে (backtrack) অন্য একটি অনুমান চেষ্টা করুন।
এগুলো সডোকু ধাঁধা সমাধানে ব্যবহৃত কয়েকটি সাধারণ কৌশল মাত্র। একটি নির্দিষ্ট পাজলের কঠিনতা স্তর আরও উন্নত কৌশল বা একাধিক কৌশলের সমন্বয় প্রয়োজন হতে পারে। এছাড়াও বিভিন্ন অ্যালগরিদম ও কৌশল প্রয়োগ করে স্বয়ংক্রিয়ভাবে সডোকু সমাধান করতে পারে এমন কম্পিউটার প্রোগ্রাম বা অ্যাপ ব্যবহার করাও সম্ভব।
মনে রাখবেন, ভিন্ন ভিন্ন কৌশল ভিন্ন পরিস্থিতি ও কঠিনতা স্তরে ভালো কাজ করে। একাধিক কৌশল একসাথে ব্যবহার করলে একটি চ্যালেঞ্জিং সডোকু সমাধানের সম্ভাবনা বাড়ানো যায়।