সুচিপত্র:

বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম: Ste টি ধাপ
বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম: Ste টি ধাপ

ভিডিও: বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম: Ste টি ধাপ

ভিডিও: বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম: Ste টি ধাপ
ভিডিও: (Lec-21) Minimax Algorithm | আর্টিফিশিয়াল ইন্টেলিজেন্স বাংলা টিউটোরিয়াল 2024, জুলাই
Anonim
Image
Image
বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম
বোর্ড গেম আর্টিফিশিয়াল ইন্টেলিজেন্স: মিনিম্যাক্স অ্যালগরিদম

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

এই নির্দেশনায়, আমি আপনাকে পাইথনে ওথেলো (AKA Reversi) এর জন্য একটি AI কিভাবে তৈরি করতে হয় তার ধাপগুলি অনুসরণ করব। এই প্রকল্পটি মোকাবেলা করার আগে পাইথনে কীভাবে কোড করা যায় সে সম্পর্কে আপনার মধ্যবর্তী বোঝাপড়া থাকা উচিত। এই নির্দেশনার জন্য আপনাকে প্রস্তুত করার জন্য এখানে কয়েকটি ভাল ওয়েবসাইট রয়েছে: w3schools বা learnpython। এই নির্দেশনার শেষে, আপনার একটি এআই থাকা উচিত যা গণনা করা চালনা করবে এবং বেশিরভাগ মানুষকে পরাজিত করতে সক্ষম হওয়া উচিত।

যেহেতু এই নির্দেশযোগ্য প্রাথমিকভাবে কিভাবে একটি এআই তৈরি করতে হবে, তাই আমি ব্যাখ্যা করব না কিভাবে পাইথনে একটি গেম ডিজাইন করতে হয়। পরিবর্তে, আমি গেমটির জন্য কোড দেব যেখানে একজন মানুষ অন্য মানুষের বিরুদ্ধে খেলতে পারে এবং এটিকে সংশোধন করতে পারে যাতে আপনি এমন একটি খেলা খেলতে পারেন যেখানে একজন মানুষ AI এর বিরুদ্ধে খেলে।

কলম্বিয়া শেপে গ্রীষ্মকালীন প্রোগ্রামের মাধ্যমে আমি এই এআই তৈরি করতে শিখেছি। আমি সেখানে ভাল সময় কাটিয়েছি তাই তাদের ওয়েবসাইটটি একবার দেখুন যদি আপনি আগ্রহী হন।

এখন যেহেতু আমরা রসদ বের করে ফেলেছি, আসুন কোডিং শুরু করি!

(আমি ছবিতে কয়েকটি নোট রেখেছি তাই সেগুলি দেখতে ভুলবেন না)

সরবরাহ

এটা সহজ:

1) একটি পাইথন পরিবেশের সাথে কম্পিউটার যেমন স্পাইডার বা আইডিএল

2) আমার গিটহাব থেকে ওথেলো গেমের ফাইল ডাউনলোড করুন

3) ধৈর্য সহ আপনার মস্তিষ্ক ইনস্টল

ধাপ 1: প্রয়োজনীয় ফাইলগুলি ডাউনলোড করুন

প্রয়োজনীয় ফাইলগুলি ডাউনলোড করুন
প্রয়োজনীয় ফাইলগুলি ডাউনলোড করুন
প্রয়োজনীয় ফাইলগুলি ডাউনলোড করুন
প্রয়োজনীয় ফাইলগুলি ডাউনলোড করুন

যখন আপনি আমার GitHub এ যান, তখন আপনার 5 টি ফাইল দেখা উচিত। 5 টি ডাউনলোড করুন এবং তাদের সবাইকে একই ফোল্ডারে রাখুন। আমরা গেমটি চালানোর আগে, স্পাইডার পরিবেশে সমস্ত ফাইল খুলুন।

ফাইলগুলি কী করে তা এখানে:

