আমি কীভাবে চেকারদের মতো বোর্ড গেমের জন্য সেরা অ্যালগরিদম চয়ন করব?


15

আমি কীভাবে চেকারদের মতো বোর্ড গেমের জন্য সেরা অ্যালগরিদম চয়ন করব?

এখনও অবধি, আমি কেবলমাত্র তিনটি অ্যালগরিদম বিবেচনা করেছি, যথা, মিনিম্যাক্স, আলফা-বিটা ছাঁটাই এবং মন্টি কার্লো ট্রি অনুসন্ধান (এমসিটিএস)। স্পষ্টতই, আলফা-বিটা ছাঁটাই এবং এমসিটিএস উভয়ই বেসিক মিনিম্যাক্স অ্যালগরিদমের বর্ধক।

উত্তর:


18

TL; ড:

  • এই অ্যালগরিদমগুলির কোনওটিই আধুনিক কাজের জন্য ব্যবহারিক নয়, তবে এগুলি শিক্ষাগতভাবে শুরু করার জন্য ভাল জায়গা।

  • আপনার সর্বদা খালি মিনিম্যাক্স অনুসন্ধানের মাধ্যমে আলফা-বিটা ছাঁটাই ব্যবহার করতে পছন্দ করা উচিত।

  • আপনি যদি কোনও কার্যকর হিউরিস্টিক নিয়ে আসতে পারেন তবে আপনার কিছু রূপতাত্ত্বিক নির্দেশিত অনুসন্ধানের ব্যবহার পছন্দ করা উচিত। একটি দরকারী হিউরিস্টিক সঙ্গে আসা সাধারণত ডোমেন জ্ঞান প্রচুর প্রয়োজন।

  • আপনার যখন মনস্ত কার্লো ট্রি গাছ অনুসন্ধান সন্ধান করতে পছন্দ করা উচিত যখন আপনি একটি ভাল উত্তোলনামূলক অভাব বোধ করেন, যখন কম্পিউটেশনাল সংস্থান সীমাবদ্ধ থাকে এবং যখন ভুলগুলি বাস্তব-বিশ্ব পরিণতিগুলিকে ছাপিয়ে যায় না।

আরো বিস্তারিত:

মিনিম্যাক্স অনুসন্ধানে, আমরা খুব চালাক হওয়ার চেষ্টা করি না। আমরা কেবল একটি স্ট্যান্ডার্ড গতিশীল প্রোগ্রামিং পদ্ধতির ব্যবহার করি। গেমের শেষের কাছাকাছি থাকলে পার্থক্যের চালগুলির মূল্য নির্ধারণ করা সহজ (যেহেতু খেলাটি পরবর্তী পদক্ষেপে শেষ হবে, তাই আমাদের খুব বেশি সামনের দিকে দেখতে হবে না)। একইভাবে, আমরা যদি জানি যে আমাদের প্রতিপক্ষ গেমের শেষ পদক্ষেপে কী করবে, তবে দ্বিতীয় শেষ পদক্ষেপে আমাদের কী করা উচিত তা নির্ধারণ করা সহজ easy কার্যকরভাবে আমরা দ্বিতীয় শেষ পদক্ষেপটিকে একটি ছোট গেমের শেষ চাল হিসাবে বিবেচনা করতে পারি। তারপরে আমরা এই প্রক্রিয়াটি পুনরাবৃত্তি করতে পারি। এই পদ্ধতির ব্যবহারটি একটি স্ট্যান্ডার্ড বিস্তৃত-ফর্ম গেমের সেরা কৌশল উদ্ঘাটিত করার পক্ষে নিশ্চিত, তবে আমাদের প্রতিটি সম্ভাব্য পদক্ষেপ বিবেচনা করা প্রয়োজন, যা সহজ গেমস ছাড়া সকলের পক্ষে অপরিহার্য।

