Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

15 تغريدة 10 قراءة Apr 14, 2022
في السلسلة السابقة عرفنا ولو بشكل بسيط كيفية بناء لعبة شطرنج. لكن للاعبين اثنين يحركون بانفسهم القطع. لكن ماذا لو كان احد اللاعبين كمبيوتر.
(سلسلة عن تبسيط فكرة عمل الAI في لعبة الشطرنج)
هناك انواع كثيرة من الAI يمكن استخدامها في لعبة الشطرنج. هناك طريقة كلاسيكية وهي نفس طريقة IBM في برنامجها Deep Blue الذي هزم كاسباروف و هناك طرق اخرى يدخل فيها الMachine Learning و الDeep Learning
و حتى الReinforcement او الDeep Reinforcement.
هنا سأشرح فقط الطريقة الكلاسيكية او طريقة IBM Deep Blue. في البداية أي شي يبدوا لنا معقداً فهذا مؤشر لجلهنا بشيء ما بسيط. البساطة اساس كل شيء معقد . حتى الطبيعة و الكون ككل. دائماً هناك شيء او معلومة بسيطة تختبيء. تماماً كالساحر في عروضه. ما إن عرفنا السر , فقدنا الدهشة.
ارجع و اعود إلى موضوع ضرورة فهم البزنس , فهم الشطرنج جيداً في ارض الواقع. مثل أن لكل قطعة قيمة معينة . الجندي 1 القلعة 7 الفرس و الفيل 7 الملكة او الوزير 9 و الملك قيمته لا نهائية فمعه تنتهي اللعبة.
تلك اول معلومة. لا تلتزم بتلك القيم حيث ان اختلاف جودة محركات الشطرنج يختلف بطريقتهم في وضع القيم.
المعلومة الثانية المهمة هي ان لكل نوع قطعة اماكن مفضّلة. القلعة تحب الاطراف. السيطرة على منطقة وسط اللوحة مهمة خصوصا للفرس لذلك تجد اول التحركات عادة هي بالفرس للسيطرة على منطقة الوسط او المركز. لانه يعطيها احتمالات تحرك و مناورة اكبر.
من المعلومة الثانية يمكن عمل لوحة board افتراضية لكل نوع قطعه. و نعطي لكل مربع بها قيمة معينة بالموجب او السالب. فمثلاً للفرس تكون قيم المربعات في الوسط اكبر منها في الجوانب و هكذا. وصلت الفكرة؟
الان لنتخيل اننا الذكاء الاصطناعي. ماذا سأفعل؟
اولاً سأقوم بعمل Loop على كل قطعي لأعرف أين يمكنها ان تتحرك ( مربعات ). وفي كل حركة سأقارن قيمة كل التحركات حسب جدول المفضّلة لكل قطعة. وسأختار القيمة الاكبر
ثانياً : طبعاً اذا تحركت القطعة فقد تكون عرضة للهجوم من الطرف الثاني. و عندها علي ان اقيّم خسائري مع مكاسبي السابقة .. فوجودي في مربع معين يعطيني 5 نقاط لكن قيمة قطعتي 7 او كان ذلك التحرك يشكل تهديد على الملك. اذا اتراجع.
ثالثاً: في بعض الاحيان هناك ضرورة لتحريك قطعة معينة لحمايتها. وليس بالضرورة ان تكون القطعة للهجوم.
فالوزير او الملكة قطعة مهمة وعلي ان احلل تحركات الخصم ايضاً. فاذا صادفت انه يمكنه اخذ احد القطع المهمة
فايضاً علي حمايتها.
رابعاً: ماسبق هو اساس الفكرة. لكن هذه الطريقة تكتيكية فقط وليست استراتيجية. بمعنى ليس فيها تحليل "ماذا لو؟"
بحيث تكون تحركاتي استراتيجية و يكون هدفي على بعد حركتين او اكثر حتى اصل لمرادي. هنا علي ان افكر بالاحتمالات و علي اخذ تحركات الخصم المحتملة في الحسبان.
في هذه الحالة علي ان اخلق لوحة افتراضية في الذاكرة لشكل اللوحة بعد تحركي الاول. و اقوم بتكرار العملية من جديد وكأنني قمت بالتحرك . التفرعات هنا تقريباً لا نهائية. ولذا اغلب برامج الشطرنج تحدد مايسمى بالDepth اي عمق الغوص في الاحتمالات. وهذا يستهلك قدر كبير من المعالجة في الCPU.
برمجياً يتم من خلال استخدام خوارزمية MinMax بحيث تكون recursive حسب العمق المحدد. او حتى نصل لطريق مسدود. او ان يتم اخذ الملك. الأفضل من MinMax هي خوارزمية الAlpa beta pruning وهي مااستخدمها Deep blue.
فكرة الخوازمية هي ماذكرته بالاعلى , أي احدد ماذا سأكسب و ماذا سأخسر او ماهي القيمة التي تمكنني من رفع مكاسبي لأعلى درجة مع تقليل خسائري لاقل درجة.
هذه ببساطة فكرة الAI في الشطرنج. وكما ذكرت .. هذه هي الطريقة الكلاسيكية التي تعمل بها اغلب العاب الشطرنج و غيرها من الالعاب الاستراتيجية. لكن التحدي الفارق يكون في الPerformance و في كيفية احتساب الاماكن المفضلة. حيث انه يمكن ان تتغير حسب مراحل اللعبة!.
- تمت.

جاري تحميل الاقتراحات...