1) othello_gui.py এই ফাইলটি খেলোয়াড়দের খেলার জন্য গেম বোর্ড তৈরি করে (মানুষ হোক বা কম্পিউটার)

2) othello_game.py এই ফাইলটি গেমবোর্ড ছাড়াই একে অপরের বিরুদ্ধে দুটি কম্পিউটার চালায় এবং শুধুমাত্র স্কোর এবং মুভ পজিশন দেখায়

3) ai_template.py এখানে আপনি আপনার AI তৈরির জন্য আপনার সমস্ত কোড রাখবেন

4) randy_ai.py এটি একটি প্রিমেড এআই যা এলোমেলোভাবে তার চালগুলি বেছে নেয়

5) othello_shared.py প্রাক-তৈরি ফাংশনগুলির একটি গুচ্ছ যা আপনি আপনার AI তৈরি করতে ব্যবহার করতে পারেন যেমন উপলব্ধ চাল, স্কোর বা বোর্ড অবস্থা

6) অন্য তিনটি ফাইল: Puma.py, erika_5.py, এবং nathan.py, যথাক্রমে SHAPE প্রোগ্রাম থেকে আমার, এরিকা, এবং নাথান দ্বারা তৈরি, এই তিনটি আলাদা AI গুলি অনন্য কোড সহ

ধাপ 2: কিভাবে পাইথন ওথেলো খুলবেন এবং খেলবেন

কিভাবে পাইথন ওথেলো খুলবেন এবং খেলবেন
কিভাবে পাইথন ওথেলো খুলবেন এবং খেলবেন
কিভাবে পাইথন ওথেলো খুলবেন এবং খেলবেন
কিভাবে পাইথন ওথেলো খুলবেন এবং খেলবেন

একবার আপনার সমস্ত ফাইল খোলা হয়ে গেলে, স্ক্রিনের নীচের ডানদিকে কোণায়, "run othello_gui.py" টাইপ করুন এবং আইপিথন কনসোলে এন্টার চাপুন। অথবা ম্যাক টার্মিনালে, "python othello_gui.py" টাইপ করুন (আপনি অবশ্যই সঠিক ফোল্ডারে থাকার পরে)। তারপর একটি বোর্ড আপনার পর্দায় পপ আপ করা উচিত। এই মোড হিউম্যান বনাম হিউম্যান মোড। আলো দ্বিতীয় এবং অন্ধকার প্রথম যায়। আপনি বিভ্রান্ত হলে আমার ভিডিওটি দেখুন। iA শীর্ষে, প্রতিটি রঙ টাইল স্কোর আছে। খেলতে, সেখানে একটি টাইল বসানোর জন্য একটি বৈধ মুভ স্পেস ক্লিক করুন এবং তারপরে কম্পিউটারটি আপনার প্রতিপক্ষকে দিন যারা একই কাজ করবে এবং পুনরাবৃত্তি করবে।

আপনি যদি ওথেলো খেলতে না জানেন তবে আল্ট্রা বোর্ডের ওয়েবসাইট থেকে এই নিয়মগুলি পড়ুন:

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

মূল গেম এবং এই পাইথন গেমের মধ্যে পার্থক্য হল যে যখন একজন খেলোয়াড়ের জন্য কোন বৈধ পদক্ষেপ নেই তখন খেলাটি শেষ হয়ে যায়।

এখন যেহেতু আপনি বন্ধুর সাথে গেমটি খেলতে পারেন, আসুন একটি এআই তৈরি করি যার সাথে আপনি খেলতে পারেন।

ধাপ 3: মিনিম্যাক্স অ্যালগরিদম: দৃশ্য তৈরি করা

মিনিম্যাক্স অ্যালগরিদম: দৃশ্য তৈরি করা
মিনিম্যাক্স অ্যালগরিদম: দৃশ্য তৈরি করা

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

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

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

ধাপ 4: মিনিম্যাক্স: বোর্ড কনফিগারেশনের মূল্যায়ন