মিনিম্যাক্স অনুসন্ধানে আলফা-বিটা ছাঁটাই একটি কঠোর উন্নতি। এটি এটিকে ব্যবহার করে যে কিছু পদক্ষেপগুলি অন্যদের থেকে স্পষ্টতই খারাপ। উদাহরণস্বরূপ, দাবাতে, আমার এমন কোনও পদক্ষেপের কথা বিবেচনা করা উচিত নয় যা আপনাকে আমাকে চেকমেটে রাখার সুযোগ দেয়, এমনকি আপনি যদি সেই অবস্থান থেকে অন্য কিছু করতে পারেন তবে। একবার আমি দেখলাম যে কোনও পদক্ষেপ হারাতে পারে, আমি সেদিক থেকে আর কী ঘটতে পারে তা ভেবে ভাবতে বিরক্ত করব না। আমি অন্য জিনিস তাকান যেতে হবে। এই অ্যালগরিদম সঠিক ফলাফল দিতেও নির্দিষ্ট, এবং দ্রুত, তবে এখনও অনুশীলনের বেশিরভাগ পদক্ষেপ বিবেচনা করতে হবে।

এই ধরণের গেমগুলি হুবহু হ্রাস করার জন্য চূড়ান্ত গণনা ব্যয়কে ঘিরে ধরার দুটি সাধারণ উপায় রয়েছে:

  1. একটি হিউরিস্টিক ব্যবহার করুন (শিক্ষাগত সংক্রান্ত উদ্দেশ্যে এ * সন্ধানটি সাধারণ অ্যালগরিদম, তবে কোয়েসেন্স অনুসন্ধান 2 প্লেয়ার গেমগুলিতে অনুরূপ ধারণা)। এটি কেবলমাত্র একটি ফাংশন যা গেমের রাজ্যের মান সম্পর্কে একটি অনুমান দেয় । কোনও গেমের সমস্ত পদক্ষেপ বিবেচনা করার পরিবর্তে, আপনি সামান্য দূরত্বের কিছুটা এগিয়ে যেতে বিবেচনা করতে পারেন এবং তারপরে আপনি যে রাজ্যে পৌঁছেছেন তার মূল্য বিচারের জন্য তাত্ত্বিকের মানটি ব্যবহার করুন। আপনার অনুসন্ধানমূলক সামঞ্জস্যপূর্ণ (মূলত: যদি এটা সবসময় হয়, তাহলে overestimates রাজ্যের মানের), তারপর এই এখনও সঠিক উত্তর উত্পাদ, কিন্তু বাস্তবে বিরাট speedups সঙ্গে হবে।

  2. রোলআউটগুলি ব্যবহার করুন (মন্টি কার্লো ট্রি অনুসন্ধানের মতো)। মূলত, প্রতিটি পদক্ষেপ বিবেচনা করার পরিবর্তে, এলোমেলোভাবে অভিনয় করা খেলোয়াড়দের মধ্যে কয়েক হাজার সিমুলেটেড গেমগুলি চালান (এটি সম্ভাব্য সমস্ত পদক্ষেপ বিবেচনার চেয়ে দ্রুত)। এটি থেকে শুরু হওয়া গেমের গড় জয়ের হারের সমান রাজ্যগুলিকে একটি মান নির্ধারণ করুন। এটি সঠিক উত্তর নাও পেতে পারে তবে কিছু ধরণের গেমসে এটি নির্ভরযোগ্যভাবে সম্পাদন করে। এটি প্রায়শই নিজের ব্যবহার না করে আরও সঠিক কৌশলগুলির এক্সটেনশন হিসাবে ব্যবহৃত হয়।


অন্যান্য অ্যালগরিদমের মতো দুটি প্লেয়ার গেমের প্রসঙ্গে আসলেই কি * খাপ খায় না? এমসিটিএস-এ দ্রষ্টব্য: সাধারণ বাস্তবায়নগুলি "সমস্ত পদক্ষেপগুলি কিছু স্থির গভীরতায় নেমে যায়" এবং তারপরে রোলআউটগুলি শুরু করে না; পরিবর্তে, সাধারণ বাস্তবায়নগুলি গতিশীলভাবে, ধীরে ধীরে গাছের অনুসন্ধানের গাছটি বৃদ্ধি করুন, এটি আরও প্রতিশ্রুতিবদ্ধ অংশগুলিতে আরও বাড়ছে (এমন অংশে যেখানে অনেকগুলি রোলআউট নির্বাচনী কৌশল দ্বারা সজ্জিত করা হয়), এটি কম প্রতিশ্রুতিযুক্ত অংশগুলিতে কম বাড়ছে।
ডেনিস সুমার্স 16:58

