כשאנחנו משחקים שחמט, דמקה או אפילו איקס‑עיגול, אנחנו לא מסתכלים רק על המהלך הבא. אנחנו מנסים לדמיין מה יקרה אחריו: איך היריב יגיב, ואיך אנחנו נגיב בחזרה. מסתבר שגם מחשבים צריכים ללמוד לעשות בדיוק את זה.
שני הדברים שכל תוכנת משחק חייבת לדעת:
1. מה מותר לעשות?
כדי לשחק משחק, מחשב חייב לדעת את החוקים: איך כל כלי זז, מה נחשב למהלך חוקי, ומה אסור לעשות.
זה החלק הפשוט יחסית.
2. איך יודעים אם מצב מסוים הוא טוב או רע?
כאן מגיע האתגר האמיתי. מחשב צריך להחליט אם מצב הלוח הוא:
-
טוב עבורו
-
רע עבורו
-
או איפשהו באמצע
לשם כך משתמשים במה שנקרא פונקציית הערכה - שיטה שנותנת ציון למצב הלוח.
ברגע שהתוכנה יודעת לתת ציון לכל מצב, היא יכולה לבחור את המהלך שמוביל למצב הכי טוב עבורה.
לחשוב קדימה בדיוק כמו בני אדם
תוכנות משחק לא מסתפקות בצעד אחד קדימה. הן בונות עץ אפשרויות: מה יקרה אם אעשה את המהלך הזה? ומה היריב יעשה בתגובה? ומה אני אעשה אחר כך?
כמובן שהתוכנה לא יודעת מה היריב באמת יעשה, ולכן היא מניחה שהוא יבחר את המהלך שהכי משתלם לו. כך היא יכולה להיערך לכל תרחיש.
משחקים פשוטים מול משחקים מורכבים
במשחקים פשוטים כמו איקס‑עיגול, יש מעט מאוד אפשרויות. מחשב יכול לבחון כל משחק עד סופו ולדעת בוודאות אם הוא יכול לנצח או לפחות להגיע לתיקו.
בשחמט, לעומת זאת, מספר האפשרויות עצום. גם מחשב-על שירוץ טריליוני שנים לא יספיק לבדוק את כולן. ועדיין, מחשבים מודרניים מסוגלים לחשב עשרות מהלכים קדימה, הרבה יותר מכל שחקן אנושי.
זה מאפשר להם למצוא מהלכים מבריקים שאפילו שחקנים מקצועיים לא היו מעלים על דעתם.
מחשבים מול בני אדם: שתי דרכי חשיבה שונות
בני אדם מסתכלים כמה צעדים קדימה, אבל הם מסתמכים גם על זיהוי תבניות: מצבים על הלוח שמזכירים להם משחקים קודמים. יש מצבים ש"מרגישים" טוב, ויש כאלה שמרגישים מסוכנים. המחשב, לעומת זאת, לא "מרגיש" כלום. הוא פשוט מְחַשֵּׁב הרבה יותר צעדים קדימה, במהירות עצומה. לכן לפעמים הוא בוחר מהלכים שנראים לשחקן אנושי מוזרים או מסוכנים, אבל מתגלים כגאוניים כמה מהלכים מאוחר יותר.
לסיכום
כדי ללמד מחשב לשחק משחקים, צריך ללמד אותו:
1. מה מותר ומה אסור
2. איך להעריך מצבים
3. איך לחשוב קדימה ולבחור את המהלך שמוביל למצב הטוב ביותר
השילוב הזה מאפשר למחשבים לשחק ברמה גבוהה במיוחד, גבוהה יותר משל כל שחקן אנושי.