মিনিম্যাক্স: বোর্ড কনফিগারেশনের মূল্যায়ন
মিনিম্যাক্স: বোর্ড কনফিগারেশনের মূল্যায়ন
মিনিম্যাক্স: বোর্ড কনফিগারেশনের মূল্যায়ন
মিনিম্যাক্স: বোর্ড কনফিগারেশনের মূল্যায়ন

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

এখন আমরা প্রতিটি বোর্ড রাজ্য বোর্ডের পদের মান নির্ধারণ করতে পারি। যখন একটি অবস্থান AI এর টুকরা দ্বারা দখল করা হয়, তখন আপনি অবস্থানের উপর নির্ভর করে একটি নির্দিষ্ট সংখ্যক পয়েন্ট দেন। উদাহরণস্বরূপ, একটি বোর্ড রাজ্য যেখানে AI এর টুকরাটি কোণায় রয়েছে, আপনি 50 পয়েন্টের বোনাস দিতে পারেন, কিন্তু যদি এটি একটি প্রতিকূল স্থানে থাকে, তাহলে টুকরাটির মান 0 হতে পারে। অবস্থান, আপনি বোর্ড রাষ্ট্র একটি মান বরাদ্দ। উদাহরণস্বরূপ, যদি AI এর কোণায় একটি টুকরা থাকে তবে বোর্ড রাজ্যের স্কোর 50 হতে পারে এবং অন্য বোর্ড রাজ্যের AI এর টুকরোটি 10 এর স্কোর থাকতে পারে।

এটি করার অনেক উপায় আছে, এবং বোর্ড টুকরা মূল্যায়ন করার জন্য আমার তিনটি ভিন্ন হিউরিস্টিক আছে। আমি আপনাকে আপনার নিজস্ব ধরণের হিউরিস্টিক তৈরি করতে উত্সাহিত করি। আমি তিনটি পৃথক হিউরিস্টিক্স সহ তিনটি ভিন্ন নির্মাতা দ্বারা আমার গিথুব এ তিনটি ভিন্ন এআই আপলোড করেছি: Puma.py, erika5.py, nathanh.py।

ধাপ 5: মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা

মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা
মিনিম্যাক্স অ্যালগরিদম: সেরা মুভ নির্বাচন করা

এখন এটি ভাল হবে যদি এআই সর্বোচ্চ স্কোর সহ বোর্ড রাজ্যে যাওয়ার সমস্ত পদক্ষেপগুলি বেছে নিতে পারে। কিন্তু মনে রাখবেন যে AI সমস্ত বোর্ড রাজ্য তৈরি করার সময় প্রতিপক্ষের জন্য পদক্ষেপগুলিও বেছে নিচ্ছিল এবং যদি প্রতিপক্ষ স্মার্ট হয় তবে এটি AI কে সর্বোচ্চ বোর্ড স্কোর পেতে দেবে না। পরিবর্তে, একটি স্মার্ট প্রতিদ্বন্দ্বী এআইকে সর্বনিম্ন বোর্ড রাজ্যে যাওয়ার জন্য পদক্ষেপ নেবে। অ্যালগরিদমে, আমরা দুই খেলোয়াড়কে সর্বাধিক খেলোয়াড় এবং একটি ছোট খেলোয়াড় বলি। এআই সর্বাধিক প্লেয়ার হবে কারণ এটি নিজের জন্য সর্বাধিক পয়েন্ট পেতে চায়। প্রতিদ্বন্দ্বী মিনিমাইজিং প্লেয়ার হবে কারণ প্রতিপক্ষ এমন পদক্ষেপ নেওয়ার চেষ্টা করছে যেখানে AI কম পয়েন্ট পায়।

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

সংজ্ঞা: প্যারেন্ট নোড - একটি নোড যা এর নীচে নোড তৈরি করে বা তৈরি করে; বাচ্চাদের নোডের উৎপত্তি - একই প্যারেন্ট নোড থেকে আসা নোড