1
@ জনডুয়েস্ট কেন আপনি বলবেন যে "এই অ্যালগরিদমগুলির কোনওটিই আধুনিক কাজের জন্য ব্যবহারিক নয়, তবে এগুলি শিক্ষাগতভাবে শুরু করার জন্য ভাল জায়গা" " এমসিটিএস-এর ক্ষেত্রে, একক প্লেয়ার অনুসন্ধানের জন্যও আধুনিক কাজের জন্য এটি খুব উপযুক্ত বলে মনে হয় যখন পরবর্তী রাজ্যে স্থানান্তরিত হওয়ার পরে একটি রাষ্ট্র দেওয়া হয় এবং একটি ক্রিয়াকে ভালভাবে সংজ্ঞায়িত করা হয়। তুমি কি রাজি?
মিগুয়েল সরাইভা

1
@ মিগুয়েলসারাইভা নিজস্বভাবে, এমসিটিএস এমন কিছু নয় যা আপনি সাধারণত কোনও আধুনিক অ্যাপ্লিকেশনটির জন্য ব্যবহার করেন। একটি ডিএনএন এর মতো এমন কিছু সংযুক্ত যা শেখা হিউরিস্টিক সরবরাহ করতে বেশ ভাল হবে।
জন ডুয়েস্ট

1
@ জনডুয়েস্টে "এমসিটিএস এমন কিছু নয় যা আপনি সাধারণত একটি আধুনিক অ্যাপ্লিকেশনটির জন্য ব্যবহার করেন"। প্রথমত, আপনি যে "আধুনিকতা" উল্লেখ করেছেন এটির 2016 সালে এর বড় অগ্রগতি হয়েছিল (এমসিটিএস + ডিএনএন) এবং দেখে মনে হচ্ছে আপনি এর আগে যে সমস্ত কিছু অচল করে দিয়েছেন (স্পষ্টতই মিথ্যা)। প্রকৃতপক্ষে, এটি আরও বেশি প্রশংসনীয় হতে পারে যে এমসিটিএস সাধারণত বিপরীত কারণে ব্যবহৃত হয় না: এটি খুব উন্নত: শিল্পে এমন অ্যাপ্লিকেশনগুলির স্তূপ রয়েছে যা সত্যিই অপ্রচলিত এবং এমসিটিএসে আপগ্রেড করা যেতে পারে। এর মধ্যে বেশিরভাগ এমসিটিএস + ডিএনএন কেবলমাত্র একটি দূর স্বপ্ন, কারণ প্রাক-প্রশিক্ষণটি বেশ অকল্পনীয়।
জোহান

1
@ জোহান এটি আমার কাছে শিল্প অ্যাপ্লিকেশনগুলির পক্ষে ঠিক মনে হলেও প্রশ্নটি "চেকারদের মতো বোর্ডের খেলা" সম্পর্কে জিজ্ঞাসা করছে। এই জাতীয় খেলনা সমস্যার জন্য, আমি মনে করি এমসিটিএস সঠিক আধুনিক পদ্ধতি নয়। বাস্তব বিশ্বের অনেকগুলি সমস্যা অবশ্যই আছে যেখানে এটি বিদ্যমান মোতায়েন করা সিস্টেমে একটি বিরাট উন্নতি হবে।
জন ডুয়েস্ট

7

এনবি আমি কেবলমাত্র এই তিনটি অ্যালগরিদমকে বেছে নেওয়ার কারণ ছিল কারণ সেগুলি বোঝার জন্য আমার কাছে সময় ছিল। সামান্য গবেষণা থেকে, আমি দেখতে পেলাম যে এই অ্যালগোরিদমগুলি মূলত মিনিম্যাক্স অ্যালগরিদমের সাথে অন্তর্নির্মিত। সুতরাং আমি যদি একটি বুঝতে পারি তবে অন্য দুটি ঠিক জায়গায় পড়ে যাবে।

