איך מתכנתים שחקן שחמט? ... מבוא בינה מלאכותית ( ,)236501 מדעי המחשב עומר גייגר [email protected]
Download
Report
Transcript איך מתכנתים שחקן שחמט? ... מבוא בינה מלאכותית ( ,)236501 מדעי המחשב עומר גייגר [email protected]
איך מתכנתים שחקן שחמט?...
מבוא בינה מלאכותית ( ,)236501מדעי המחשב
עומר גייגר [email protected]
מוטיבציה
נציג את האלגוריתם הנפוץ למשחקים עם שני
שחקנים .MinMax -
נתעניין במשחקי "סכום-אפס" בהם יתרונו של שחקן
הוא חסרונו של יריבו.
מוטיבציה
אלגוריתם MinMaxמהווה תבנית לשחקני בינה
מלאכותית מוצלחים רבים.
דוגמה מפורסמת Deep Blueמנצח את אלוף העולם
בשחמט ()1997
אז איך MinMaxעובד?
שלב ראשון :הגדרת פונקציה היוריסטית המקבלת לוח ומחזירה
מספר המייצג את "טיב" הלוח לשחקן.
דוגמא פשוטה בשחמט:
) f ( board ) ( w hite pieces ) (black pieces
לבן9 = 5+3+1 :
שחור2 = 1+1:
ציון הלוח7 = 9-2 :
נק' 1
5נק'
3נק'
3נק'
9נק'
זו כמובן דוגמה טריוויאלית וניתן להרחיבה .כיצד?
אז איך MinMaxעובד?
האלגוריתם מסתכל קדימה ובוחר מהלך שצפוי
להביא למצב ה"טוב" ביותר עבור השחקן.
הנחות:
.1הפונקציה שהגדרנו מעריכה לוחות באופן משביע
רצון.
.2השחקן היריב ינסה לשחק באופן הטוב ביותר
עבורו ,כלומר הגרוע ביותר עבורנו.
הדגמת האלגוריתם
קלט :מצב הלוח
פלט :מהלך "טוב"
לשחקן שלנו (הלבן)
מקדם הסיעוף:
...
מספר הצעדים האפשריים
ממצב ממוצע.
(בשחמט ~)35
מהלכים אפשריים
לשחור (שחקן )MIN
MAX
MIN
מהלכים אפשריים
ללבן (שחקן )MAX
2
3
11
7
5
9
2
7
...
5
סיכום
אלג' MinMaxהנפוץ בתכנות שחקני בינה מלאכותית:
מתבסס על פונקציה היוריסטית המעריכה מצבים במשחק. מסתכל קדימה וצופה אפשרויות התפתחות למשחק. מניח שהיריב ישחק בצורה ה"טובה" ביותר עבורו. בוחר במהלך שמבטיח ערך היוריסטי גבוה ביותר ללא תלותבמהלכי היריב.
נשים לב שהאלגוריתם הוא גנרי ומתאים למשחקים רבים.
הכיצד?...
תודה רבה!