5.4.3. גיזום - ((α-β pruning
זוהי שיטה ל"גיזום" ענפים בעץ המשחק, המקיימת שעץ רגיל ועץ גזום יחזירו את אותו הערך. האלגוריתם מוותר על פיתוח ענפים שאינם יכולים לשנות את ערך המינימקס של השורש. עקרון פעולה: אם תוך כדי החיפוש בענף מתברר שהיריב יכול לתת תשובה גרועה יותר מהאלטרנטיבה שיש ביד עד כה, אל תטרח לבדוק האם יש לו תשובה עוד יותר גרועה. למה בעצם שנרצה לגזום את העץ? התשובה היא שעל ידי התעלמות מחלקי העץ הלא רלוונטיים (גיזומם), אנחנו מסוגלים באותו זמן להכנס עמוק יותר אל חלקי העץ שכן מעניינים אותנו, ולהסתכל יותר צעדים קדימה במשחק. חסמי החיתוך חסם α: חסם החיתוך לצומת j מסוג Min הוא חסם תחתון הנקרא α. זהו הערך הגבוה ביותר שקים לעת עתה לכל אבות ה-Max של j. ניתן להפסיק את פיתוח j ברגע שהערך שלו שווה ל- או גדול מ-β. חסם β: חסם החיתוך לצומתj מסוג Max הוא חסם עליון הנקרא β. זהו הערך הנמוך ביותר שקים לעת עתה לכל אבות ה-Min של j. ניתן להפסיק את פיתוחj ברגע שהערך שלו שווה ל- או גדול מ-β. Minimax-ab(board, depth, type, alpha, beta) הקריאה לפונקציה Minimax תעשה על ידי: דוגמא לגיזום: הערך של התנועה שאנו מבצעים הוא 8 (עד לנקודה שבה מתבצע החיתוך). אם נלך בשורש ימינה, לפי מה שאנחנו יודעים היריב מסוגל להגיע לערך 1. היריב לא יעשה פעולה שתגרום לערך זה לעלות, ולכן הערך של תת העץ הימני יהיה קטן תמיד מ-8. לפיכך ניתן להתעלם מהצמתים הנותרים. |
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |
אבל הוא עדיין לא נפתח...