দাবা-জাতীয় এআই কি টার্ন-ভিত্তিক কৌশল গেমগুলিতে সত্যই প্রয়োগযোগ্য নয়?


13

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

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

আমি যদি অবাক হব তবে এর আগে যদি এটি নিয়ে চিন্তা না করা হয় এবং চেষ্টা করা হয়। এটা আছে কি? এটা কিভাবে কাজ করে?


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

আলফা-বিটা ছাঁটাই সম্পর্কে কী ? এটি নূন্যতম সর্বাধিক সংস্করণ।
ব্যবহারকারী 712092

আমি আলফা-বিটা ছাঁটাইকে এক ধরণের ন্যূনতম-সর্বোচ্চ হিসাবে দেখি।
Joh

হ্যাঁ, তাই তবে এটি দ্রুত হওয়া উচিত। এটি আপনাকে সহায়তা করে কিনা
জানুন

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

উত্তর:


5

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


9

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

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

কাগজটি এআই গেম প্রোগ্রামিং উইজডম 3 এ পাওয়া যাবে এবং ডায়নামিক ট্যাকটিকাল পজিশন মূল্যায়ন শিরোনাম রয়েছে।

কাগজের একটি খসড়া অনলাইনে এখানে পাওয়া যাবে:
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

আশা করি এইটি কাজ করবে.


2

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


2

আমি আলফা-বিটা ছাঁটাইয়ের সাথে কমপক্ষে সর্বনিম্ন কার্যকর করার পরামর্শ দেব implementing

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

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

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

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


একসাথে চলাফেরার বিষয়ে: আমি প্রথমে দেখতে পেলাম না যে মিন-ম্যাক্স কীভাবে স্থানান্তর করতে হয়, যা দাবা-এর মতো টার্ন-ভিত্তিক গেমগুলি একসাথে আন্দোলনের ক্ষেত্রে ব্যবহার করে সাধারণত ব্যাখ্যা করা হয়। আমি মনে করি আমি এটি কীভাবে করব তা দেখতে শুরু করছি তবে এটি তুচ্ছ নয়।
জো

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

1

২০১১ এর গুগল এআই চ্যালেঞ্জের বিজয়ী সর্বনিম্ন ব্যবহার করেছেন (গভীরতার 1)। অন্য শীর্ষ প্রতিযোগী এলোমেলোভাবে নমুনা ব্যবহার করেছেন । এই প্রতিযোগী উল্লেখ করেছেন যে ন্যূনতম সর্বাধিক এবং র্যান্ডম স্যাম্পলিংয়ের একটি মিশ্রণ, যা মূলত আমি আমার প্রশ্নে বর্ণনা করেছি, খারাপভাবে সম্পাদন করেছি। আমি এটি অনুমান করি যে এটি নিষ্পত্তি হয়।

অন্যদিকে, এটি দেখায় যে বড় গেমগুলিতে ন্যূনতম সর্বাধিক ব্যবহার করা সম্ভব। মনে হচ্ছে এটি পিঁপড়ির ছোট-ইশ গ্রুপগুলিতে সীমাবদ্ধ করা দরকার ছিল, সমস্ত পিঁপড়ার পুরো সেট নিয়ে কাজ করা সম্ভবত খুব ধীর হয়ে যেত। আর একটি আকর্ষণীয় পর্যবেক্ষণ হ'ল 1 গভীরতা যথেষ্ট ছিল। দাবা খেলাতে আমরা (মানুষ) বেশ ভাল হয়েছি এবং এই গেমটির জন্য একটি এআইকে চ্যালেঞ্জিং হওয়ার জন্য আরও গভীর গভীর অনুসন্ধানের প্রয়োজন। নতুন আরও জটিল গেমগুলি এত দিন খেলেছে এবং অধ্যয়ন করা হয়নি, এবং ডम्बर এআইগুলিতে পর্যাপ্ত বিনোদন মূল্য থাকতে পারে।


1

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

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

