كيف يلعب الكمبيوتر الشطرنج؟
هيكارو ناكامورا ، الذي تحدّى جهازكمبيوتر مؤخرًا ، فقد هزم جهاز كمبيوتر رجلًا في لعبة الشطرنج لفترة طويلة ، والآن أصبح أقوى لاعبي الشطرنج غير قادرين على التغلب على جهاز كمبيوتر محمول قديم. يتم الآن استخدام محركات الشطرنج لتحليل الألعاب والبحث عن خيارات جديدة واللعب عن طريق المراسلة.إذا كنت مهتمًا بكيفية ترتيب محركات الشطرنج ، فمرحبًا بك.مقدمة
بمجرد أن كنت على يقين من أن برامج الشطرنج (هي أيضًا محركات ، ولكن المزيد عن ذلك لاحقًا) ، ضع في اعتبارك العدد الكبير من الألعاب التي تم لعبها واعثر على موقعها الحالي فيها واتخذ الخطوة الصحيحة. في رأيي ، قرأت عن ذلك في بعض الكتاب.إن هذا رأي ساذج للغاية. يمكن الحصول على موقع جديد في لعبة الشطرنج بالحركة العاشرة. على الرغم من أن هناك عدد أقل من المواقف في الشطرنج مقارنة بالذهاب ، ومع ذلك ، بعد 3 حركات (الخطوة هي حركة واحدة من الأبيض والأسود ، نصف الحركة عبارة عن حركة من جانب واحد فقط) تتكون شجرة الحركة من ما يقرب من 120 مليون عقدة. علاوة على ذلك ، تم اعتبار حجم الشجرة بعد 14 نصف حركة من الموقع الأولي من قبل المتحمسين لأكثر من عام ، حتى الآن بعد أن تقدم بنحو الثلث.اعتقدت أيضا أن برامج الشطرنج ، على الرغم من طويلة الأمدالفوز في المباراة ضد بطل العالم لا يزال في متناول أفضل الناس. هذا ايضا ليس صحيحافي مباراة مصغرة حديثة بين الإنسان والآلة ، لعب هيكارو ناكامورا ، أحد أقوى لاعبي الشطرنج في العالم ، مع كومودو ، وهو واحد من أقوى برامج الشطرنج في العالم. تم إطلاق البرنامج على Xeon 24 النواة. نظرًا لأن الأشخاص لم يعودوا قادرين على التنافس على قدم المساواة مع جهاز الكمبيوتر ، فقد حقق مدير المدرسة بداية قوية في كل من الألعاب الأربعة:- في اللعبة الأولى - بيدق وحركة: لعب الكمبيوتر باللون الأسود وبدون بيدق f7
- في الثانية - فقط بيدق: لعب الكمبيوتر الأبيض بدون بيدق f2
- في الثالث - نوعية (ويقدر الفرق بين الغراب وشخصية خفيفة في حوالي 2 قدم): جهاز كمبيوتر دون A1 الغراب الأبيض، وهو رجل من دون B8 الخيل وA8 الغراب في مكانها.
- في الحركات الرابعة - الأربع: يلعب الشخص الأبيض وبدلاً من الخطوة الأولى يقوم بأربع حركات دون عبور منتصف اللوحة.
كانت هناك بعض الخلافات بشأن الإعاقة - على سبيل المثال ، يؤدي غياب البيدق إلى إضعاف الملك إلى حد ما ، ولكن بعد التبييت يعطي خطًا مفتوحًا على الرخ. ربما يعطي غياب البيدق المركزي ميزة أكبر. تقدم 4 حركات ميزة موضعية جيدة ، ولكن إذا لعبت لأول مرة مغلقة مثل الدفاع الهندي القديم ، فلن يكون من الصعب إلغاء هذه الميزة.بالإضافة إلى ذلك ، تم لعب الألعاب مع التحكم في 45 "+15" ، أي 45 دقيقة لكل لعبة و 15 ثانية من الإضافةفي كل خطوة. عادةً ما توفر عناصر التحكم الأقصر ميزة إضافية لجهاز الكمبيوتر ، بينما تزيد عناصر التحكم الأطول قليلاً من فرص الشخص. حتى في جزء من الثانية ، سيكون الكمبيوتر قادرًا على اكتساح الحركات الخاسرة بشكل مفتوح ، بينما نظرًا للنمو الأسي للشجرة المتغيرة ، فإن كل تحسن لاحق في التحليل يستغرق وقتًا أطول.ومع ذلك ، كان هناك إعاقة وخسر الشخص في المباراة 2.5-1.5 ، بعد أن تعادل أول 3 مباريات وخسر الرابع. في الوقت نفسه ، فاز الناظر الضعيف بثقة تامةمع إعاقة 2 بيادق. لذلك ، فإن ميزة أفضل البرامج على أفضل الناس في الوقت الحالي هي في مكان ما بين 1 و 2 بيادق من الإعاقة. بالطبع ، هذا التقييم صعب للغاية ، ولكن للحصول على تقييم دقيق ، من الضروري لعب عدة آلاف من الألعاب بين الأشخاص والبرامج ، ولا يكاد أي شخص يفعل ذلك. يرجى ملاحظة أن تصنيف ELO ، الذي يشار إليه غالبًا للبرامج ، لا علاقة له بتصنيف الأشخاص.ما هو محرك الشطرنج؟
حتى يتمكن الشخص من لعب الشطرنج باستخدام جهاز كمبيوتر ، بالإضافة إلى البحث فعليًا عن أفضل حركة ، فأنت بحاجة إلى واجهة مستخدم رسومية. لحسن الحظ ، تم اختراع واجهة عالمية (حتى اثنين ، Winboard و UCI ، ولكن معظم المحركات تستخدم UCI) للتواصل بين واجهة المستخدم الرسومية وبرنامج الشطرنج نفسه (المحرك). وبالتالي ، يمكن للمبرمجين التركيز على خوارزمية لعبة الشطرنج ، دون التفكير في الواجهة. الوجه الآخر للعملة هو أن إنشاء واجهة المستخدم الرسومية مملة أكثر بكثير من كتابة محرك ، ثم تفقد واجهات المستخدم الرسومية المجانية بشكل ملحوظ على تلك المدفوعة. على عكس المحركات ، حيث تقاتل Stockfish الحرة بثقة من أجل السطر الأول من التصنيف مع Komodo المدفوع.كيف ما زالوا يلعبون؟
لذا ، كيف يعمل محرك الشطرنج الحديث؟عرض مجلس الإدارة
أساس أي محرك هو تمثيل رقعة الشطرنج. بادئ ذي بدء ، من الضروري "شرح" للكمبيوتر جميع قواعد الشطرنج وإعطائها الفرصة للحفاظ على وضع الشطرنج. بدون هذا ، من المستحيل تقييم الموقف والتحركات.هناك طريقتان رئيسيتان لتخزين تمثيل للوحة - من خلال الأشكال أو الخلايا . في الحالة الأولى ، نقوم بتخزين كل قطعة مكانها على اللوح ، في الثانية - على العكس ، لكل خلية نخزن ما هو موجود. لكل طريقة مزاياه وعيوبه ، ولكن في الوقت الحالي تستخدم جميع المحركات العليا نفس تمثيل الألواح - ألواح بت.لوحات بيتوارد
لحسن الحظ ، هناك 64 خلية على رقعة الشطرنج. لذا ، إذا استخدمنا بتًا واحدًا لكل خلية ، فيمكننا تخزين اللوحة بالكامل في عدد صحيح 64 بت.في متغير واحد ، سنقوم بتخزين جميع القطع البيضاء ، في آخر - جميع القطع السوداء ، وفي 6 أخرى - كل نوع من الأشكال بشكل منفصل (خيار آخر هو 12 لوحة بت لكل لون ونوع من الأشكال بشكل منفصل).ما هي ميزة هذا الخيار؟الأول هو الذاكرة. كما نعلم لاحقًا ، أثناء التحليل ، يتم نسخ تمثيل اللوحة عدة مرات ، وبالتالي ، فإن ذاكرة الوصول العشوائي تتغذى. تعتبر ألواح Bitboards واحدة من أكثر تمثيلات رقعة الشطرنج المدمجة.ثانياً ، السرعة. العديد من الحسابات ، على سبيل المثال ، حساب التحركات المحتملة ، تنزل إلى عدة عمليات بت. ونتيجة لذلك ، على سبيل المثال ، يعطي استخدام تعليمات POPCNT تسارعًا بنسبة 15٪ للمحركات الحديثة. بالإضافة إلى ذلك ، أثناء وجود لوحات بيتل ، تم اختراع العديد من الخوارزميات والتحسينات ، مثل لوحات بيتل "السحرية" .بحث
الحد الأدنى
في قلب معظم محركات الشطرنج توجد خوارزمية البحث minimax أو تعديلها غير الحد الأقصى. باختصار ، ننزل إلى الشجرة ونقيم الأوراق ، ثم نرتفع ، في كل مرة نختار الحركة المثالية للاعب الحالي ، ونقلل النتيجة لواحد (أسود) ونكبر للثاني (أبيض). ومن هنا الاسم. بمجرد الوصول إلى الجذر ، نحصل على سلسلة من التحركات المثالية لكلا اللاعبين. الفرق بين minimax و non-hamax هو أنه في الحالة الأولى ، نتناوب في اختيار التحركات مع الحد الأقصى والحد الأدنى من التقييمات ، وفي الحالة الثانية ، بدلاً من ذلك ، قم بتغيير علامة جميع التقييمات ونختار دائمًا الحد الأقصى (فهمنا من أين أتوا). أكثر هنا و هنا .ألفا بيتا
التحسين الأول هو ألفا بيتا . فكرة alpha-beta بسيطة - إذا كان لدي بالفعل حركة جيدة ، فيمكنك قطع التحركات التي من الواضح أنها أسوأ. تأمل المثال في الصورة المخيفة على اليسار. افترض أن اللاعب A لديه تحركان محتملان - a3 و b3. بعد تحليل مسار a3 ، حصل البرنامج على تقييم +1.75. بدءًا من تقييم الخطوة b3 ، رأى البرنامج أن اللاعب B لديه حركتين - a6 و a5. تقييم الدورة a6 +0.5. نظرًا لأن اللاعب B يختار حركة بحد أدنى من الدرجات ، فلن يختار حركة بدرجة أعلى من 0.5 ، مما يعني أن تقدير الخطوة b3 أقل من 0.5 ، وليس هناك أي معنى في التفكير فيها. وبالتالي ، يتم قطع الشجرة الفرعية المتبقية من b3.للقصاصة ، نقوم بتخزين الحدود العليا والدنيا - ألفا وبيتا. إذا حصلت الخطوة أثناء التحليل على درجة أعلى من بيتا ، فسيتم قطع العقدة الحالية. إذا كانت الدرجة أعلى من ألفا ، يتم تحديث ألفا.تنقسم العقد في ألفا بيتا إلى 3 فئات:- PV-Nodes - العقد التي سقط تقييمها في النافذة (بين ألفا وبيتا). دائمًا ما يكون الجذر والعقدة الموجودة في أقصى اليسار عُقدًا من هذا النوع.
- العقد المقطوعة (أو العقد عالية الفشل ) - العقد التي حدث فيها قطع في بيتا.
- جميع العقد (أو العقد ذات الفشل المنخفض ) - العقد التي لم يتجاوز فيها أي تحرك ألفا وفقًا للتقييم.
حركات الفرز
عند استخدام alpha beta ، يصبح ترتيب الحركات مهمًا. إذا تمكنا من وضع أفضل حركة أولاً ، فسيتم تحليل التحركات المتبقية بشكل أسرع بكثير بسبب قطع بيتا.بالإضافة إلى استخدام التجزئة وأفضل حركة من التكرار السابق ، هناك عدة تقنيات لفرز الحركات.على سبيل المثال ، يمكن استخدام MVV-LVA (الضحية الأكثر قيمة - المعتدي الأقل قيمة) لالتقاط الصور ، على سبيل المثال . نقوم بفرز جميع اللقطات بترتيب تنازلي لقيمة "الضحية" ، بينما في الداخل نفرز مرة أخرى بترتيب تصاعدي لقيمة "المعتدي". من الواضح أنه عادة ما يكون من الأفضل أن تلتقط الملكة بالبيدق من العكس.بالنسبة للحركات "الصامتة" ، يتم استخدام طريقة "الحركات القاتلة" - الحركات التي تسببت في قطع بيتا. عادة ما يتم فحص هذه التحركات فورًا بعد التحركات من التجزئة والتقاطها.جداول التجزئة أو جداول التقليب
على الرغم من الحجم الكبير للشجرة ، هناك العديد من العقد متطابقة. من أجل عدم تحليل نفس الموقف مرتين ، يقوم الكمبيوتر بتخزين نتائج التحليل في جدول وفي كل مرة يتحقق ما إذا كان هناك بالفعل تحليل جاهز لهذا الموقف. عادة ، يخزن مثل هذا الجدول التجزئة الفعلي للموضع والتصنيف وأفضل حركة وتصنيف العمر. العمر مطلوب لاستبدال المواقف القديمة عند ملء الجدول.البحث التكراري
كما تعلم ، إذا لم نتمكن من تحليل الشجرة بأكملها تمامًا ، فإن minimax يحتاج إلى وظيفة تقييم. ثم بعد أن وصلنا إلى عمق معين ، نوقف البحث ونقيم الموقف ونبدأ في تسلق الشجرة. لكن هذه الطريقة تتطلب عمقًا محددًا مسبقًا ولا تقدم نتائج وسيطة عالية الجودة.البحث التكراري يحل هذه المشاكل. أولاً ، نحلل إلى عمق 1 ، ثم إلى عمق 2 ، إلخ. وهكذا ، في كل مرة ننزل أعمق قليلاً من المرة الأخيرة ، حتى يتوقف التحليل. لتقليل حجم شجرة البحث ، عادةً ما تُستخدم نتائج التكرار الأخير لقطع التحركات السيئة عمداً على الشريحة الحالية. تسمى هذه الطريقة "نافذة الشفط" ويتم استخدامها عالميًا.البحث بهدوء
تم تصميم هذه الطريقة لمكافحة "تأثير الأفق". يمكن أن يكون مجرد إيقاف البحث في العمق الصحيح أمرًا خطيرًا للغاية. تخيل أننا توقفنا في منتصف تبادل الملكات - الأبيض أخذ الملكة السوداء ، والخطوة التالية يجب أن يختار الأسود اللون الأبيض. ولكن في الوقت الحالي على اللوحة - لدى White ملكة إضافية وسيكون التقييم الثابت خاطئًا بشكل أساسي.للقيام بذلك ، قبل إجراء تقييم ثابت ، نتحقق من جميع اللقطات (في بعض الأحيان أيضًا لعبة الداما) وننزل إلى الشجرة إلى موضع لا توجد فيه عمليات التقاط وداما. بطبيعة الحال ، إذا كانت جميع اللقطات تزيد من سوء التقدير ، فإننا نعيد تقدير الموقف الحالي.البحث الانتقائي
إن فكرة البحث الانتقائي هي أن تستغرق وقتًا أطول في التفكير في التحركات "المثيرة للاهتمام" وأقل في التفكير في عدم الاهتمام. لهذا ، يتم استخدام الإضافات التي تزيد من عمق البحث في مواضع معينة ، والاختصارات التي تقلل من عمق البحث.يزداد العمق في حالة الالتقاط ، الداما ، إذا كانت الحركة فريدة أو أفضل بكثير من البدائل أو في وجود بيدق عابر.القص والقطع
مع التخفيضات والقطع ، كل شيء أكثر إثارة للاهتمام. يمكن أن تقلل بشكل كبير من حجم الشجرة.باختصار حول القص:- - — , . , , . , , , , .
- — , -. , , . (1-2).
- — , , . . PV . .
- Multi-Cut — M(, 6) C(, 3) Cut-node, .
- null- — null- ( ) , . , , , , .
تُستخدم الاختصارات عندما لا نكون متأكدين تمامًا من أن الحركة سيئة ، وبالتالي لا تقطعها ، ولكن ببساطة تقلل من العمق. على سبيل المثال ، الحلاقة هي اختصار شريطة أن يكون التقدير الثابت للموضع الحالي أقل من ألفا.بفضل التصنيف عالي الجودة للحركات والقطع ، تمكنت المحركات الحديثة من تحقيق معامل التفرع أقل من 2 . ونتيجة لذلك ، للأسف ، لا يلاحظون في بعض الأحيان ضحايا ومجموعات غير قياسية.NegaScout و PVS
هناك أسلوبان متشابهان للغاية يستخدمان حقيقة أنه بعد أن وجدنا العقدة الكهروضوئية (بافتراض أن تحركاتنا مرتبة جيدًا) ، فمن المحتمل ألا تتغير ، أي أن جميع العقد المتبقية ستعيد تصنيفًا أقل من ألفا. لذلك ، بدلاً من البحث باستخدام نافذة من alpha إلى beta ، نقوم بالبحث بنافذة من alpha إلى alpha + 1 ، مما يتيح لنا تسريع البحث. بالطبع ، إذا حصلنا على لقطة بيتا في بعض العقدة ، فيجب إعادة تقديرها بالفعل من خلال البحث العادي.الفرق بين الطريقتين هو فقط في الصياغة - تم تطويرها في نفس الوقت تقريبًا ، ولكن بشكل مستقل ، وبالتالي معروفة تحت أسماء مختلفة.البحث الموازي
موازاة ألفا بيتا هو موضوع كبير منفصل. سأستعرض الأمر لفترة وجيزة ، ومن يهتم ، تحقق من Parallel Alpha-Beta Search في الذاكرة المشتركة المعالجات المتعددة . تكمن الصعوبة في أنه مع البحث الموازي ، يتم تحليل العديد من العقد المقطوعة قبل أن يجد مؤشر ترابط آخر نقضًا (يثبت بيتا) ، بينما في البحث المتسلسل ، مع الفرز الجيد ، سيتم قطع العديد من هذه العقد.كسول SMP
خوارزمية بسيطة للغاية. نبدأ فقط جميع سلاسل الرسائل في نفس الوقت بنفس البحث. يحدث اتصال التدفقات بسبب جدول التجزئة. كان كسول SMP فعالاً بشكل مدهش ، لدرجة أن سمكة Stockfish المتطورة تحولت إليه باستخدام YBW. صحيح ، يعتقد البعض أن التحسن كان بسبب التنفيذ الضعيف لـ YBWC والقص الشديد العدواني ، وليس بسبب ميزة Lazy SMP.مشروع الإخوة الصغار ينتظرون (YBWC)
يجب تحليل العقدة الأولى (الأخ الأكبر) بشكل كامل ، وبعد ذلك يبدأ التحليل الموازي للعقد المتبقية (الإخوة الأصغر). الفكرة هي نفسها ، فإن الخطوة الأولى إما أن تحسن بشكل كبير ألفا ، أو حتى تسمح لك بقطع جميع العقد الأخرى.تقسيم الشجرة الديناميكية (DTS)
خوارزمية سريعة ومعقدة. القليل عن السرعة: يتم قياس سرعة البحث من خلال ttd (الوقت إلى العمق) ، أي الوقت الذي يصل فيه البحث إلى عمق معين. يمكن استخدام هذا المؤشر عادة لمقارنة عمل إصدارات مختلفة من محرك أو محرك يعمل على عدد مختلف من النوى (على الرغم من أن كومودو ، على سبيل المثال ، يزيد من عرض الشجرة بمزيد من النوى المتاحة). بالإضافة إلى ذلك ، أثناء التشغيل ، يعرض المحرك سرعة البحث في nps (عقد في الثانية). هذا المقياس أكثر شيوعًا ، ولكنه لا يسمح حتى للمحرك بالمقارنة مع نفسه. كسول SMP ، الذي لا يوجد فيه التزامن ، يزيد nps خطيًا تقريبًا ، ولكن نظرًا لكمية كبيرة من العمل غير الضروري ، فإن ttd ليس مثيرًا للإعجاب. بينما بالنسبة إلى DTS ، تتغير Nps و ttd تقريبًا .لنكون صادقين ، ما زلت لا أستطيع معرفة هذه الخوارزمية بالكامل ، والتي ، على الرغم من كفاءتها العالية ، يتم استخدامها حرفياً في زوج من المحركات. لمن هو مثير للاهتمام للغاية ، اتبع الرابط أعلاه.التقييم
لذا ، وصلنا إلى العمق الضروري ، وبحثنا عن الهدوء ، وأخيرًا ، نحتاج إلى تقييم الموقف الثابت.يقوم الكمبيوتر بتقييم الموضع في البيادق: +1.0 يعني أن الأبيض لديه ميزة تساوي 1 البيدق ، -0.5 يعني أن الأسود لديه ميزة نصف البيدق. تقدر الحصيرة بـ 300 بيادق ، والموضع الذي يعرف فيه عدد التحركات إلى الحصيرة x هو بيادق (300-0.01x). +299.85 تعني أن الزملاء البيض في 15 حركة. في هذه الحالة ، يعمل البرنامج نفسه عادةً بتقديرات كاملة بالسنتيبس (1/100 بيادق).ما هي المعلمات التي يأخذها الكمبيوتر في الاعتبار عند تقييم الموقف؟المادة والتنقل
أبسط شيء. الملكة هي 9-12 بيادق ، الرخ 5-6 ، الفارس والأسقف 2.5-4 البيدق ، على التوالي ، بيدق واحد. بشكل عام ، تعتبر المادة إرشاديًا جديرًا لتقييم موقف ما وأي ميزة موضعية تتحول عادة في النهاية إلى ميزة مادية.يعتبر التنقل بسيطًا - عدد التحركات المحتملة في الوضع الحالي. كلما زاد عدد اللاعبين ، كلما كان جيش اللاعب أكثر قدرة على الحركة.جداول موضع الشكل
الفارس في زاوية اللوح عادة ما يكون سيئًا ، البيادق الأقرب إلى مؤخرة العدو أصبحت أكثر قيمة وهكذا. لكل رقم ، يتم تجميع جدول المكافآت والعقوبات اعتمادًا على موقعه على السبورة.هيكل البيدق
- بيادق مزدوجة - بيادقان على نفس العمودي. في كثير من الأحيان يكون من الصعب الدفاع عنها مع بيادق أخرى ، تعتبر ضعفًا.
- — , . , .
- — , . ,
- — , . , .
تؤثر جميع المعلمات أعلاه على تقييم اللعبة بطرق مختلفة ، اعتمادًا على مرحلة اللعبة. في الافتتاح ليس هناك معنى في البيدق الذي تم تمريره ، ولكن في نهاية اللعبة تحتاج إلى إحضار الملك إلى وسط اللوحة ، وعدم الاختباء خلف البيادق.لذلك ، تحتوي العديد من المحركات على تصنيف منفصل للعبة النهائية وللمرة الأولى. يقومون بتقييم مرحلة اللعبة اعتمادًا على المواد المتبقية على اللوحة ، ووفقًا لذلك ، ضع في اعتبارك التقييم - كلما اقتربنا من نهاية اللعبة ، كلما قل تأثير النتيجة الافتتاحية وأكثر - اللعبة النهائية.أخرى
بالإضافة إلى هذه العوامل الأساسية ، يمكن أن تضيف المحركات بعض العوامل الأخرى إلى التقييم - على سبيل المثال ، سلامة الملك ، القطع المقفلة ، جزر البيدق ، التحكم في المركز ، إلخ.تصنيف دقيق أو بحث سريع؟
نزاع تقليدي: وهو أكثر كفاءة ، أو يقيِّم الموقع بدقة أو يحقق عمق بحث أكبر. أظهرت التجربة أن وظائف التقييم "الثقيلة" بشكل مفرط غير فعالة. من ناحية أخرى ، يؤدي التقييم الأكثر تفصيلاً ، مع مراعاة المزيد من العوامل ، إلى لعبة أكثر "جمالًا" و "عدوانية".كتب لاول مرة وجداول نهاية اللعبة
كتب لاول مرة
في فجر شطرنج الكمبيوتر ، لعبت البرامج ظهورها لأول مرة بشكل ضعيف للغاية. غالبًا ما يتطلب الظهور الأول قرارات استراتيجية تؤثر على اللعبة بأكملها. من ناحية أخرى ، تم تطوير نظرية الافتتاح بشكل جيد في الناس ، وتم تحليل الافتتاح بشكل متكرر ولعب من الذاكرة. لذلك تم إنشاء "ذاكرة" مماثلة لأجهزة الكمبيوتر. بدءًا من الموضع الأولي ، تم بناء شجرة الحركات وتقييم كل حركة. أثناء اللعبة ، اختار المحرك ببساطة إحدى الحركات "الجيدة" مع احتمال معين.منذ ذلك الحين ، نمت الكتب الأولى ، وتم تحليل العديد من الإصدارات الأولى باستخدام أجهزة الكمبيوتر حتى نهاية اللعبة. ليست هناك حاجة لهم ، فقد تعلمت المحركات القوية أن تلعب لاول مرة ، لكنهم يغادرون الخطوط الرئيسية بسرعة كبيرة.جداول نهاية اللعبة
العودة إلى المقدمة. تذكر فكرة تخزين العديد من المواقف في الذاكرة واختيار المكان المناسب. ها هي ذا. بالنسبة لعدد صغير (يصل إلى 7) من الأرقام ، يتم حساب جميع المراكز الحالية. بمعنى ، في هذه المواقف ، يبدأ الكمبيوتر في اللعب بشكل مثالي ، حيث يفوز بأقل عدد من الحركات. ناقص - حجم ووقت التوليد. ساعد إنشاء هذه الجداول في دراسة الألعاب النهائية.توليد الجدول
نقوم بإنشاء جميع المواضع الممكنة (مع مراعاة التناظر) مع مجموعة معينة من الأشكال. من بينها نجد وتعيين جميع المواقف حيث يقف حصيرة. من خلال التمرير التالي ، نشير إلى جميع المواقف التي يمكنك من خلالها الدخول إلى المواضع باستخدام حصيرة - في هذه المواضع يتم وضع الحصير في دوران واحد. وهكذا نجد جميع المواقف مع رفيق 2،3،4 و 549 حركة. في جميع المواقف غير المميزة - تعادل.طاولات ناليموف
تم نشر أول جداول نهاية اللعبة في عام 1998. لكل موقف ، يتم تخزين نتيجة اللعبة وعدد التحركات إلى حصيرة مع لعبة مثالية. حجم النهايات الستة الشكل 1.2 تيرابايت.طاولات لومونوسوف
في عام 2012 ، تم حساب جميع النهايات المكونة من سبعة أرقام (باستثناء 6 مقابل 1) على الكمبيوتر العملاق Lomonosov في جامعة موسكو الحكومية . هذه القواعد متاحة فقط للمال وهذه هي الجداول النهائية الكاملة الحالية المكونة من سبعة أرقام فقط.التعايش
المعيار الواقعي. هذه القواعد هي أكثر إحكاما من قواعد ناليموف. وهي تتكون من جزأين - WDL (Win Draw Lose) و DTZ (المسافة إلى التصفير). قواعد بيانات المكتبة الرقمية العالمية مخصصة للاستخدام أثناء البحث. بمجرد العثور على عقدة الشجرة في الجدول ، لدينا النتيجة الدقيقة للعبة في هذا الموضع. DTZ مخصصة للاستخدام في الجذر - فهي تخزن عدد التحركات إلى الصفر في عداد حركات التحريك (تحريك البيدق أو التقاطه). وبالتالي ، فإن قواعد المكتبة الرقمية العالمية كافية للتحليل ، ويمكن أن تكون قواعد DTZ مفيدة في تحليل الألعاب النهائية. Syzygy أصغر بكثير - 68 جيجا بايت لـ WDL سداسي الأشكال و 83 جيجا بايت لـ DTZ. لا توجد قواعد من سبعة أرقام ، نظرًا لأن جيلها يتطلب حوالي تيرابايت من ذاكرة الوصول العشوائي.استخدم
تستخدم طاولات نهاية اللعبة بشكل أساسي للتحليل ، وزيادة قوة محركات الألعاب صغيرة - 20-30 نقطة ELO . ومع ذلك ، نظرًا لأن عمق البحث في المحركات الحديثة يمكن أن يكون كبيرًا جدًا ، فلا تزال الاستعلامات حول قواعد نهاية اللعبة من شجرة البحث تحدث في البداية.أخرى مثيرة للاهتمام
تلعب الزرافات أو الشبكات العصبية لعبة الشطرنج
ربما سمع بعضكم عن محرك الشطرنج على الشبكات العصبية الذي وصل إلى مستوى المراسلة الفورية (وهو ، كما فهمنا في المقدمة ، ليس رائعًا بالنسبة للمحرك). تمت كتابته ونشره على Bitbucket بواسطة ماثيو لاي ، الذي توقف عن العمل للأسف لأنه بدأ العمل على Google DeepMind .معلمات التوليف
إن إضافة ميزة جديدة إلى المحرك ليست صعبة ، ولكن كيف يمكنني التحقق من أنها أعطت التضخيم؟ الخيار الأبسط هو لعب عدة ألعاب بين الإصدارات القديمة والجديدة ومعرفة من يفوز. ولكن إذا كان التحسين صغيرًا ، وعادة ما يحدث بعد إضافة جميع الميزات الرئيسية ، فيجب أن يكون هناك عدة آلاف من الألعاب ، وإلا فلن تكون هناك موثوقية.ستوكفيش
هناك الكثير من الأشخاص الذين يعملون على هذا المحرك ، ويجب التحقق من كل أفكارهم. مع القوة الحالية للمحرك ، يعطي كل تحسن زيادة بضع نقاط تصنيف ، ولكن في النهاية ، يتم الحصول على زيادة ثابتة لعدة عشرات من النقاط سنويًا.حلها نموذجي للمصدر المفتوح - المتطوعون يوفرون قوتهم لقيادة مئات الآلاف من الألعاب عليهم.كلوب
برنامج يقوم بتحسين المعلمات من خلال الانحدار الخطي باستخدام نتائج ألعاب المحرك مع معلمات مختلفة. من السلبيات - حجم مهمة محدود للغاية: لتحسين مائة معلمة (رقم مناسب تمامًا للمحرك) ، هذا غير ممكن ، على الأقل لفترة كافية.ضبط تيكسل
يحل مشكلة الطريقة السابقة. نأخذ عددًا كبيرًا من المناصب (قدم المؤلف 9 ملايين وظيفة من 64000 مباراة ، أخذت 8 ملايين من حوالي 200.000) ، لكل منها نحفظ نتيجة المباراة (فاز الأبيض 1 ، تعادل 0.5 ، هزم 0). الآن نقوم بتصغير الخطأ ، وهو مجموع مربعات الفرق في النتيجة والسيني للتقدير. الطريقة فعالة وشائعة ، لكنها لا تعمل على جميع المحركات.ضبط ستوكفيش
تقنية أخرى من القائد. نأخذ معلمة تساوي x ، ونقارن (في عدة عشرات الآلاف من اللوتات) المحرك بمعلمة تساوي x-sigma و x + sigma. إذا فاز المحرك بمعلمة كبيرة ، فقم بتحريكه لأعلى قليلاً ، وإلا - لأسفل قليلاً ، وكرر ذلك.مسابقات المحرك
من بين جميع اختبارات المنافسة التي أجريت ، أود أن أميز بشكل منفصل TCEC . إنه يختلف عن جميع الأجهزة الأخرى في أجهزته القوية ، واختياره بعناية للفتحات والتحكم الطويل. في المباراة النهائية الأخيرة ، تم لعب 100 مباراة على 2 x Intel Xeon E5-2690v3 مع 256 غيغابايت من ذاكرة الوصول العشوائي مع تحكم 180 '+ 30 ". في ظل هذه الظروف ، كان عدد السحوبات ضخمًا ، وكانت 11 مباراة فقط فعالة.الخلاصة
لذا ، باختصار في هذه المقالة الطويلة تحدثت تقريبًا عن ترتيب محركات الشطرنج. لم يتم الكشف عن تفاصيل كثيرة ، لم أكن أعلم شيئًا أو نسيت أن أقول. إذا كان لديك أي أسئلة ، اكتبها في التعليقات. بالإضافة إلى ذلك ، سأنصحك بمواردين ربما لاحظتهما إذا فتحت بعناية جميع الروابط المنتشرة في جميع أنحاء المقالة:Source: https://habr.com/ru/post/ar390821/
All Articles