দাবা ইঞ্জিন তৈরি, মেশিন লার্নিং বনাম ট্র্যাডিশনাল ইঞ্জিন?


17

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

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

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

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

সুতরাং, সম্ভব সবচেয়ে শক্তিশালী দাবা ইঞ্জিন তৈরির ক্ষেত্রে, আমার কি নিউরাল নেটওয়ার্ক বা হার্ড-কোডেড হওয়া উচিত?


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

এটি দাবা নয়, তবে সাম্প্রতিক বই "ডিপ লার্নিং এবং গেম গো" দেখায় যে কীভাবে কোনও গেম ইঞ্জিনের জন্য এনএন ব্যবহার করতে হয়। আলফা-গো এবং আলফা-জিরো হুডের নীচে একই রকম।
জন কোলম্যান

আপনার পাইথনের অভিজ্ঞতা দেওয়া এটি নিম
ড্যারেন এইচ

আপনি যদি এনএন-তে যেতে চান তবে এটি আকর্ষণীয়: arxiv.org/abs/1509.01549 গিথুবেও কোড রয়েছে :)
পিঁপড়

@ এবং নোট করুন যে জিরাফ শীর্ষ ইঞ্জিনগুলির তুলনায় খুব বেশি শক্তিশালী ছিল না। (~ 2800 ইলো)
অস্কার স্মিথ

উত্তর:


8

প্রথম পদক্ষেপ: আপনার লক্ষ্য / কারণগুলি সংজ্ঞায়িত করুন

আমি মনে করি এটিই মূল উপাদান। এর মধ্যে কোনটি আপনাকে সেরা ফিট করে? ( শুধুমাত্র একটি চয়ন করুন )

  1. আপনি একটি মজাদার, চ্যালেঞ্জিং কোডিং কার্যটি উপভোগ করতে চান
  2. আপনি একটি খুব ভাল দাবা ইঞ্জিন তৈরি করতে চান
  3. দাবা ইঞ্জিনগুলি কীভাবে কাজ করে সে সম্পর্কে আপনি জানতে চান
  4. আপনি কোডিং দক্ষতা শিখতে / অনুশীলন করতে চান
  5. আপনি কম্পিউটার বিজ্ঞান ধারণা / তত্ত্ব শিখতে / প্রয়োগ করতে চান (যেমন মেশিন লার্নিং)
  6. (অন্যান্য)

আইএমও ২. ব্যতীত অন্য কোনও কিছুর জন্য "একটি কয়েন টস" করা ভাল all তবে আপনি সম্ভবত সিদ্ধান্ত নিতে সহায়তা করতে পছন্দগুলির মধ্যে একটি তুলনা চান।

হার্ড-কোডিংয়ের ক্ষেত্রে

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

আপনি যদি বিশদ নিয়ে কাজ করে এবং জিনিসগুলির বিষয়ে নির্দিষ্ট হয়ে ও যুক্তি উপভোগ করেন তবে এটি আপনার পক্ষে ভাল কাজ করতে পারে। তুলনায়, মেশিন লার্নিংয়ে আরও অনেকগুলি "ব্ল্যাক বক্স" অ্যালগোরিদম জড়িত যা अस्पष्ट এবং অস্বচ্ছ। আপনি ঠিক জানেন না কি চলছে।

এছাড়াও আমি মনে করি আপনি যদি মেশিন লার্নিংয়ের পরিবর্তে হার্ড-কোডিংয়ের পথে যান তবে আপনার নিজের জন্য "এটি নিজেরাই নির্ণয় করতে" একটি সহজ সময় পাবে। আপনি সম্পূর্ণরূপে বুঝতে পারবেন না এমন কম কপি-পেস্টিং স্টাফ।

মেশিন লার্নিংয়ের ক্ষেত্রে

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

হার্ড-কোডিং দাবা পড়াশোনা সম্পর্কে। মেশিন লার্নিং আপনার তৈরি করা প্রাণী সম্পর্কে পড়াশোনা করা।

এবং মেশিন লার্নিং অবশ্যই একটি খুব উত্তপ্ত বিষয়।

হার্ড কোডিংয়ের জন্য ভাষা পছন্দ

"অন্যান্য সি-ভিত্তিক ভাষাগুলি" বলতে আপনার অর্থ কী তা আমি নিশ্চিত নই। সি ++ হ'ল একমাত্র মূলধারার ভাষা যা সি এর মতো কিছু হয় সি / সি ++ এর সুবিধা হ'ল তারা দ্রুত । যদিও অন্যান্য ভাষাগুলি বছরের পর বছর ধরে ধরেছে, তবুও সি ++ তাদের অর্থের জন্য তাদের রান দেয়।

সি ++ সহজ নয়। আপনি আরও আধুনিক সংকলিত ভাষার মতো মরিচা, গোলং বা সুইফ্টের থেকে দুর্দান্ত পারফরম্যান্স পাবেন। আপনি যদি একটি জেআইটি ভাষার জন্য যান তবে এটি খুব খারাপ হওয়া উচিত নয়। অর্থাৎ সিপিথন দোভাষী ব্যবহার করবেন না ; আয়রন পাইথন বা জাইথন, বা নোড, বা সি # বা জাভা ব্যবহার করুন।