খালি নোডগুলি প্রতিনিধিত্ব করে যে এআইটি সেরা বোর্ড রাজ্যে পৌঁছানোর জন্য তৈরি করবে। এটি বামদিকের নোডের বাচ্চাদের সাথে তুলনা করে শুরু হয়: 10, -3, 5. যেহেতু সর্বাধিক খেলোয়াড় এই পদক্ষেপটি নেবে, তাই এটি এমন পদক্ষেপকে বেছে নেবে যা এটিকে সবচেয়ে বেশি পয়েন্ট দেবে: 10. তাই, আমরা তারপর এটি নির্বাচন করি এবং সঞ্চয় করি বোর্ড স্কোর নিয়ে যান এবং প্যারেন্ট নোডে লিখুন। এখন 10 টি প্যারেন্ট নোডে, এটি এখন খেলোয়াড়দের ছোট করার পালা। যাইহোক, আমরা যে নোডটি 10 এর সাথে তুলনা করব তা খালি, তাই মিনিমাইজিং প্লেয়ারটি বেছে নেওয়ার আগে আমাদের প্রথমে সেই নোডটি মূল্যায়ন করতে হবে। সুতরাং আমরা সর্বাধিক প্লেয়ারের পালা ফিরে যান এবং সংলগ্ন নোডের শিশুদের তুলনা করুন: 8, -2। Maximizing 8 নির্বাচন করবে এবং আমরা খালি প্যারেন্ট নোডে লিখব। এখন যেহেতু অ্যালগরিদম তার উপরে একটি নোডের বাচ্চাদের জন্য ফাঁকা জায়গা পূরণ করা শেষ করেছে, মিনিমাইজিং প্লেয়ার সেই বাচ্চাদের তুলনা করতে পারে - 10 এবং 8 এবং 8 নির্বাচন করতে পারে। এই উদাহরণের শেষে, আমাদের স্কোর 8.। এটাই সর্বোচ্চ বোর্ড রাজ্য যে এআই খেলতে পারে প্রতিপক্ষকে অনুকূলভাবে খেলছে বলে ধরে নিতে। তাই AI প্রথম পদক্ষেপটি বেছে নেবে যা 8 বোর্ড রাজ্যের দিকে নিয়ে যায়, এবং যদি প্রতিপক্ষ অনুকূলভাবে খেলতে থাকে, AI- কে 8 টি বোর্ড রাজ্যে পৌঁছানোর জন্য সমস্ত পদক্ষেপ খেলতে হবে। (আমার ছবিতে নোটগুলি অনুসরণ করুন)

আমি জানি এটা অনেক ছিল। যদি আপনি সেই ধরণের একজন হন যার জন্য কিছু বোঝার জন্য আপনার সাথে কারো কথা বলা দরকার, এখানে কয়েকটি ভিডিও রয়েছে যা আমি এর পিছনে ধারণাটি বুঝতে সাহায্য করার জন্য দেখেছি: 1, 2, 3।

ধাপ 6: মিনিম্যাক্স অ্যালগরিদম: সিউডোকোড

মিনিম্যাক্স অ্যালগরিদম: সিউডোকোড
মিনিম্যাক্স অ্যালগরিদম: সিউডোকোড

আপনি মিনিম্যাক্স অ্যালগরিদমের পিছনে যুক্তি বোঝার পরে, উইকিপিডিয়া থেকে এই সিউডোকোড (সমস্ত কোডের জন্য সার্বজনীন ফাংশন) দেখুন:

ফাংশন minimax (নোড, গভীরতা, maximizingPlayer) হয়

যদি গভীরতা = 0 বা নোড একটি টার্মিনাল নোড হয়

নোডের হিউরিস্টিক মান ফেরত দিন

যদি maximizingPlayer তাহলে

মান: =

নোডের প্রতিটি সন্তানের জন্য

মান: = সর্বোচ্চ (মান, মিনিম্যাক্স (শিশু, গভীরতা - 1, মিথ্যা))

