איך מתכנתים שחקן שחמט? ... מבוא בינה מלאכותית ( ,)236501 מדעי המחשב עומר גייגר [email protected]
Download ReportTranscript איך מתכנתים שחקן שחמט? ... מבוא בינה מלאכותית ( ,)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הנפוץ בתכנות שחקני בינה מלאכותית: מתבסס על פונקציה היוריסטית המעריכה מצבים במשחק. מסתכל קדימה וצופה אפשרויות התפתחות למשחק. מניח שהיריב ישחק בצורה ה"טובה" ביותר עבורו. בוחר במהלך שמבטיח ערך היוריסטי גבוה ביותר ללא תלותבמהלכי היריב. נשים לב שהאלגוריתם הוא גנרי ומתאים למשחקים רבים. הכיצד?... תודה רבה!