এই প্রসঙ্গে দেওয়া, আমি মিনিম্যাক্স দিয়ে শুরু করার পরামর্শ দেব । তিনটি অ্যালগরিদমের মধ্যে মিনিম্যাক্স বোঝা সহজ।

আলফা-বিটা , যেমন অন্যরা অন্য উত্তরে উল্লেখ করেছেন, মিনিম্যাক্সের শীর্ষে একটি কঠোর উন্নতি। মিনিম্যাক্স মূলত আলফা-বিটা বাস্তবায়নের একটি অংশ এবং আলফা-বিটা সম্পর্কে একটি ভাল বোঝার জন্য যাইহোক মিনিম্যাক্সের একটি ভাল বোঝা শুরু করা দরকার। আপনার যদি মিনিম্যাক্স বোঝার এবং প্রয়োগ করার পরে সময় বাকী থেকে যায় তবে আমি আলফা-বিটা পরে যাওয়ার এবং মিনিম্যাক্সের শীর্ষে এটি নির্মাণের পরামর্শ দেব। আপনি যদি এখনও মিনিম্যাক্সটি বুঝতে না পারেন তবে আলফা-বিটা দিয়ে শুরু করে really

মন্টে-কার্লো ট্রি অনুসন্ধান সম্ভবত কিছুটা আরও উন্নত এবং সত্যই, গভীরভাবে বুঝতে আরও জটিল। বিগত দশক বা তার পরে, এমসিটিএস সত্যই অন্য দুটি তুলনায় অনেক বেশি জনপ্রিয় হয়ে উঠছে, সুতরাং সেই দৃষ্টিকোণ থেকে এমসিটিএস আরও "দরকারী" হতে পারে understanding

মিনিম্যাক্স এবং এমসিটিএসের মধ্যে সংযোগটি মিনিম্যাক্স এবং আলফা-বিটার মধ্যে সংযোগের চেয়ে কম সরাসরি / স্পষ্ট, তবে এখনও কমপক্ষে একটি ধারণাগত স্তরে একটি সংযোগ রয়েছে। আমি যুক্তি দিয়েছি যে এমসিটিএসে ডুব দেওয়ার আগে মিনিম্যাক্স সম্পর্কে প্রথমে ভাল ধারণা থাকা এখনও উপকারী ; বিশেষত, মিনিম্যাক্স এবং এর ত্রুটিগুলি / দুর্বল পয়েন্টগুলি বোঝা দরকারী প্রসঙ্গ সরবরাহ করতে পারে / এমসিটিএস কেন "প্রয়োজনীয়" / জনপ্রিয় হয়েছিল তা বুঝতে আপনাকে সহায়তা করতে পারে।


উপসংহারে, আমার মতে:

  • আলফা-বিটা মিনিম্যাক্সের চেয়ে কঠোরভাবে আরও ভাল, তবে মিনিম্যাক্সের শীর্ষে দৃ strongly়ভাবে সম্পর্কিত / নির্মিত; সুতরাং, মিনিম্যাক্স দিয়ে শুরু করুন, সময় অনুমতি দিলে পরে আলফা-বিটার জন্য যান
  • এমসিটিএসের বিভিন্ন শক্তি / দুর্বলতা রয়েছে, "আধুনিক" সমস্যাগুলিতে আলফা-বিটার চেয়ে প্রায়শই ভাল (তবে সবসময় নয়), এমসিটিএসে ডুব দেওয়া শুরু করার আগে মিনিম্যাক্স সম্পর্কে একটি ভাল বোঝা সম্ভবত উপকারী হবে

অন্য কোনও অ্যালগরিদম আছে যা আপনি প্রস্তাবিত যে আমিও ব্যবহার করতে পারি? এটি আলফা বিটা ছাঁটাইয়ের স্তরের মতো
জোয়

