كيف تلعب الحواسيب الشطرنج؟!
الرياضيات >>>> الرياضيات
وكل لعبة يمر بها هذا اللاعب هي تجربة يختزنها الدماغ البشري؛ فيسجّل حالات الرقعة المختلفة، ويحلل هذه التجارب ليكتشف خططًا وخدعًا جديدة، وعند تطور مستوى المهارة غالبًا ما يتجه اللاعب إلى قراءة كتب الشطرنج؛ ليكتشف أنماطَ لعبٍ جديدةً استُخدِمَت من أفضل اللاعبين تاريخيًّا، ليطور إستراتيجياته وتكتيكاته مع كل لعبة يمر بها.
إذًا بالنسبة إلى لاعب الشطرنج البشري؛ فلعبة الشطرنج هي نشاط ذهني مجرد عالي المستوى (استخدام الذاكرة البصرية لمطابقة أنماط اللعب وتذكر مواضع القطع على الرقعة، ومراعاة قواعد وتعليمات اللعبة، والتفكير الواعي، وحتى علم النفس).
ولكنَّ الحواسيب لا تلعب الشطرنج هكذا!
إذا كان الشطرنجُ نشاطًا فكريًّا عاليًا يختص به البشر، ويتطلب قدرًا من الذكاء والتفكير، فكيف يمكن للحاسوب أن يلعب الشطرنج؟
سنلقي الضوء على هذا الموضوع، وسنرى أن الحاسوب لا "يلعب" الشطرنج كما يفعل البشر؛ فالحاسوب الذي يلعب الشطرنج لا "يفكر" كالإنسان، بل يجري حساباتٍ كثيرةً باتباع خوارزميات ومعادلات رياضية محددة للحصول على أفضل حركة ممكنة، ومع التقدم الذي تشهده الحواسيب في السرعة والأداء وعمل العلماء على تطوير وتحسين الخوارزميات باستمرار؛ تزداد جودة هذه الحسابات، وقد أضحت الحواسيب أفضل لاعبي شطرنج على وجه الأرض على الرغم من لعبها بصورة "عمياء".
ويمكن وصف برامج الشطرنج في الحواسيب هذه الأيام على الأقل بأنَّها شديدةُ التعقيد، فإن جميعها يتضمن حسابات عمياء بسيطة في الصميم. ولنقل مثلًا؛ إنَّك جهزت رقعة شطرنج لبداية لعبة جديدة؛ فكل لاعب لديه 16 قطعةً، ولنقل إنَّ اللاعب الأبيض يبدأ اللعب -وهذا ما يحدث عادةً- فسوف يكون للاعب الأبيض حينها 20 حركةً ممكنةً:
* يمكن للاعب الأبيض تحريكُ أيِّ بيدق إلى الأمام خطوةً واحدةً أو خطوتين. *(16 حركةً ممكنةً)*
* يمكن للاعب الأبيض تحريكُ أيٍّ من الأحصنة بطريقتين مختلفتين. *(4 حركات محتملة)*
يلعب اللاعب الأبيض إحدى هذه الحركات العشرين.
بالنسبة إلى اللاعب الأسود يوجد مجموعة الخيارات نفسها: عشرون حركةً ممكنةً، ويؤدّي اللاعب الأسود حركته.
والآن يؤدّي اللاعب الأبيض حركته مرةً أخرى، وتعتمد الحركة الآتية على اختيار اللاعب الأبيض للحركة، لكنْ تقريبًا يوجد 20 حركةً مُمكنةً للاعب الأبيض، وبعدها 20 حركةً تقريبًا للاعب الأسود؛ لكن مع مراعاة حالة القطع ومواقعها على الرقعة بالنسبة إلى كلا اللاعبين -القطع التي أُعيقَت حركتها بقطع الخصم أو القطع التي أُسِرت، على سبيل المثال- وهكذا!
هكذا ينظر الحاسوب إلى الشطرنج؛ فهو عالمُ "جميع الحركات الممكنة"، والتي تؤدي إلى الربح طبعًا، ويقوم بعمل "شجرة" ضخمة لجميع هذه الحركات على الشكل الآتي تقريبًا:
في بداية اللعبة؛ 20 حركةً مُمكنةً للأبيض، وتليها 20*20 حركة ممكنة للأسود؛ أي 400 حركةٍ ممكنةٍ للأسود، مع الأخذ بالحسبان حالة الرقعة الجديدة التي تغيرت بسبب حركة الأبيض سابقًا؛ والأمر نفسه بالنسبة إلى حركة الأسود المقبلة، تقريبًا 400*20؛ أي 8000 حركة ممكنة للأبيض، ثم 8000*20؛ أي 160 ألف حركة ممكنة للأسود، وهكذا.
والآن، إذا أردنا حساب شجرة جميع حركات الشطرنج الممكنة، يكون عدد جميع الرقع الممكنة نحو:
1،000،000،000،000،000،000،000،000
،000،000،000،000،000،000،000،000
،000،000،000،000،000،000،000،000
،000،000،000،000،000،000،000،000،
000،000،000،000،000،000،000،000
أي 10^120 (10 مرفوعة للقوة 120). وهو رقم عملاق جدًّا.
فعلى سبيل المثال؛ حسب نظرية الانفجار الكبير لقد تكوَّن الكون قبل 10^26 (عشرة مرفوعة للقوة 26) نانوثانية، إذ يُعتَقَد بوجود 10^75 ذرة فقط في كامل الكون؛ ولمّا كانت مجرة درب التبانة تحتوي البلايين من الشموس؛ وكانت هناك بلايين المجرات، فإنّنا نستطيع الإقرار بوجود عدد كبير جدًّا من الذرات :)؛ وإنَّ عدد تلك الذرات يُعدُّ قزمًا أمام عدد جميع الحركات الممكنة في لعبة الشطرنج.
نعم، الشطرنج لعبة شديدة التعقيد!
إذ لا يوجد حاسوب يمكنه إنجاز حساب شجرة اللعب كلها؛ وإنما يولّد برنامج الشطرنج شجرة حالات للرقعة لـ 5 أو 10 أو ربما 20 حركةً مستقبليةً فقط.
ولمّا كان لدينا 20 حركةً مُمكنةً من أجل أيَّة حالة رقعة، فإنَّ شجرة حالات الرقعة من المستوى الخامس تحتوي 3 200 000 حالة، في حين شجرة حالات بعمق 10 تحوي على 10 تريليونات حالة تقريبًا.
ويتحدد عمق الشجرة التي يمكن للحاسب حسابها بسرعته؛ ويمكن لأسرع حواسيب الشطرنج في العالم توليد ملايين الحالات في الثانية الواحدة وتقييمها.
وبعد توليد الشجرة يقيّم الحاسب الحالات، ويحدث ذلك بالنظر إلى القطع على الرقعة والتقرير فيما إذا كانت إحدى الحركات "جيدة" أم "سيئة" وتُقدر باستخدام ما يدعى دالة التقييم Evaluation Function. وتَعُدُّ أبسطُ دوال التقييم قطعَ كل لاعب، فإذا كان الحاسب يلعب بالقطع البيضاء وله 11 قطعةً على الرقعة ولدى اللاعب الأسود 9 قطع، تكون صيغة التقييم على الشكل الآتي: 11-9=2.
من الواضح أنَّ هذه الصيغة بسيطةٌ جدًّا بالنسبة إلى لعبة الشطرنج؛ فبعض القطع لها أهميةٌ أكثر من غيرها. وقد يتضمّن بعض التحسين على الصيغة إدخالَ وزن (قيمة) لكل نوع من القطع؛ وقد يطوّر المبرمجُ الدالة أكثر فيأخذ بالحسبان مواقع القطع على الرقعة: التحكم بالمركز، واحتمالية كش الملك، ونقاط ضعف وزير الخصم، وغيرها كثيرٌ من العوامل.
ومهما تعقدت دالة التقييم؛ فإنها تُخفَّض إلى رقم واحد فقط يمثل "أفضلية" تلك الرقعة للعب.
مخطط شجرة بثلاثة مستويات:
يظهر المخطط الآتي شجرةً من ثلاثة مستويات تستشرف ثلاث حركات إلى الأمام؛ وقد قُيَّمت مواضع الرقعة النهائية:
يلعب الحاسب بالقطع البيضاء، ثم يؤدّي اللاعب الأسود حركته ويترك موضع الرقعة في أعلى الشجرة.
وفي هذه الشجرة؛ يمكن للأبيض تأدية ثلاث حركات مختلفة، من كل حركة من هذه الحركات يمكن للأسود تأدية ثلاث حركات مختلف أيضًا.
ومن كل من هذه المواضع التسعة يمكن للأبيض تأدية حركتَين مختلفتَين. (فعليًّا، يكون العدد الكلي للحركات من أي موضع تقريبًا 20، لكن من الصعب رسم ذلك).
وينظر الحاسب إلى هذه الشجرة ويعمل من الأسفل باتجاه الأعلى؛ وذلك حتى يقرر ما الحركة التي سيتخذها، وتعمل حساباته على إيجاد أفضل حالة للرقعة من بين جميع الحالات الممكنة التي سيؤدّيها الأسود (فهو يأخذ الأعظمي بينها):
وبالارتفاع مستوى للأعلى؛ يفترض بأنَّ الأسود سيؤدّي حركةً لجعل الرقعة أسوأ ما يمكن للأبيض (يأخذ الأصغري بين الحالات الممكنة):
وفي النهاية؛ يأخذُ الأعظمي بين أول ثلاثة أرقام: 7. وهذه هي الحركة التي سيقوم بها الأبيض (الحاسوب هنا). وعند لعب الأسود مرةً أخرى؛ سيعيد الحاسوب جميع الحسابات مرةً أخرى بالطريقة نفسها؛ لكنْ مع مراعاة حالة الرقعة الجديدة.
تدعى هذه الطريقة بخوارزمية minimax؛ وذلك لأنها تبدّل بين إيجاد القيم العظمى والصغرى مع تقدم العمل بالشجرة (نحو الأعلى). إذ يمكن تسريع هذه الخوارزمية للضعف بتطبيق تقنية تحسين عليها تدعى alpha beta pruning، ويمكن التقليل من استهلاك الذاكرة أيضًا.
كما ترى؛ العملية آلية بحتة ولا تطلب أيَّ تفكيرٍ، فهي ببساطة تحاول حساب جميع الاحتمالات الممكنة واختيار الأفضل من بينها عن طريق دالة تقييم على شجرة بعمق محدد..
الأمر المميز هنا أنَّ هذه الطريقة البسيطة تعمل على نحوٍ فعَّال جدًّا؛ فعلى حاسب بسرعة جيدة يمكن للخوارزمية استشراف حركات مستقبلية بما يكفي للعب لعبة جيدة جدًّا. وإذا أضفنا تقنياتٍ تعلم إلى تابع التقييم (عن طريق الذكاء الصنعي) يمكن تعديل نتيجة دالة التقييم بالاعتماد على الخبرات السابقة الناتجة عن تحليل الألعاب السابقة، وتتحسن الجودة مع الزمن.
لا شيء كالإنسان! لكن عندما نتوصل إلى معرفة آلية التفكير لدينا. وإن تمكنا من إنشاء حاسب يستخدم تقنيات التفكير البشرية نفسها للعب الشطرنج، حينها قد نكون حصلنا على شيء مميز...
المصدر :
هنا