আমি উদাহরণ হিসাবে যদি একটি সাধারণ টার্ন-ভিত্তিক গেম (সভ্যতা 2) গ্রহণ করি তবে আপনার প্রতিটি ছেলে একক টার্নে মোট 8 স্কোয়ার (বা 24) এ যেতে পারেন। আপনার যদি 10 জন লোক থাকে (যা খুব বেশি কিছু নয় তবে সাধারণত কিছুটা আকর্ষণীয় হয়ে উঠতে শুরু করার সাথে সাথে আপনার আরও বেশি পরিমাণ থাকে) বর্তমান অবস্থা থেকে সম্ভাব্য "চালগুলি" মোট সংখ্যা (তাই একক স্তর) ইতিমধ্যে 8 ^ 10 বা প্রায় 4 বিলিয়ন। এমনকি যদি আপনি এর মধ্যে 99.99% ছাঁটাই করেন, তবুও আপনি গাছের গভীরে যেতে পারবেন না কারণ সম্ভাব্য পদক্ষেপের সংখ্যা সত্যই দ্রুত বিস্ফোরিত হয়।

গেমটি হ'ল রুবিকের কিউব সমস্যার মতো, যেখানে আপনি কেবল 10 বা 12 চলার পরেও অগ্রগতি দেখেন, সমস্যাটি এমন এক পর্যায়ে বিস্ফোরিত হয় যেখানে একটি স্ট্যান্ডার্ড মিনিট / সর্বোচ্চের সুবিধাগুলি কেবলমাত্র একটি মেমরির ক্ষমতার ক্ষেত্রে প্রচলিত থাকে আপনার সাধারণ কম্পিউটারের চেয়ে আরও বেশি কিছু থাকবে।

অন্য কথায়, এটি যে কৌশলগুলি খুঁজে পাবে তা পুনরুত্পাদনযোগ্য তবে খারাপ।

প্রকৃত সমস্যাটির জন্য, কীভাবে একটি শালীন এআই তৈরি করতে হয়, আমি মূলত চালিত এলোমেলো আন্দোলনের (প্রতিটি লোককে কিছুটা বুদ্ধিমান বুদ্ধি দিয়ে সরিয়ে নেওয়া), মূল্যায়ন এবং টিউনিংয়ের দিকে যাব। এটি 100 বা 1000 টির জন্য সমান্তরালভাবে করুন এবং সেরাটি শেষ হয়ে যায় এমনটি বেছে নিন। আপনি এটির পুনরায় টিউন করার জন্য ফলাফলটিকে মূল বুদ্ধিমান স্টিয়ারিংয়ে প্রতিক্রিয়া জানাতে পারেন। মন্টে-কার্লো সিমুলেশনের মতো কিছুটা।


0

টার্ন ভিত্তিক কৌশল গেমটিতে সাফল্যের সাথে কমপক্ষে / সর্বাধিক প্রয়োগ করতে আপনাকে সমস্ত উপলভ্য দাবা-কৌশল সঠিকভাবে প্রয়োগ করতে হবে ...

মূল্যায়ন ফাংশন

এমনকি দাবা ইঞ্জিনগুলির খুব খারাপ শক্তি রয়েছে, যদি আপনার মূল্যায়নের কাজগুলি খারাপ হয়। একটি মূল্যায়ন ফাংশনের সর্বাধিক সহজ সংস্করণ হ'ল: 1 = গেমটি সাদা দ্বারা জিতেছে, -1 = গেমটি কালো দ্বারা জিতেছে, 0 = অন্যান্য সমস্ত ক্ষেত্রে; তবে, এটি আপনাকে খুব খারাপ অভিনয় দেবে। আপনার টার্ন ভিত্তিক গেমের ক্ষেত্রেও একই ঘটনা ঘটে! আপনি যদি দাবাতে পছন্দ মতো ন্যূনতম / সর্বোচ্চ (আলফা / বিটা ছাঁটাই এবং স্টাফ সহ) ব্যবহার করতে চান তবে আপনাকে অবশ্যই একটি যুক্তিসঙ্গত মূল্যায়ন ফাংশন বাস্তবায়ন করতে হবে! অন্যথায়, যখন আপনার কৌশল খেলায় দাবা প্রয়োগের ক্ষেত্রে প্রয়োগ হয় তখন আপনি সেই আলগোরিদিমগুলির পারফরম্যান্স তুলনা করতে পারবেন না।

