দাবা ইঞ্জিনগুলি কীভাবে "চিন্তা" করে?


28

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


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

2
এটি একটি দুর্দান্ত প্রশ্ন, আমি উত্তরগুলি সত্যিই উপভোগ করেছি।
ট্র্যাভিস জে

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

উত্তর:


22

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

http://www.chess.com/blog/zaifrun এর দাবা ইঞ্জিন তৈরির জন্য সিরিজ বা নিবন্ধ রয়েছে যদি আপনি আরও কীভাবে তারা কাজ করেন সে সম্পর্কে গভীরভাবে নজর চান।


উত্তম উত্তর, সুতরাং আপনি যখন 30 এর গভীরতা দেখবেন, তার অর্থ কি ইঞ্জিন 30 টি নোড গভীর অনুসন্ধান করেছে? এছাড়াও, এটি প্লাই বলতে কী বোঝায়?
xaisoft

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

5
একটি প্লাই চলাচলের অর্ধেক। দাবাতে সরানো একটি সম্পূর্ণ 'সেট' যদি আপনি হোয়াইট + ব্ল্যাক করে থাকেন। একটি প্লাই এর অর্ধেক, তাই কেবল একটি রঙ।
এরেবাসব্যাট

21

আপনি একটি খুব জটিল প্রশ্ন জিজ্ঞাসা করছেন, তবে বেসিকগুলিতে ফিরে যাওয়া ভাল। বিবেচনা করার জন্য কয়েকটি ধারণা রয়েছে:

মূল্যায়ন

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

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

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

তবে সূক্ষ্ম, গভীর অবস্থানগত চাল সম্পর্কে কী বলা যায়?

ঠিক আছে, আমরা কেবল অবস্থানের মূল্যায়নের পৃষ্ঠটি সবেমাত্র স্ক্র্যাচ করেছি। মূল্যায়নের ফাংশনের প্রকৃত বাস্তবায়ন সরল হতে পারে, প্রতি সেকেন্ডে আরও পজিশনের জন্য মূল্যায়ন করা (মোটামুটি ফ্যাশনে হলেও) বা আরও জটিল, যার ফলে কম পজিশনের মূল্যায়ন হয়, তবে উচ্চতর আত্মবিশ্বাসের সাথে। মূল্যায়ন ফাংশনটি শত শত বা এমনকি হাজার হাজার পৃথক তথ্যকে বিবেচনায় নেওয়া অস্বাভাবিক নয়।

অনুসন্ধান করুন

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

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

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

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

উপসংহার / সব মিলিয়ে

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


6

আমি উত্তর সাথে একমত।

আমার মনে আছে জিএম রোমান দিজিন্দজিচশভিলি এটির বিষয়ে কথা বলছিলেন, রোমানের একটি ল্যাব ভিডিওতে আমার মনে নেই এটি কোন ভিডিওটি ছিল (যদি কেউ জানেন তবে আমার উত্তরটি সম্পাদনা করুন)।

রোমান বলেছিলেন যে ফ্রিটজ ইঞ্জিনের বিকাশকারী তার বন্ধু। রোমান ফ্রিটজকে কতটা ভাল ছিল তা পরীক্ষা করেছিলেন এবং বিকাশকারী রোমানকে বলেছিলেন যে ফ্রিজের জটিল সিদ্ধান্ত নেওয়ার জন্য (উদাহরণস্বরূপ অবস্থানগত সুবিধার বিনিময়ে উপকরণের ত্যাগ) তাদের প্রোগ্রামের কথা বলার মতো টুকরোটির মান পরিবর্তন করতে হবে। একটি খারাপ বিশপটি 1 পয়েন্টের মূল্যবান, একটি খোলা তির্যক একটি বিশপের মূল্য 7 পয়েন্ট, নাইটগুলি নিকটে অবস্থানে 5 পয়েন্টের মূল্যবান ...

আমি প্রতিটি টুকরার জন্য সঠিক সংখ্যাগুলি জানি না তবে এটি কীভাবে কাজ করে এবং এখন আপনার ইঞ্জিনে কোনও খারাপ বিশপকে বা ত্যাগ করতে কোনও সমস্যা হবে না যদি আপনি তাকে প্রতিটি পজিশনের প্রতিটি টুকরোটির মান বলতে পারেন।

সম্পাদনা

আরও দেখুন দাবা উইকি প্রোগ্রামিং


4

কম্পিউটারগুলির পক্ষে যথেষ্ট গভীর (25 প্লাই এবং আরও বেশি) দেখতে এবং প্রতিটি সম্ভাব্য পদক্ষেপটি পরীক্ষা করা অসম্ভব।

যা সম্ভব তা সম্ভব আলফা-বিটা প্রুনিং নামক কৌশলটি যার অর্থ কম্পিউটারগুলির মতো মানুষের মতো (তবে আরও ভাল উপায়) কেবল প্রতিশ্রুতিবদ্ধ ধারাবাহিকতা অনুসরণ করে।

তারা অবস্থানগুলি ক্রমাগত মূল্যায়ন করে (কিছু প্রাকোডড বিধিগুলির ভিত্তিতে, মূল্যবান উপাদান, রাজা সুরক্ষা, ক্রিয়াকলাপ, পদ্মার কাঠামো ইত্যাদির উপর ভিত্তি করে) এবং বিভিন্ন প্রকারের দিকে নজর দেয় যা তাদেরকে সেরা অবস্থানের দিকে নিয়ে যাচ্ছে বলে মনে হয়।

এটি এখনও যাদুবিদ্যার কাছাকাছি যে তারা কীভাবে এটি পরিচালনা করে যথেষ্ট পরিমাণে এই লক্ষ লক্ষ অবস্থানকে এক সেকেন্ডে মূল্যায়ন করতে সক্ষম করে।

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


3

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

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

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

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

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