পূর্ববর্তী সংস্করণে কিছু মন্তব্যকে সম্বোধন করার চেষ্টা করার জন্য আমি এই উত্তরটি পুনরায় লিখেছি।
আমি ধরে নিয়েছি যে আপনি এনপি-সম্পূর্ণতার জন্য উইকিপিডিয়া সংজ্ঞাটি পড়েছেন যা গেমগুলিতে সত্যই মনোনিবেশ করে না। আমি এনপি-সম্পূর্ণতা এবং গেম তত্ত্বের সঠিক অর্থটি কিছুটা কমিয়ে দেব এবং এনপি-সম্পূর্ণ গেমটির সারাংশ ব্যাখ্যা করব।
আসুন একটি বিকল্প খেলোয়াড়ের সাথে একটি 2 খেলোয়াড়ের খেলা বিবেচনা করা যাক, আরও সীমাবদ্ধভাবে এটি মূলত সম্মিলিত গেমগুলি সম্পর্কে । মূলত এমন একটি গেম যা আপনার বেশ কয়েকটি পদক্ষেপ তৈরি করতে পারে যা আপনাকে তৈরি করতে পারে এবং আপনাকে অবশ্যই সেগুলির মধ্যে একটি বেছে নিতে হবে। আপনি "নিখুঁত" খেলতে চান যার অর্থ আপনি কখনই "খারাপ" পদক্ষেপ নিতে চান না। তাই মঞ্জুরিযোগ্য পদক্ষেপগুলির মধ্যে আপনি সেরাটি নির্বাচন করতে চান। (অবশ্যই আপনার প্রতিপক্ষের একই লক্ষ্য রয়েছে ...)
নোট করুন যে নিখুঁত খেলার অর্থ এই নয় যে আপনি সর্বদা জিতবেন। গেমের নিয়মগুলি এমন হতে পারে যে প্রথম বা দ্বিতীয় খেলোয়াড়ের জিততে হবে। এছাড়াও টিকি-ট্যাক-টোয়ের মতো কয়েকটি গেমের ড্র শেষ হওয়া উচিত। সুতরাং এই আলোচনায় "নিখুঁত খেলা" এর অর্থ কী:
(১) আপনি কখনই বিজয়ী অবস্থানে থাকতে পারবেন না এবং তারপরে খেলাটি হারাবেন কারণ আপনি "খারাপ" পদক্ষেপ নিয়েছেন
(২) আপনি কখনই সুযোগ পাওয়ার সুযোগ হারাবেন না বিজয়ী অবস্থানে যদি এমন সুযোগ দেখা দেয়।
গেমের বর্তমান অবস্থাটি যা আপনি চান তা হ'ল সেরা পদক্ষেপের গণনা করার জন্য একটি "দক্ষ অ্যালগরিদম" ব্যবহার করতে সক্ষম হবেন। অন্যদিকে আসুন নোট করুন যে সমস্ত গেম ট্রিটিতে একটি অ্যালগরিদম অনুসন্ধান করতে হয় এটি একটি "অকার্যকর অ্যালগরিদম"।
এখন কিছুটা আনুষ্ঠানিকভাবে "দক্ষতা" সংজ্ঞায়িত করা যাক। আমি এটিকে কিছুটা সহজ করতে যাচ্ছি তবে সারমর্মটি সঠিক। গণনার সংখ্যাটি বিবেচনা করুন, , এটি পরবর্তী পদক্ষেপটি বেছে নেওয়ার জন্য অবশ্যই করতে হবে, যে প্রতিটি সরানোতে গড়ের একটিতে সম্ভাবনা রয়েছে ( ব্রাঞ্চিং ফ্যাক্টর ) এবং গেমটিতে মুভ রয়েছে left ধারণাটিও হ'ল প্রতিটি গণনা একই সময় নেয় যাতে চেষ্টাটি কাঁচা গণনার পরিবর্তে সময় জটিলতায় , অনুবাদ করা যায় ।বি এন টিসিB ইংরেজী বর্ণমালার দ্বিতীয় অক্ষরএনটি
- একটি "দক্ষ অ্যালগরিদম" এর মধ্যে থাকবে: যেখানে একটি "ছোট পূর্ণসংখ্যা," এবং আহ কিছু বাস্তব সংখ্যা। সুতরাং দক্ষ অ্যালগরিদম বহুপদী সময়ে কার্যকর করে যেহেতু এটি একটি বহুপদী অভিব্যক্তি।
αটি∝ এ বিএকটি+ খ খα - 1+ সি বিα - 2+ । । । + এইচ বি0
α
- একটি "অদক্ষ অ্যালগরিদম" হবে:
এবং এই অ্যালগোরিদমের মধ্যে executes সূচকীয় সময় (অর্থাত nonpolynominal সময়)। এখানে মুল বক্তব্যটি হ'ল বড় হওয়ার সাথে সাথে একটি সংযুক্তি বিস্ফোরণের ফলাফল পাওয়া যায়।
এনটি∝ এ বিএন
এন
এখন গুরুত্বপূর্ণ বিষয়টি হ'ল একটি কার্যকর অ্যালগরিদম, বহুপক্ষীয় সময় থাকা অসম্ভব , যা এনপি-সম্পূর্ণ এমন একটি খেলায় পুরোপুরি খেলে। নিখুঁতভাবে এনপি-সম্পূর্ণ সমস্যাটি খেলতে হবে সংজ্ঞা অনুসারে, অ-অ্যালগরিদম দ্বারা অ-অলংকিত সময়ে চালিত হওয়া অবশ্যই সমাধান করা উচিত।
মনে রাখবেন চলমান সময়টি গণনার অভ্যন্তরীণ সংখ্যার বিষয়ে, কোনও প্রতিক্রিয়া সময়টি কোনও মানুষের দ্বারা অনুধাবন করা হয়। টিকি-ট্যাক-টোয়ের মতো একটি ছোট গেমের জন্য কম্পিউটার ভবিষ্যতের সমস্ত সম্ভাব্য চালগুলি খেলতে পারে এবং এখনও কোনও মানুষের দ্বারা উপলব্ধি অনুসারে দ্রুত সাড়া দিতে পারে।
নিমের জন্য বহুপদী সময় অ্যালগরিদম তৈরি করা সম্ভব। গেমের যে কোনও পর্যায়ে অ্যালগরিদম গণনা করতে পারে যে কোন খেলোয়াড়ের একটি বিজয়ী পদক্ষেপ রয়েছে এবং সেই পদক্ষেপটি কী হওয়া উচিত।
অন্যদিকে আসুন কিউবিকের খেলাটি নেওয়া যাক । (আপনি একটি 3D গ্রিডে 4 টি লাইন তৈরি করার চেষ্টা করছেন So তাই এটি 4x4x4 গ্রিডে মূলত টিক-টাক-টো) আপনার বর্তমানে কোনও বিজয়ী পদক্ষেপ রয়েছে কিনা তা জানার একমাত্র উপায় হ'ল উভয় খেলোয়াড়ের সমস্ত সম্ভাব্য পদক্ষেপের চেষ্টা করা যাচাই করা যে কোনও নির্দিষ্ট পদক্ষেপটি বিজয়ী, বা কমপক্ষে হেরে না।
সত্যিকার অর্থে কিউবিকের জন্য পুরো গেম ট্রিটি যথেষ্ট ছোট, যাতে এটি একটি কম্পিউটার প্রোগ্রামে এনকোড করা যায় যা পুরোপুরি খেলতে পারে। এনকোডিংয়ের অর্থ হ'ল পুরো গেম ট্রিটি অনুসন্ধান করা হয়েছে এবং সমস্ত পদক্ষেপ আগে থেকেই কাজ করেছে। সুতরাং প্রোগ্রামটি মূলত বর্তমান বোর্ড স্টেটটি ব্যবহার করে একটি দ্রুত ডেটাবেস কল করতে পারে এবং প্রতিবার একটি পদক্ষেপ নেওয়া হলে গাছ অনুসন্ধান না করে বোর্ড বোর্ডের জন্য সেরা পদক্ষেপটি ফিরে পেতে পারে। এটি আমাদের উদ্দেশ্যে এখানে সত্যই "প্রতারণা"।
দাবা বাজানোর প্রোগ্রামগুলির অন্যান্য কয়েকটি বৈশিষ্ট্য উপেক্ষা করে মূল্যায়ন ফাংশনটি আলোচনা করতে দাবার নিয়ে আলোচনা করা যাক । দাবা এখনও একটি অমীমাংসিত খেলা । প্রথম বা দ্বিতীয় খেলোয়াড়ের জিততে হবে কিনা তা অজানা। বোর্ডের কোনও পদ দেওয়া এবং কে জিতবে তা নিশ্চিত করেই ভবিষ্যদ্বাণী করা সম্ভব নয়। আসলে দাবাতে এত বড় একটি গেম ট্রি রয়েছে যে পুরো গেম ট্রিটি অনুসন্ধান করা কেবল অসম্ভব। আপনার এমন কম্পিউটারের দরকার যা কেবল 10 বা 100 গুণ দ্রুত নয় তবে বর্তমানের যে কোনও কম্পিউটারের চেয়ে কয়েক বিলিয়ন বিলিয়ন সময় দ্রুত। ( এই গর্ডিয়ান নট দিয়ে কোয়ান্টাম কম্পিউটিং কাটতে পারে এমন আশা রয়েছে is )
দাবা মূল্যায়ন ফাংশনটিকে প্রতিটি পরবর্তী পদক্ষেপকে সর্বোত্তম পদক্ষেপের সম্ভাবনা প্রদান হিসাবে মনে করুন। দাবা প্রোগ্রামটি যা করে তা হ'ল মূল্যায়ন ফাংশনের সাথে সামনের চেহারাটিকে একত্রিত করা। সুতরাং প্রোগ্রামটি সম্ভাব্য সমস্ত সম্ভাব্য চালচলনের দিকে নজর দেয় যতক্ষণ না এটি এমন একটি পয়েন্টে পৌঁছে যায় যেখানে বোর্ড অবস্থানে "ভাল" স্কোর দেওয়া যায়। কম্পিউটার এইভাবে গাছের মাধ্যমে সমস্ত সম্ভাব্য পাথের মূল্যায়ন করে এবং তারপরে সেরা স্কোর সহ পথটি বেছে নেয়। যেহেতু অনুসন্ধানটি সমস্ত পাথের মূল্যায়ন করার জন্য গেমের শেষ পর্যন্ত পায় নি, সমস্ত দাবা প্রোগ্রামগুলি শেষ পর্যন্ত একটি অসম্পূর্ণ মূল্যায়ন ফাংশন ব্যবহার করে। (যদি আপনি গেমের শেষের কাছাকাছি থাকেন তবে কম্পিউটার সম্ভাব্য সমস্ত সম্ভাব্য চলনগুলি দেখতে পারে)) এর অর্থ এই যে প্রোগ্রামটি কোনও পর্যায়ে বিজয়ী অবস্থান থাকলেও প্রোগ্রামটি পরাজিত করা সম্ভব হতে পারে।