দাবা ইঞ্জিনগুলির মূল্যায়ন ফাংশনগুলি কী করে তা এই জাতীয় জিনিসগুলির মূল্যায়ন করে:

  • বোর্ডে কোনও অংশের অবস্থান কতটা ভাল?
  • কত টুকরো আক্রমণ করা হয়?
  • টুকরোটি কতবার সুরক্ষিত হয়?
  • প্রতিটি টুকরো বোর্ডে অবাধে "সরানো" যায় কিভাবে? (বা: এটি কতগুলি টাইলগুলি "নিয়ন্ত্রণ" করে)

মূল্যায়ন ফাংশনের সেই অংশগুলি প্রথমে আপনার খেলায় "অনুবাদ" করা উচিত:

  • টুকরো অবস্থান: এটি উদাহরণস্বরূপ কোনও পাহাড়ের উপরে, যা এর শুটিংয়ের পরিধি বাড়িয়ে দিচ্ছে?
  • আক্রমণ করা হয়েছে: প্রতিটি টুকরো কতটা বিপদে রয়েছে? (উদাহরণস্বরূপ, বিশেষ ইউনিট আক্রমণ করতে সক্ষম ইউনিটগুলির আক্রমণ মূল্যগুলির যোগফল যার দ্বারা আক্রান্ত হওয়ার সম্ভাবনাটি বহুগুণে বেড়ে যায়; ইউনিট ইতিমধ্যে ক্ষতিগ্রস্থ হলে সম্ভাবনা বাড়ে; অন্যান্য ইউনিট আক্রমণকারী ইউনিটের পরিসরে থাকলে হ্রাস পায়)
  • নিজস্ব আক্রমণ: প্রতিটি ইউনিট দ্বারা কয়টি ইউনিট আক্রমণ করতে পারে?
  • সুরক্ষা: এর পাশে কতগুলি নিজস্ব টুকরো রয়েছে (সহায়তা করতে)? সম্ভবত কোনও ইউনিট নূন্যতম দূরত্বে ইউনিট আক্রমণ করতে পারে না এবং কাছাকাছি ইউনিটগুলিতে আক্রমণ করার সম্ভাবনা থাকার কারণে ইউনিট দ্বারা এটি রক্ষা করা তার পক্ষে ভাল fe
  • গতিশীলতা: আপনার ইউনিটটি কীভাবে মোবাইল? (এটি পালাতে পারে?)

সমস্ত ইউনিটগুলির জন্য ওজন ফাংশন (ফ্যাক্টর_এ * রেটিং_এ + ফ্যাক্টর_বি * রেন্টিং_বি + ...) দ্বারা বিভিন্ন রেটিংয়ের সংক্ষিপ্তকরণ অবশ্যই করতে হবে ...

কৌশল গেমগুলিতে বাম সংস্থানগুলি (স্বর্ণ, কাঠ, ... )ও বিবেচনায় নেওয়া উচিত।

যদি আপনার মূল্যায়নের কাজটি যথেষ্ট পরিমাণে হয় তবে বেশিরভাগ ক্ষেত্রে আপনার গাছে সত্যিই "গভীর" অনুসন্ধান করতে হবে না। সুতরাং আপনার সম্ভবত সম্ভবত 3 বা 10 সবচেয়ে আশাব্যঞ্জক পছন্দগুলি নিবিড়ভাবে দেখার প্রয়োজন। পরবর্তী অধ্যায়টি দেখুন ...

প্রতিটি পজিশনে সম্ভাব্য পদক্ষেপ

