تخطّي إلى المحتوى
Kudos AI
Read in English
البحث والألعاب

البحث التنافسي والمينيماكس

كيف يلعب برنامج ضد خصم يحاول هزيمته: قيمة المينيماكس، ولماذا يبلغ تشذيب ألفا-بيتا الإجابة نفسها بفحص عقد أقل، وشجرة لعبة مشذَّبة نقلةً نقلة.

قراءة 6 دقيقةKudos AI
الشكل 5.2 محلولاً مرتين: القيم مرجَّعةً في الشجرة، ثم الشجرة نفسها تحت ألفا-بيتا، فتُقطع ورقتان دون تحريك الإجابة.

يختلف البحث عن مسار عن لعب لعبة في نقطة حاسمة: ففي اللعبة يتحرّك شخص آخر بعدك، وهو يحاول أن يجعلك تخسر. فلا تستطيع تخطيط سلسلة أفعال ثابتة، لأن ردود خصمك ليست لك لتختارها. ويعالج البحث التنافسي ذلك بافتراض أن الخصم يلعب أفضل ما يمكن، وبحساب أفضل ردّ على ذلك.

أ. شجرة اللعبة

لاعبان، هما اصطلاحاً MAX (الذي يتحرّك أولاً ويعظّم) وMIN (الذي يصغّر الكمية نفسها). ولـشجرة اللعبة الوضعُ الابتدائي عند الجذر، وفرعٌ لكل نقلة قانونية، وطبقات متناوبة من عقد MAX وMIN، وأوضاع نهائية عند الأوراق تحمل منفعة - أي عائد MAX.

ولأن منفعة MIN هي سالب منفعة MAX، فهذه لعبة صفرية المجموع: ما يكسبه أحدهما يخسره الآخر بالضبط. وهذا ما يتيح لعدد واحد لكل ورقة أن يصف النتيجة لكليهما.

ب. قيمة المينيماكس

تُعرَّف قيمة العقدة تعريفاً عَودياً:

\textscMinimax(s)={\textscUtility(s)if s is terminal,max⁡a\textscMinimax(\textscResult(s,a))if s is a MAX node,min⁡a\textscMinimax(\textscResult(s,a))if s is a MIN node.\textsc{Minimax}(s) = \begin{cases} \textsc{Utility}(s) & \text{if } s \text{ is terminal},\\[4pt] \max_{a} \textsc{Minimax}(\textsc{Result}(s, a)) & \text{if } s \text{ is a MAX node},\\[4pt] \min_{a} \textsc{Minimax}(\textsc{Result}(s, a)) & \text{if } s \text{ is a MIN node}. \end{cases}

يختار MAX أكبر قيمة بين الأبناء؛ ويختار MIN أصغرها. وتنتشر القيم من الأوراق صعوداً إلى الجذر، وأفضل نقلة لـMAX عند الجذر هي التي تؤدّي إلى الابن الذي تساوي قيمته قيمة الجذر.

ماذا يشتري الافتراض، وماذا يكلّف. يفترض المينيماكس أن الخصم يلعب لعباً أمثل. وأمام خصم أمثل تكون القيمة بالضبط ما يستطيع MAX ضمانه، فهي ضمانة حقيقية لأسوأ الحالات لا تنبّؤ. أما أمام خصم ضعيف فهي متحفّظة: إذ قد تتخلّى عن فخّ كان الخصم القابل للخطأ ليقع فيه.

ج. حلّ شجرة يدوياً

شجرة من ثلاث طبقات: الجذر MAX، وأبناؤه الثلاثة عقد MIN، لكلٍّ منها ثلاثة أبناء نهائيين.

عقدة MINالقيم النهائية
BB3, 12, 8
CC2, 4, 6
DD14, 5, 2

طبقة MIN. تأخذ كل عقدة MIN أصغر قيم أبنائها:

B=min⁡(3,12,8)=3,C=min⁡(2,4,6)=2,D=min⁡(14,5,2)=2.B = \min(3, 12, 8) = 3, \qquad C = \min(2, 4, 6) = 2, \qquad D = \min(14, 5, 2) = 2 .

الجذر. يأخذ MAX الأكبر:

\textscMinimax(root)=max⁡(3,2,2)=3.\textsc{Minimax}(\text{root}) = \max(3, 2, 2) = 3 .

فينبغي لـMAX أن ينتقل إلى BB، ضامناً 3 على الأقل.

ولاحظ ضآلة أهمية قيم الأوراق الكبيرة. فالـ1212 تحت BB والـ1414 تحت DD لا تُنالان أبداً، لأن MIN لن يسمح بهما - إذ ينتقل MIN إلى 33 و22 على الترتيب. ولا ينجو إلا أصغر قيم كل فرع.

د. تشذيب ألفا-بيتا

يفحص المينيماكس كل ورقة، وهذا ميؤوس منه في الألعاب الحقيقية - إذ تنمو الشجرة نمواً أسّياً مع العمق. ويحسب تشذيب ألفا-بيتا القيمة ذاتها مع تخطّي فروع يمكن البرهان على أنها لا تؤثّر فيها.

وتُحمَل قيمتان أسفل البحث، وقد عرّفهما راسل ونورفيغ هكذا:

  • α\alpha - قيمة أفضل خيار (الأعلى) وُجد حتى الآن عند أي نقطة اختيار على المسار بالنسبة إلى MAX؛
  • β\beta - قيمة أفضل خيار (الأدنى) وُجد حتى الآن على المسار بالنسبة إلى MIN.

ويشذّب البحث الفروع المتبقّية عند عقدة حالما يُعلم أن قيمة العقدة أسوأ من α\alpha الحالية (بالنسبة إلى MAX) أو β\beta الحالية (بالنسبة إلى MIN).

هـ. تشذيب الشجرة، خطوةً خطوة

بتتبّع الشجرة نفسها من اليسار إلى اليمين:

العقدة BB. افحص 33 و1212 و88. لا شيء يمكن تشذيبه - فهذا الفرع الأول ولا تملك MAX α\alpha بعد. وB=3B = 3، فيضبط الجذر α=3\alpha = 3: أي أن MAX يضمن 3 سلفاً.

العقدة CC. افحص الورقة الأولى، 22. وCC عقدة MIN، فقيمتها النهائية على الأكثر 22 - إذ لا يستطيع MIN إلا النزول من هنا.

لكن MAX يملك 3 مضمونة في مكان آخر. ولن يُختار فرعٌ قيمته على الأكثر 2 على فرع قيمته 3، مهما كان محتوى الأوراق المتبقّية. فلا تُفحص الورقتان 44 و66 أبداً. وهذا هو التشذيب.

العقدة DD. افحص 1414: القيمة حتى الآن 1414، وما زالت فوق α=3\alpha = 3، فلا تشذيب. افحص 55: القيمة حتى الآن 55، وما زالت فوق 33. افحص 22: القيمة 22. وD=2D = 2.

الجذر. max⁡(3,2,2)=3\max(3, 2, 2) = 3 - الإجابة نفسها التي يعطيها المينيماكس الكامل.

فحص ألفا-بيتا 7 من الأوراق التسع، مشذّباً ابنَي CC الثاني والثالث.

تفاعلي: الأوراق التي لا يحتاج إلى النظر إليها أبدًا

MAX في الجذر، وMIN تحته، واثنتا عشرة ورقة.

3MAX3B3128≤2C246≤2D1452
مفحوصة
7 / 9
لم تُفحص قطّ
2
قيمة الجذر
3
ترتيب النقلات:

2 من الأوراق الاثنتي عشرة لم تُقوَّم قطّ، والجواب مطابق لجواب مينيماكس. ولاحظ العقدة D: فيها أكبر ورقة في الشجرة كلها، 14، وقيمتها 2، لأن MAX ليس هو من يختار أي ورقة من D تُبلغ، بل MIN. فالفرع يساوي ما يسمح به خصمك، لا ما يحويه. ولاحظ كذلك أن قيمة العقدة المقطوعة تُعرض بوصفها على الأكثر قيمةً لا مساويةً لها: فقد توقف البحث قبل أن يعرف إلى أي حدّ تنزل، وذاك بعينه العمل الذي وُفِّر.

Python

يعمل في متصفحك. تُنزّل عملية التشغيل الأولى بيئة بايثون (~10 ميغابايت)، ثم تُخزّن مؤقتًا.

يطبع تشغيله القيمة 3 بالطريقتين، وexamined: [3, 12, 8, 2, 14, 5, 2] (سبع أوراق)، والورقتين المشذّبتين.

و. لماذا يحسم ترتيب النقلات كل شيء

يتوقّف التشذيب على العثور على النقلات الجيدة مبكراً. فإن فُحصت أفضل نقلة لـMAX أولاً، ارتفعت α\alpha فوراً وشذّبت بقوة. وإن فُحصت أخيراً، فلا شيء نشذّب مقابله حتى النهاية.

ومع ترتيب مثالي، يفحص ألفا-بيتا نحو O(bm/2)O(b^{m/2}) عقدة بدل O(bm)O(b^m) لمعامل تفرّع bb وعمق mm. ويعني ذلك الأُسّ المنصَّف البحث بضعف العمق في الزمن نفسه - وهو الفرق بين برنامج هاوٍ وبرنامج خبير.

ويتطلّب الترتيب المثالي معرفة الإجابة سلفاً، ولذا تقاربه البرامج الحقيقية بقواعد استرشادية: جرّب الأسْر أولاً، جرّب النقلة التي كانت الأفضل عند العمق الأقلّ السابق، وهكذا.

ز. حين تكون الشجرة أكبر من ذلك على أي حال

حتى بعد التنصيف، يهزم الأُسّ ألعاباً كالشطرنج أو غو. فتتوقّف البرامج العملية مبكراً وتطبّق دالة تقييم على الأوضاع غير النهائية، فتقدّر المنفعة بدل حسابها.

ويُدخل هذا مشكلتين جديدتين تستحقّان التسمية. فـأثر الأفق هو النزوع إلى دفع خسارة محتومة إلى ما بعد عمق البحث بقليل، فتبدو متفادَاة وهي مجرّد خارج المرأى. ويجب تطبيق دالة التقييم عند أوضاع هادئة - إذ يعطي التوقّف في وسط تبادل تقديراً خاطئاً بشدّة، فيُمدّ البحث حتى تستقرّ الأمور.

وتاريخياً، تصوّر جون مكارثي بحث ألفا-بيتا عام 1956؛ وأثبت كنوث ومور صحّته وتعقيده الزمني عام 1975.

الخلاصات الأساسية

  • يفترض البحث التنافسي خصماً أمثل، ما يجعل قيمة المينيماكس ضمانةَ أسوأ حالة.
  • MAX يعظّم وMIN يصغّر، وتنتشر القيم من الأوراق إلى الجذر.
  • شجرتنا: عقد MIN 3,2,23, 2, 2؛ وقيمة الجذر 33؛ وMAX يلعب نحو BB.
  • يعيد ألفا-بيتا القيمة ذاتها مع تخطّي فروع غير ذات صلة بالبرهان - 7 أوراق بدل 9 هنا.
  • α\alpha أفضل ضمانة لـMAX حتى الآن، وβ\beta أفضل ضمانة لـMIN؛ ويُقطع الفرع حالما يعجز عن تجاوزهما.
  • ترتيب النقلات يحدّد المكسب؛ والترتيب المثالي ينصّف تقريباً أُسّ العمق الفعّال.

ما التالي

يفترض المينيماكس تعارضاً صارماً. ومعظم المواقف الاستراتيجية الحقيقية ليست صفرية المجموع - إذ قد يكسب اللاعبون جميعاً أو يخسرون جميعاً، ويحتاج «اللعب الأمثل» إلى إعادة تعريف. وذلك التعميم هو نظرية الألعاب وتوازن ناش.

المراجع والقراءات الإضافية

  • Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· مكتبة مراجع Kudos AI

تُذكر الأعمال المحمية بحقوق النشر للمرجعية فقط ولا تُستضاف هنا؛ يرجى الرجوع إلى الناشر للوصول إليها.

قراءات ذات صلة

قراءة 5 دقيقةالبحث والألعاب

التخطيط الكلاسيكي: القوالب والإرخاءات وبيان التخطيط

لماذا يحظى التخطيط بتمثيل خاصّ به بدل أن يكون حاشية على البحث، وكيف يُنتج حذفُ أجزاء من وصف الفعل استدلالًا بلا ثمن، وما الذي يلحظه بيان التخطيط ممّا تفوته الاستدلالات المحسوبة هدفًا هدفًا فواتًا منهجيًا.

الذكاء الاصطناعيالبحث والتخطيط
قراءة 6 دقيقةالبحث والألعاب

البحث الكلاسيكي: من البحث بالعرض إلى A*

تحويل المسألة إلى فضاء حالات وترك خوارزمية تجوبه: ما تكلّفه فعلًا كلٌّ من التمام والأمثلية، ولماذا تهزم الذاكرةُ لا الزمنُ البحثَ بالعرض، والشرطان على الاستدلال اللذان يجعلان A* أمثل بالبرهان.

البحث والتخطيطالذكاء الاصطناعي
قراءة 6 دقيقةالبحث والألعاب

نظرية الألعاب وتوازن ناش

الاستدلال الاستراتيجي حين لا يكون اللاعبون متعارضين تعارضاً صارماً: الاستراتيجيات المهيمنة، ومعضلة السجينين محلولةً من مصفوفة عوائدها، وتوازن ناش، وأمثلية باريتو، ولماذا قد يتعارض التوازن والكفاءة.

نظرية الألعابالذكاء الاصطناعيالرياضيات
← العودة إلى كل المقالات