@ জো হুঁ আসলেই না। মিনিম্যাক্স একটি খুব প্রাকৃতিক সূচনা পয়েন্ট, আমি অত্যন্ত দৃ strongly়তার সাথে সুপারিশ করছি যে আপনি যদি সবে শুরু করেন। এটি মূলত দাবা / চেকার / টিক ট্যাক টো / যা কিছু গেমের জন্য বিকাশ করা প্রথম অ্যালগরিদম ছিল ith এরপরে, কয়েক হাজার না হলেও এর উন্নতিতে কয়েক হাজার উন্নতি করা হয়েছিল, যার মধ্যে বেশিরভাগই আপনি সম্ভবত চেস্পপ্রগ্রামিং.উইকিস্পেসেস / সন্ধানে খুঁজে পেতে পারেন । আলিফা-বিটা মিনিম্যাক্সের শীর্ষে সর্বাধিক প্রাকৃতিক বিকাশ natural
ডেনিস সোয়েমারস

@ জোয়ে মন্টে-কার্লো ট্রি অনুসন্ধানটি কিছুটা আলাদা (প্রয়োজনীয়তার ভিত্তিতে মিনিম্যাক্স নেই), আকর্ষণীয়, মজাদার, জনপ্রিয় এবং "আধুনিক" এআইয়ের মধ্যে অত্যন্ত প্রাসঙ্গিক। তবুও, ভিত্তিগুলি গুরুত্বপূর্ণ, আপনি প্রযুক্তিগতভাবে সম্ভব হলেও সত্ত্বেও আপনি মিনিম্যাক্স + আলফা-বিটা বুঝতে না পারলে অবিলম্বে এমসিটিএস দিয়ে শুরু করার পরামর্শ দেব না।
ডেনিস সুমার্স

সাইটের জন্য আপনাকে ধন্যবাদ। এটি জ্ঞানের একটি ধন যা আমি এখন পড়তে পারি। নতুন জিনিস শেখার পক্ষে সবচেয়ে কঠিন বিষয় হল আপনাকে বুঝতে সহায়তা করার জন্য সঠিক উপাদানটি খুঁজে পাওয়া। তাই সাইটের জন্য আবার ধন্যবাদ
জোয়ে

@ জোয়ি আমি 100% নিশ্চিত নই যদি দাবা প্রোগ্রামিং শেখার সবচেয়ে সহজ সাইট হয় (এবং শীর্ষে একটি ভীতিজনক নোটিশ পাওয়া যায় যা জুলাই শেষে সাইটটি অদৃশ্য হয়ে যেতে পারে)। যদি আমি সঠিকভাবে মনে রাখি তবে অনেকগুলি বর্ণনা বরং সংক্ষিপ্ত / সম্ভবত আপনি যদি ক্ষেত্রের একজন শিক্ষানবিস হন তা বোঝা সহজ নয়। এটি কমপক্ষে যদিও সমস্ত ধরণের অ্যালগরিদম / বর্ধনের নামগুলির একটি ভাল, বিস্তৃত সংগ্রহ হতে পারে এবং আপনি অন্য কোথাও আরও বিস্তারিত তথ্যের জন্য মূল উত্সগুলি দেখতে বা গুগল all সমস্ত নাম অনুসন্ধান করার চেষ্টা করতে পারেন।
ডেনিস সোয়েমারস

1

আমি আপনাকে মিনিম্যাক্স এবং আলফা-বিটা ছাঁটাইয়ের মধ্যে চয়ন করতে হবে আপনার আলফা-বিটা চয়ন করা উচিত। এটি আরও কার্যকর এবং দ্রুত কারণ এটি আপনার অনুসন্ধানের গাছের যথেষ্ট অংশ ছাঁটাই করতে পারে। তবে আপনাকে সর্বাধিক বা ন্যূনতম দৃষ্টিকোণের উপর নির্ভর করে সেরা থেকে খারাপের দিকে ক্রমগুলি অর্ডার করতে হবে, যাতে অ্যালগরিদম দ্রুত উপলব্ধি করতে পারে যে অনুসন্ধানের প্রয়োজন হয় কিনা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.