কৌশল গেমগুলির জন্য ন্যূনতম / সর্বাধিক ব্যবহারের ক্ষেত্রে সবচেয়ে সমস্যাযুক্ত বিষয়টি হ'ল আপনি এক একক সময়ে একাধিক ইউনিট কমান্ড করতে পারেন, তবে দাবাতে আপনাকে কেবল একটি ইউনিটকে কমান্ড দেওয়ার অনুমতি দেওয়া হয় (কাস্টিং বাদে, তবে এটি একটি পরিষ্কারভাবে সংজ্ঞায়িত পদক্ষেপের মিশ্রণ)। এটি প্রতিটি "পজিশন" (দাবা শব্দ) এর জন্য N ইউনিটের পক্ষে 5 ^ N সম্ভাব্য পদক্ষেপের কারণ হয়ে দাঁড়ায়, যদি আপনি কেবল প্রতিটি ইউনিটের জন্য "উত্তর, দক্ষিণ, পশ্চিম, পূর্ব বা স্টপ" এর মধ্যে সিদ্ধান্ত নেন। জটিল কমান্ডটি নিম্ন স্তরের কমান্ডগুলিতে ভেঙে আপনি এটি সমাধান করতে পারেন: উদাহরণস্বরূপ ইউনিট এ এর ​​জন্য পদক্ষেপ বেছে নিন, গভীরতায় যান এবং বি ইউনিটের জন্য সিদ্ধান্ত নিন .... ইউনিটের জন্য সিদ্ধান্ত নিন ... এবং তারপরে এই টার্নটি শেষ করুন। কিন্তু, এই একা জটিলতা পরিবর্তন করে না! ক্রমগুলি ইউনিটগুলিতে নির্ধারিত ক্রমে আপনাকে অনুকূলিতকরণ করতে হবে (যেমন প্রথম ইউনিট বি, সি, ডি এবং তারপরে ইউনিট এ)। আপনি শেষ গণনার সময় প্রতিটি ইউনিটের সিদ্ধান্তের প্রভাব রেকর্ড করতে পারেন এবং তারপরে গুরুত্ব অনুসারে বাছাই করতে পারেন। এইভাবে আলফা-বিটা ছাঁটাই খুব খুব শীঘ্রই অনুসন্ধান গাছ থেকে কোনও খারাপ সমন্বয় কেটে ফেলা যায়। সর্বোচ্চ অগ্রাধিকারটি সর্বদা প্রতিটি পুনরাবৃত্তিতে "বেশি কিছু না করা এবং আপনার পালা শেষ করুন" হওয়া উচিত (নাল মুভ ছাঁটাই)। এইভাবে আপনি বেশিরভাগ ইউনিটকে সর্বাধিক কাজ বরাদ্দ করতে "এড়িয়ে যেতে" পারেন এবং তারা আগে যা করেছে তা কেবল চালিয়ে যেতে দিন। এইভাবে অনুসন্ধান "সমালোচনামূলক" ইউনিটগুলিতে একবার নজর রেখে দ্রুত অনুসন্ধানের গভীরতায় চলে যাবে (উদাহরণস্বরূপ, এখনকার যুদ্ধে সত্যিকার অর্থে) একবারে প্রতিটি ইউনিটকে একবার কমান্ড করার বিষয়টি নিশ্চিত করুন ... আপনি "গুরুত্বপূর্ণ" ইউনিটও সময়ে সময়ে কমান্ড পাচ্ছেন তা নিশ্চিত করতে আপনি কিছুটা এলোমেলো ব্যবহার করতে পারেন। বিশেষত, ইউনিটগুলি কিছু কাজ শেষ করে (যেমন

Iterative গভীরকরণ + ক্যাচিং / হ্যাশ টেবিল

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

অ-নিরস্তকর আচরণ

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

সারসংক্ষেপ

এই সমস্ত কৌশলগুলি (যা বর্তমানের দাবা ইঞ্জিনগুলি দ্বারা ব্যবহৃত হয়) একটি নির্মাতামূলক গেমটিতে প্রয়োগ করার সময়, আপনি অবশ্যই একটি গেমের জন্য যুক্তিসঙ্গত ফলাফল অর্জন করতে সক্ষম হবেন। অ-নিরোধক গেমগুলির জন্য, এটি সম্ভবত আরও জটিল হবে, তবে আমি এখনও ম্যানেজ করার যোগ্য বলে মনে করি।

এই কৌশলগুলির (দাবা জন্য) ব্যাখ্যা করার জন্য একটি ভাল উত্স হ'ল http://chessprogramming.wikispaces.com/

এমনকি আপনি ন্যূনতম / সর্বাধিক অনুসন্ধানগুলিতে কোনও ধরণের নির্দেশিত এলোমেলোতা প্রয়োগ করতে পারেন। প্রতিটি পুনরাবৃত্তির মধ্যে প্রথমে নির্ধারিত ফলাফলগুলি সুনির্দিষ্টভাবে অনুসন্ধানের পরিবর্তে, আপনি কেবল এটিকে এলোমেলো করতে পারেন এবং তার আদেশটি বর্তমান মূল্যায়নগুলির উপর ভিত্তি করে একটি সম্ভাব্যতা বন্টন দ্বারা সিদ্ধান্ত নেওয়া উচিত ...

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