জিপিইউ প্রোগ্রামিংয়ের জন্য আলাদা পদ্ধতির প্রয়োজন এবং আমি এই মুহুর্তে এর বিরুদ্ধে পরামর্শ দেব।

মেশিন শেখার জন্য ভাষা পছন্দ

টেনসরফ্লো সমস্যাটি হ'ল এটি অত্যন্ত নিম্ন-স্তরের। এটি মেশিন লার্নিংকে উত্সর্গীকৃত একটি ইন্টারফেসের চেয়ে সংখ্যা-ক্রাঞ্চিং অ্যালগরিদমগুলি (যা সমান্তরাল হার্ডওয়্যার হিসাবে চিহ্নিত করা যায়) লেখার বিষয়ে আরও বেশি।

অবশ্যই, এটি একটি দুর্দান্ত শেখার অভিজ্ঞতা হতে পারে! এবং অবশ্যই আজ খুব সার্থক শেখার। তবে আপনি কেরাস বা পাইটর্চ দিয়ে শুরু করতে চাইতে পারেন।


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

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

1
এটি একটি খুব আকর্ষণীয় উত্তর তবে আপনি কি পারফরম্যান্সের উদ্বেগের জন্য নোড ওভার সিপিথনকে সুপারিশ করছেন ?
ইভপোক

> "সি ++ হ'ল একমাত্র মূলধারার ভাষা যা সি এর মতো কিছু" " সি শার্প? মরচে? জাভা? এমন অনেকগুলি ভাষা রয়েছে যা কমপক্ষে "সি এর মতো কিছু"
Maarark

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

24

আপনি যদি সবচেয়ে শক্তিশালী ইঞ্জিনকে সম্ভব করে তুলতে চেষ্টা করছেন তবে অবশ্যই এনএন ইঞ্জিনগুলির জন্য যান।

Ditionতিহ্যবাহী ইঞ্জিনগুলি দুর্দান্ত - স্টকফিশ সম্মতিযুক্ত সমতুল্য হার্ডওয়ারের ভিত্তিতে এখনও গ্রহের সবচেয়ে শক্তিশালী ইঞ্জিন - তবে সেগুলি লেখা শক্ত hard এই ইঞ্জিনগুলি তারা যেখানে রাতারাতি ছিল সেখানে পায় নি; তারা বছরের পর বছর কাজ করে। উদাহরণস্বরূপ স্টকফিশ ছয় বছর ধরে ধীরে ধীরে ইলো অর্জন করছে । আপনি যদি স্ক্র্যাচ থেকে শুরু করেন তবে আপনি স্টকফিশের শক্তির কাছাকাছি কোথাও পাবেন না; বাস্তবে আপনি স্টকফিশ যেখান থেকে রয়েছেন সেখান থেকে কয়েক শতাধিক এলো স্টল করার সম্ভাবনা রয়েছে। তুলনা করার জন্য সবচেয়ে শক্তিশালী একক লেখক ইঞ্জিনের কিছু অধিকার এখন দেখুন Picture Window , লেজার , এবং Xiphos (আমি Houdini & ফায়ার অবহেলা যেহেতু তারা ওপেন সোর্স নয়)। এই ইঞ্জিনগুলি সমস্ত স্টকফিশের চেয়ে যথেষ্ট দুর্বল।

এরা এত দুর্বল কেন? দুটি কারণ:

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

  2. অন্য কারণ হ'ল স্টকফিশ অনেক মস্তিষ্কের দ্বারা সমর্থিত। লেখার সময় পর্যন্ত, 5 জন দ্বারা লিখিত 8 টি প্যাচ পরীক্ষা করা হচ্ছে। আপনি যদি প্যাচের ইতিহাস অনুসন্ধান করেন তবে আপনি আরও অনেক বিকাশকারী পাবেন যারা প্যাচ লিখেছেন। আমি জানি না স্টকফিশের কতগুলি সক্রিয় কর্মী রয়েছে, তবে এটি অবশ্যই> 20 20

অন্যদিকে, এনএন ইঞ্জিনগুলি (তুলনামূলকভাবে) সহজেই এমন একটি শক্তিতে পৌঁছে যায় যা ইথেরিয়াল / লেজার / এক্সফোসের উপরে। সর্বশেষ শীর্ষ দাবা ইঞ্জিন চ্যাম্পিয়নশিপ টুর্নামেন্টে নিজেকে দেখুন । ইথেরিয়াল / লেজার / জিফোস লিগ 1 এ রয়েছে যা যথেষ্ট বিশ্বাসযোগ্য তবে শীর্ষ বিভাগের বিভাগগুলি (বিভাগ পি) হ'ল:

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

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

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

ফলাফলটি হ'ল: যদি আপনার লক্ষ্যটি বিশ্বের সেরা ইঞ্জিনগুলির সাথে প্রতিযোগিতা করা হয় তবে আপনি এনএন ইঞ্জিনের সাথে প্রচলিত সাফল্য অর্জনের সম্ভাবনা বেশি।


6
আপনার উপসংহারের অন্য দিকটি উল্লেখ করুন: আপনার প্রোগ্রামটি যদি কিছু প্রোগ্রামিং করার সময় দাবা সম্পর্কে আপনার উপলব্ধি আরও গভীর করা হয় তবে traditionalতিহ্যবাহী হয়ে যান।
ব্লুজ

1
আমি আপনার উপসংহারের সাথে একমত, তবে আমি শক্তিশালী ইঞ্জিনের (অবশ্যই অনুমতি নিয়ে) স্ক্র্যাচ থেকে শুরু করার পরিবর্তে প্রারম্ভিক পয়েন্ট হিসাবে সাম্প্রতিক নেটওয়ার্কটি ব্যবহার করার সুপারিশ করব (তবে "স্ব-প্লে এবং আপডেটের মাধ্যমে ট্রেনের চেয়ে আলাদাভাবে চালিয়ে যেতে হবে" ওজন ", হয় স্তর যুক্ত করে বা অপসারণ করে, ইনপুট বৈশিষ্ট্য যুক্ত করে, অতিরিক্ত আউটপুটগুলির দাবি করে ইত্যাদি)। আমি মনে করতে পারি না যে Lc0 একক মাথা বা দ্বৈত প্রধান কিনা তবে আমি বিশ্বাস করি যে 3 টি মাথা ( ijcai.org/proceedings/2018/0523.pdf ) বর্তমানে কোনও দাবা ইঞ্জিন দ্বারা প্রয়োগ করা হয়নি এবং এটি রাষ্ট্রের উন্নতি করতে পারে -শিল্প.
স্টিভেন জ্যাকসন

আমি মনে করি অ্যালির অনুসন্ধান যা স্টেইন নেটওয়ার্ক নয়, দুর্বল ইঞ্জিনগুলির (কেএমসিএসটি, স্টুফভ্লিজ) বিরুদ্ধে শক্তিশালী করে তোলে।
আমি '

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

@ মেম 'এটি সম্ভব তবে লিলেনস্টেইন হ'ল এলসি 0 বাইনারি ব্যবহার করে স্টেইন নেটওয়ার্ক এবং এটি দাবা ডট কমের কম্পিউটার দাবা চ্যাম্পিয়নশিপে ভালভাবে সম্পন্ন হয়েছে, সুতরাং স্টেইন নেটওয়ার্কগুলি কমপক্ষে এলসি 0 নেটওয়ার্কের সাথে তুলনীয়।
আকর্ষনীয়

9

সুতরাং, সম্ভব সবচেয়ে শক্তিশালী দাবা ইঞ্জিন তৈরির ক্ষেত্রে, আমার কি নিউরাল নেটওয়ার্ক বা হার্ড-কোডেড হওয়া উচিত?

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

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

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

পাইথন এবং জাভাস্ক্রিপ্ট সম্ভবত শক্তিশালী দাবা ইঞ্জিনের জন্য খুব ধীর। আমি সুইফট ব্যবহার করি নি তবে এটি সম্ভবত ম্যাকোস ব্যতীত অন্য প্ল্যাটফর্মগুলি পছন্দ করবে না, তাই সম্ভবত সি বা সি ++ ব্যবহার করা ভাল। আপনি সম্ভবত মরিচা ব্যবহার করতে পারেন, তবে এতে অনেকগুলি সুরক্ষা বৈশিষ্ট্য রয়েছে যা বিরক্তিকর হয় এবং আপনাকে সত্যই প্রয়োজন হয় না, যা বিরক্তিকর হতে পারে। নির্দিষ্ট নিম্ন-স্তরের অপ্টিমাইজেশান করা কঠিন বলে এ থেকে এ থেকে ভাল পারফরম্যান্স পাওয়া আরও কঠিন হতে চলেছে। অবশ্যই, আপনি সবসময় এটি সমাবেশে লিখতে পারেন তবে এটি সম্ভবত খুব বেশি কাজ হতে চলেছে। দেখতে https://www.chessprogramming.org/Languages/


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


1
Lc0 এর নেটওয়ার্ক ব্যবহার করে এমন কোনও আলাদা এনএন ইঞ্জিন বাস্তবায়নের বিকল্প কি?
রিমকো জারলিচ

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

@ রেমকো গ্রিলিচ সেই ক্ষেত্রে যে সত্যিই অন্য কোনও ইঞ্জিন না হয়ে ওঠে, এটি আইসি0 ইঞ্জিন হতে পারে কেবল অন্যরকম মোড়ক / ইন্টারফেস / যাই হোক না কেন।
পিটারিস

3

আমি খাঁটি খেলনা দাবা ইঞ্জিনটি ব্যবহার করে তৈরি করেছি: পাইথন দাবাটি খেলাটির নিয়মগুলি নিজেই কোড না করে এবং কেবল যুক্তির উপর ফোকাস না করে সত্যিই খুব ভাল লাগত; তবে, প্রতি সেকেন্ডে আমি যে অবস্থানের মূল্যায়ন করতে পেরেছিলাম তা খুব কম। এটি একটি ভাল সূচনা পয়েন্ট হতে পারে।

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