ফেরত মূল্য

অন্যথায় (* মিনিমাইজিং প্লেয়ার *)

মান: = +

নোডের প্রতিটি সন্তানের জন্য

মান: = মিনিট (মান, মিনিম্যাক্স (শিশু, গভীরতা - 1, সত্য))

ফেরত মূল্য

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

এই ছদ্দোকোডটি সেই প্রক্রিয়াটি পুনরুত্পাদন করছে যা আমি আগের দুটি ধাপে ব্যাখ্যা করেছি। এখন আসুন এটিকে আরও এক ধাপ এগিয়ে নিয়ে যাই এবং পাইথন কোডে এটি ঠিক করি।

ধাপ 7: Ai_template.py দিয়ে আপনার AI তৈরি করা

Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা
Ai_template.py দিয়ে আপনার AI তৈরি করা

আমার মিনিম্যাক্স এআই কোডটি দেখার আগে, ai_template.py ফাইল এবং শেষ ধাপে আমরা যে ছদ্ম-কোডের কথা বলেছিলাম তার সাহায্যে আপনার নিজের এআই তৈরির চেষ্টা করে একটি ফাটল ধরুন। এআই টেমপ্লেটে দুটি ফাংশন আছে: def minimax_min_node (বোর্ড, রঙ) এবং def minimax_max_node (বোর্ড, রঙ)। মিনিম্যাক্স ফাংশনটি নিজেই পুনরাবৃত্তিমূলক হওয়ার পরিবর্তে, আমাদের দুটি ভিন্ন ফাংশন রয়েছে, যা একে অপরকে কল করে। বোর্ড রাজ্যের মূল্যায়ন করার জন্য হিউরিস্টিক তৈরি করতে, আপনাকে নিজের ফাংশন তৈরি করতে হবে। Othello_shared.py ফাইলে একটি প্রিমেড ফাংশন রয়েছে যা আপনি আপনার AI তৈরিতে ব্যবহার করতে পারেন।

একবার আপনার এআই থাকলে, এটির বিরুদ্ধে রান্ডি_এইপি চালানোর চেষ্টা করুন। একে অপরের বিরুদ্ধে দুটি আইস চালানোর জন্য, ম্যাক টার্মিনালে "python othello_gui.py (এআই ফাইলের নাম সন্নিবেশ করান).py (ফাইলের নাম সন্নিবেশ করান) টাইপ করুন অথবা" run othello_gui.py (এআই ফাইলের নাম সন্নিবেশ করান) টাইপ করুন। (ফাইলের নাম সন্নিবেশ করান).py "এবং নিশ্চিত করুন যে আপনি সঠিক ডিরেক্টরিতে আছেন। এছাড়াও, সঠিক পদক্ষেপের জন্য আমার ভিডিওটি দেখুন।

ধাপ 8: এআই যুদ্ধ করার সময়

এআই যুদ্ধ করার সময়!
এআই যুদ্ধ করার সময়!
এআই যুদ্ধ করার সময়!
এআই যুদ্ধ করার সময়!
এআই যুদ্ধ করার সময়!
এআই যুদ্ধ করার সময়!

এখন আপনার কম্পিউটার বন্ধুদের একটি গুচ্ছ পান এবং তাদের তাদের নিজস্ব এআই ডিজাইন করুন! তারপরে আপনি একটি প্রতিযোগিতা করতে পারেন এবং আপনার এআই ডিউককে এটি থেকে বের করতে পারেন। আশা করি, এমনকি যদি আপনি আপনার নিজের এআই তৈরি করতে না পারেন, তাহলে আপনি বুঝতে পারবেন যে মিনিম্যাক্স অ্যালগরিদম কিভাবে কাজ করে। যদি আপনার কোন প্রশ্ন থাকে, তাহলে নিচের মন্তব্যে নির্দ্বিধায় কোন প্রশ্ন পোস্ট করুন।

প্রস্তাবিত: