डीप ब्लू के बाद से इंजन में सुधार कैसे हुआ?


17

1997 में डीप ब्लू ने कास्परोव को हराकर कंप्यूटर शतरंज के इंजन को बेहतर बनाया है।

क्या एल्गोरिदम बेहतर हो गए थे, या ज्यादातर एल्गोरिदम तेजी से हार्डवेयर आदि के लिए तेजी से चलने वाले एक ही एल्गोरिदम के कारण सुधार हुए थे?

यदि पूर्व में हैं, तो क्या ये एल्गोरिथम सुधार सार्वजनिक हैं?

और यदि हां, तो सुधार क्या थे? मैं उनके बारे में कहां पढ़ सकता हूं?


मेरा विनम्र उत्तर: chess.stackexchange.com/questions/19575/is-deep-blue-outdated
HelloWorld

कैसे ? नाटकीय रूप से।
Evargalo

जवाबों:


8

हो सकता है कि आप TalkChess पर एक नज़र डाल सकते हैं , जो कि कंप्यूटर शतरंज के लिए समर्पित एक मंच है। मुझे हाल ही में एक धागा मिला जो आपके लिए दिलचस्प हो सकता है: 30 साल में प्रगति 7-8 साल के चार अंतराल से

(पूर्व) शीर्ष इंजनों के बीच कुछ मेल एक ही हार्डवेयर पर खेले जाते हैं । परीक्षण से पता चलता है कि हाल के वर्षों (2002-2017) में, मुख्य रूप से सॉफ्टवेयर सुधार के द्वारा लाभ हुआ है। टेस्ट में, स्टॉकफिश (2017) ने रोबबोलिटो (2009) के खिलाफ 94/100 का शानदार स्कोर बनाया, जबकि रोबबोलिटो ने अपनी पारी में श्रेडर (2002) को 92/100 से रौंद दिया।

एक महत्वपूर्ण टिप्पणी: जैसा कि पुराने इंजनों में समानांतर कंप्यूटिंग लागू नहीं किया गया है, परीक्षण एक ही कोर पर किया गया था। नतीजतन, समानांतर मशीनों द्वारा हार्डवेयर लाभ को मापा नहीं जाता है। दूसरी ओर, आप तर्क दे सकते हैं कि समानांतर कंप्यूटिंग भी एक सॉफ्टवेयर लाभ है: खोज एल्गोरिथ्म के लिए एक कुशल और अच्छी तरह से स्केलिंग डिजाइन को लागू करना आसान नहीं है।

सूखी हुई मछली इंजन खुला स्रोत है, इसलिए एल्गोरिथम सुधार सार्वजनिक कर रहे हैं। Https://chessprogramming.wikispaces.com पर बहुत सारे दस्तावेज़ देखे जा सकते हैं


यह उनके दावे का जवाब देता है। अगली बार प्रश्न का उत्तर देने का प्रयास करें।
फ्रेड नाइट

1
खैर, मेरा मानना ​​है कि मैंने इस सवाल का जवाब दिया: लाभ मुख्य रूप से एल्गोरिथ्म में सुधार के द्वारा किया जाता है। इसके अलावा, मैंने डेटा दिखाया जो इस दावे का समर्थन करता है (लिंक देखें) और एक संभावित कमी (कोई समानांतरण नहीं मापा गया) को इंगित किया।
मैक्सवेल86

3

मैं डीप ब्लू के लिए उपयोग किए जाने वाले एल्गोरिदम के लिए बात नहीं कर सकता, लेकिन मैं शतरंज प्रोग्रामिंग में सुधार की कोशिश करने और समझाने जा रहा हूं। गति सबसे बड़ा सुधार है। डीप ब्लू ने मल्टी-प्रोसेसर समर्पित कंप्यूटरों का उपयोग किया है, इसलिए वास्तव में तुलना संभव नहीं है।

https://chessprogramming.wikispaces.com/ एक बेहतरीन स्रोत है, लेकिन इसे नेविगेट करना कठिन है।

शतरंज के इंजन को बेहतर बनाने के लिए 3 मुख्य कार्य हैं जिन्हें मूल्यांकन, चाल पीढ़ी, और खोज कार्य हैं।

मूल्यांकन कार्यक्रम के लिए सबसे कठिन है, क्योंकि नियमों के कई अपवाद हैं। हार्ड ड्राइव स्पेस सस्ता होने के साथ, एक्वल फ़ंक्शन अधिक अपवादों का मूल्यांकन करने की अनुमति देता है।

मूव जनरेशन, एक मूव बनाने और अनमेक करने के साथ, बहुत मेमोरी खा जाती है क्योंकि इसे कई बार प्रीफ़ॉर्म करना पड़ता है। सबसे आम पीढ़ी के कार्य हैं मेलबॉक्स, बिटबोर्ड, 0x88, 8x8, विस्तारित बोर्ड (10x10, 10x12), और एक पूर्व निर्धारित चाल सरणी / तालिका (* मैं अनुक्रमित चाल तालिका का उपयोग करता हूं)। वर्तमान राय है कि बिटबोर्ड तेज होते हैं, और मैजिक बिटबोर्ड का उपयोग करके यह 30% तक बढ़ जाता है। डॉ। रॉबर्ट हयात, क्रैटी शतरंज इंजन के प्रोफेसर और निर्माता, कोई महत्वपूर्ण गति वृद्धि का दावा नहीं करते हैं।

प्रारंभिक खोज समारोह आदिम न्यूनतम-अधिकतम फ़ंक्शन था। मूल रूप से आप प्रतिद्वंद्वी के स्कोर को स्थानांतरित करने और कम करने के लिए पक्ष के स्कोर को अधिकतम करने की कोशिश कर रहे थे। अल्फा-बीटा पहले सुधार था। उन्होंने ट्रांसपोज़ेशन टेबल, कट-ऑफ वैल्यूज़, एस्पिरेशन विंडो और हिस्ट्री हेयर्सिस्टिक्स द्वारा खोजे जा रहे मूव्स की संख्या कम कर दी। ये गहराई-पहली खोज हैं। आंतरिक पुनरावृति गहन खोज भी है जो "सर्वश्रेष्ठ" चाल (ओं) को खोजने की कोशिश करता है सबसे गहरी उम्मीद है कि अन्य चालों को खोजना फलहीन साबित होगा।

नोट: मेरी सूचकांक तालिका GNUChess और Jester दोनों अपनी चाल उत्पन्न करने के लिए एक सूचकांक सरणी का उपयोग करते हैं। वे संभावित चालों के साथ सरणी को भरने के द्वारा इंजन को इनिशियलाइज़ करते हैं। छह टुकड़े लें और उन कानूनी चालों की गणना करें जो प्रत्येक वर्ग से उपलब्ध हैं। इसलिए प्रत्येक टुकड़े में एक [64] [8] सरणी थी। मैंने इस विचार को लिया और इसे दो अनुक्रमित और एक तालिका में संपीड़ित किया। तालिका एक मान रखती है जो बताता है कि 16 चालें संभव हैं, एक सूचकांक चाल की ऑफसेट रखता है, और दूसरा मुखौटा धारण करता है।

ऑफसेट [] = {-8, -1, 1, 8, -9, -7, 7, 9, -17, -15, -10, -6, 6, 10, 15, 17};

मास्क [] = {१, २, ४, 1, १६, ३२, ६४, १२,, २५६, २ ...};

फिर एक स्लाइडिंग चाल की पीढ़ी के रूप में आसान के रूप में यह मुखौटा की वैधता को देख रहा है यह कदम तालिका के खिलाफ स्वीकार्य ऑफसेट है।


7
मैं उत्तर देने के लिए जवाब देने की कोशिश नहीं करता, लेकिन यह सिर्फ है .... अल्फा-बीटा और बिटबोर्ड का आविष्कार डीप ब्लू से पहले LONG था। मुझे यह भी पूरा यकीन है कि बोर्ड का एग्जॉस्ट HD किसी भी सेंस इंजन में नहीं आता (लेटेंसी बड़ी है)। चौथा, मुझे बहुत संदेह है कि रैम का आकार आपके सामान्य अल्फा-बीटा खोज कार्यान्वयन में कोई वास्तविक अंतर करता है।
मैक्स

क्या आप संभवतः उन कुछ अवधारणाओं के बारे में कुछ हाइपरलिंक जोड़ सकते हैं जिनकी आप चर्चा कर रहे हैं? जैसा कि कोई व्यक्ति जो अवधारणा में रुचि रखता है, लेकिन शब्दावली से अपरिचित है, उसका पालन करना कठिन है क्योंकि मुझे नहीं पता कि एक बिटबोर्ड क्या है या चालाक शतरंज इंजन है।
थंडरफोर्ज

मुझे लगा कि मैं स्पष्ट था कि मैं डीप ब्लू की तुलना नहीं कर रहा था, लेकिन मैं एक संक्षिप्त इतिहास दे रहा था। जिस हार्ड ड्राइव का मैं जिक्र कर रहा था, वह कार्यक्रम ही है। हर बार जब शतरंज इंजन, अधिक कोड, और इसलिए अधिक HD स्थान में शामिल एक नई eval अवधारणा की आवश्यकता होती है।
फ्रेड नाइट

@Thunderforge, मैंने जो एक लिंक दिया है, वह हर उस पहलू की व्याख्या करता है जिसे आप कभी भी शतरंज की प्रोग्रामिंग से निपटना चाहते हैं, हालांकि मैं मानता हूं कि नेविगेट करना कठिन है। मैंने अन्य स्रोत कोड पढ़कर सीखा, लेकिन जिस पर सबसे अधिक टिप्पणी की गई है वह है डॉ। हयात का चालाक इंजन। मैं अंतरिक्ष सीमाओं और प्लेटफार्मों और संकलक के अंतर के कारण बहुत व्यापक नहीं होना चाहता हूं। अगर, विकि शतरंज पेज को पढ़ने के बाद, आप अभी भी उलझन में हैं, तो सवाल पूछें और मुझे यकीन है कि कई बेहतर उत्तर प्रदान करेंगे।
फ्रेड नाइट

1
Every time that a new eval concept in included into a chess engine, more code, and therefore more HD space is required.बोर्ड एक्सेल फ़ंक्शन आमतौर पर सीपीयू कैश में फिट करने के लिए डिज़ाइन किए गए हैं। CPU कैश << RAM << HD। HD आकार कोई फर्क नहीं पड़ता।
मैक्सबी

2

क्या एल्गोरिदम बेहतर हुआ?

जाहिर है, हां थोड़ा सा।

या ज्यादातर हार्डवेयर और सॉफ्टवेयर की बदौलत तेजी से चलने वाले समान एल्गोरिदम के कारण सुधार हुआ?

माइनर नाइट: यदि एल्गोरिदम बेहतर हो गया है, तो यह है कि सॉफ्टवेयर बेहतर हो रहा है इसलिए कोई "या" नहीं है।

मूर का नियम हमें बताता है कि हर 18 महीने में प्रोसेसर की गति लगभग दोगुनी हो जाएगी। इसका मतलब है कि यह 20 वर्षों में लगभग 13 गुना दोगुना हो गया है। यह आधुनिक प्रोसेसर को 8,000 गुना के क्षेत्र में कहीं तेज बनाता है। इसलिए, अब तक और इंजन प्रदर्शन में सबसे बड़ा सुधार तेज हार्डवेयर के कारण है।

यदि पूर्व में हैं, तो क्या ये एल्गोरिथम सुधार सार्वजनिक हैं?

और यदि हां, तो सुधार क्या थे? मैं उनके बारे में कहां पढ़ सकता हूं?

खैर, यह पूर्व नहीं था, यह बाद वाला था। फिर भी सुधार ज्यादातर खुले स्रोत हैं और स्टॉकफिश जैसे इंजनों के लिए स्रोतों को डाउनलोड करके स्वतंत्र रूप से दिखाई देते हैं । शायद सामान्य स्टॉकफिश डाउनलोड लिंक देने के लायक भी है क्योंकि संस्करण 9 के बाहर आने पर विशिष्ट स्रोत कोड लिंक की संभावना समाप्त हो जाएगी।


2
That means it has doubled roughly 13 times in 20 years.मुझे लगता है कि आप मूर के कानून को गलत बता रहे हैं। यह प्रोसेसर की गति के बारे में कुछ नहीं कहता है। वास्तव में, यह थोड़ी देर में दोगुना नहीं हुआ।
15

hardware and softwareएल्गोरिथ्म के कार्यान्वयन के रूप में मेरा मतलब था सॉफ्टवेयर (एएसएम बनाम सी ++), लेकिन मैं देख सकता हूं कि यह कैसे भ्रमित है। फिक्स्ड।
मैक्सबी

1
वह मूर का कानून सही है, सिवाय इसके कि वह वाक्यांश "अगले दशक में शामिल हो।" यह 1975 में हुआ होगा, और वह सही था।
फ्रेड नाइट

-1 क्योंकि उत्तर गलत है - एक ही हार्डवेयर पर, वर्तमान इंजन अभी भी पूर्व-शीर्ष इंजनों को कुचलते हैं।
Allure

0

यह सभी एल्गोरिदम के बारे में है।

एक मानव शतरंज खिलाड़ी ने उस समय दुनिया के सबसे शक्तिशाली कंप्यूटरों में से एक लिया। इस ब्रूट फोर्स कंप्यूटिंग दृष्टिकोण ने डीप ब्लू को लगभग छह से आठ कदम आगे देखने की अनुमति दी। एक करीबी लड़ाई में, मशीन ने अंततः कास्परोव को 3 1/2 गेम से 2 1/2 से हराया।

छह साल बाद, कास्परोव मानव बनाम मशीन की एक और प्रतियोगिता में शामिल थे। इस बार उन्होंने डीप ब्लू के उत्तराधिकारी, डीप जूनियर के खिलाफ खेला। परिणाम तीनों गेमों में एक ड्रॉ सीरीज़ थी। सबसे बड़ा अंतर यह था कि डीप जूनियर मशीन पर डीप ब्लू की कंप्यूटिंग शक्ति का लगभग एक प्रतिशत भाग करता था। शतरंज खेलने वाले एल्गोरिदम ने सौ गुना कम कंप्यूटिंग शक्ति के साथ लगभग एक ही परिणाम प्राप्त करने के बिंदु पर सुधार किया था।


4
शतरंज में आपका स्वागत है! आपने अपने उत्तर के मुख्य भाग को इस तरह लिखा जैसे कि वह एक उद्धरण हो; क्या आप कृपया कोई स्रोत प्रदान कर सकते हैं?
Glorfindel

0

डिस्क्लेमर: विशेषज्ञ नहीं।

एल्गोरिदम बेहतर हो गया, और आज का सबसे अच्छा इंजन 1995 पर चल रहा था (याद रखें डीप ब्लू 1999 था) हार्डवेयर कस्पारोव को आसानी से हरा देगा। जैसा कि मैंने समझा, एल्गोरिदम के दो पहलू हैं:

खोज करें । यदि उदाहरण के लिए, मैं आपकी रानी को अपनी रानी के साथ ले जाता हूं, तो एक मानव प्रतिद्वंद्वी स्वचालित रूप से पुनरावृत्ति पर सबसे पहले दिखेगा। एक कंप्यूटर के लिए, हालांकि, यह QxQ के लिए हर संभव प्रतिक्रिया का मूल्यांकन करेगा। लगभग सभी समय, यह बर्बाद हो रही प्रसंस्करण शक्ति है। एक अच्छा खोज एल्गोरिथ्म इन सभी "शाखाओं" को काट देता है क्योंकि वे वैसे भी अप्रासंगिक हैं।

मानक खोज एल्गोरिथ्म अल्फा-बीटा प्रुनिंग है , और इसका उपयोग सबसे पहले शतरंज कंप्यूटरों में किया गया था। मुझे नहीं पता कि डीप ब्लू अल्फा-बीटा प्रूनिंग का उपयोग करता है, लेकिन आधुनिक इंजन नहीं करते हैं। परिणामस्वरूप उनकी खोजें "असुरक्षित" हैं - वे मिस कर सकते हैं, उदाहरण के लिए, कि रानी को फिर से हासिल करने के अलावा कुछ कदम ने गेम जीत लिया होगा। हालांकि, यह दुर्लभ है कि ऐसा होता है, और बदले में वे अपनी गहराई को बहुत अधिक बढ़ाते हैं। ("गहराई" एक तकनीकी शब्द है कि इंजन कितना गहरा खोज करता है, इसलिए उदाहरण के लिए 30 को गहराई तक खोजने वाला इंजन एक को हरा सकता है जो केवल 20 को गहराई से खोजता है, अन्य सभी चीजें समान हैं)।

मूल्यांकन । यह इंजन कोड का अन्य शूल है। किसी विशेष स्थिति को देखते हुए, क्या यह सफेद, काले या समान के लिए बेहतर है? इसमें सभी प्रकार के कार्य शामिल हो सकते हैं, जैसे

  • यदि एक पक्ष के पास अतिरिक्त सामग्री / स्थान है, तो उसे निकालने के लिए एक बोनस दें।
  • यदि सफेद में मोहरे द्वारा समर्थित उन्नत नाइट है, तो सफेद को एक बोनस देना है।
  • यदि काले रंग के राजा का गतिरोध होता है, तो सफेद को एक बोनस देना चाहिए।
  • यदि सफेद को 7 वीं रैंक पर एक बदमाश है, तो सफेद को एक बोनस दें।
  • यदि यह एक एंडगेम है (और यह तय करने के लिए एल्गोरिदम हैं कि क्या स्थिति एंडगेम है) और दोनों पक्षों में विपरीत रंग के बिशप हैं, तो एक जुर्माना लगाने के लिए eval (यानी इसे 0.00 की ओर धक्का दें)।

आज के इंजन डीप ब्लू की तुलना में बहुत बेहतर स्थिति का मूल्यांकन करते हैं।

जैसे कि एल्गोरिदम सार्वजनिक हैं, स्टॉकफिश वर्तमान में दुनिया का सबसे मजबूत इंजन है और यह खुला स्रोत है। आप खुद को जीथब से कोड डाउनलोड कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.