2016 Shaul Markovitch Shaul Markovitch Shaul Markovitch

Σχετικά έγγραφα
במשחקים בצורה אסטרטגית: השחקנים בוחרים אסטרטגיות במקביל ובצורה בלתי תלויה. מייד לאחר מכן מסתיים המשחק. נרצה לדון במשחקים מסוג אחר: השחקנים משחקים לפי

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

Logic and Set Theory for Comp. Sci.

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

תרגול מס' 6 פתרון מערכת משוואות ליניארית

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

חורף תש''ע פתרון בחינה סופית מועד א'

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

תרגול פעולות מומצאות 3

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

תרגיל 13 משפטי רול ולגראנז הערות

ל הזכויות שמורות לדפנה וסטרייך

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

מתמטיקה בדידה תרגול מס' 5

{ : Halts on every input}

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

. {e M: x e} מתקיים = 1 x X Y

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

שאלה 1 V AB פתרון AB 30 R3 20 R

גבול ורציפות של פונקציה סקלרית שאלות נוספות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

מתמטיקה בדידה תרגול מס' 13

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

gcd 24,15 = 3 3 =

אלגוריתמים בתורת הגרפים חלק ראשון

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

logn) = nlog. log(2n

הגדרה: מצבים k -בני-הפרדה

תרגיל 7 פונקציות טריגונומטריות הערות

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

מבני נתונים עצים שיעור 7

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

תורת הגרפים - סימונים

תורישק :תורישקה תייעבב בוש ןייענ?t- t ל s- s מ לולסמ שי םאה 2

מבחן מועד ב' בהצלחה! אנא קיראו היטב את ההוראות שלהלן: ודאו כי כל עמודי הבחינה נמצאים בידכם.

רשימת משפטים והגדרות

סיכום- בעיות מינימוםמקסימום - שאלון 806

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

x a x n D f (iii) x n a ,Cauchy

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

מבני נתונים ואלגוריתמים תרגול #11

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

אלגברה מודרנית פתרון שיעורי בית 6

פרויקט מסכם לתואר בוגר במדעים )B.Sc( במתמטיקה שימושית

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

מבני נתונים ויעילות אלגוריתמים

אלגוריתמים בתורת הגרפים חלק שני

מודלים חישוביים תרגולמס 5

קיום ויחידות פתרונות למשוואות דיפרנציאליות

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

אלגברה ליניארית 1 א' פתרון 2

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

אינפי - 1 תרגול בינואר 2012

אלגו מתקדם ביוני 2012 מרצה: יאיר בר טל בודק: אורן בקר. איני לוקחת אחריות על מה שכתוב כאן, so tread lightly אין המרצה קשור לסיכום זה בשום דרך.

The No Arbitrage Theorem for Factor Models ג'רמי שיף - המחלקה למתמטיקה, אוניברסיטת בר-אילן

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

אלגברה ליניארית (1) - תרגיל 6

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( )

אופטימיזציה דיסקרטית 67855

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

רשימת בעיות בסיבוכיות

תורת הקבוצות תרגיל בית 2 פתרונות

טענה חשובה : העתקה לינארית הינה חד חד ערכית האפס ב- הוא הוקטור היחיד שמועתק לוקטור אפס של. נקבל מחד חד הערכיות כי בהכרח.

השאלות ידי מצביעים לילדים.

co ארזים 3 במרץ 2016

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

אלגוריתמים בתורת הגרפים חלק רביעי

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

אלגוריתמים 1, סמסטר אביב 2017

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

תכנון דינאמי. , p p p והמטריצה המתקבלת היא בגודל

אלגוריתמים / תרגיל #1

תורת הקבוצות יובל קפלן סיכום הרצאות פרופ ארז לפיד בקורס "תורת הקבוצות" (80200) באוניברסיטה העברית,

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

3-9 - a < x < a, a < x < a

תשובות מלאות לבחינת הבגרות במתמטיקה מועד חורף תשע"א, מיום 31/1/2011 שאלון: מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

גרפים אלגוריתמים בתורת הגרפים הרצאה 1 גיא פלג 15 במרץ 2012 הגדרה: מגן דוגמאות: זוגות לא סדורים כיוון שבקבוצה סדר לא חשוב.

מבני נתונים (234218) 1

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

Transcript:

חיפוש בעצי משחק 1 2 3 מבוא לבינה מלאכותית שאול מרקוביץ : מרצה

מערכות מרובות סוכנים אלגוריתמי החיפוש שלמדנו מניחים שהסוכן הוא היחיד המשנה את העולם ניתן לכן לתכנן סדרת פעולות ולחזות את תוצאתה כאשר קיימים יותר סוכנים בעולם יתכן שגם הם יפעלו לשנותו במקרה כזה נוצרת אי וודאות לגבי התוצאה של סדרת פעולות על העולם 4 משחק - מערכת רבת סוכנים אנו מניחים שבעולם קיימים מלבדנו עוד מספר סופי של סוכנים ושאנחנו יודעים מי אותם סוכנים מניחים שבכל מצב ממרחב המצבים, יכול לפעול רק סוכן אחד, ושיש כלל שמגדיר מיהו אותו סוכן מניחים שלכל סוכן ידש פונקציית עוקב (או קבוצת אופרטורים) ושכל פונקציות העוקב ידועות לנו מניחים שלכל סוכן יש פונקציית תועלת הנותנת ערך לכל מצב סופי (שלא בהכרח ידועה לנו - מלבד הפונקציה שלנו) מניחים שהמטרה של כל סוכן היא להביא את העולם למצב סופי עם תועלת עצמית כמה שיותר גבוהה 5 משחק A 1,...,A n s i 2 S S קבוצת סוכנים קבוצת מצבים מצב התחלתי פונקציה המחזירה לכל מצב את האינדקס של הסוכן שתורו לפעול T urn : S!{1,...,n} פונקציית עוקב המחזירה את כל המצבים הבאים לסוכן i Succ(s, i) S Succ : S {1,...,n}!2 S - פרדיקט הבודק מצבים סופיים G(s) 2{TRUE, FALSE} S G = {s 2 S G(s)} פונקציית ערך המחזירה לכל מצב סופי ולכל סוכן i את ערך המצב עבור הסוכן U : S G {1,...,n}!< 6

דוגמא : שחמט קבוצת הסוכנים 2 - סוכנים - הלבן והשחור קבוצת מצבים - קבוצת המצבים החוקיים בשחמט מצב התחלתי - לוח התחלתי בשחמט פונקציה תור - לכל מצב מחזיקים את האינדקס של השחקן ששיחק אחרון. תור השחקן השני לשחק. פונקציית עוקב המחזירה את כל המצבים הבאים לסוכן - i בהתאם לצבע שתורו לשחק, קבוצת המהלכים החוקיים פרדיקט הבודק מצבים סופיים - מצב מט לאחד הצדדים, או מצב תיקו )יש כמה כללים המגדירים זאת( תועלת 1 : עבור מצב נצחון -1, עבור הפסד ו 0 עבור תיקו 7 משחק ספציפי סדרה של מצבים המתחילה במצב ההתחלתי ומסתיימת במצב סופי s,...,s k ) s1 = si, G(sk 1 בכל מצב בסדרה מתבצע מהלך של השחקן שתורו לשחק )) sj+1 2 Succ(sj, T urn(sj הערך של המשחק עבור כל סוכן הינו הערך של המצב הסופי 8 משחקי שני שחקנים משחק שני שחקנים הוא משחק בו מספר הסוכנים הינו שניים רוב המשחקים הינם משחקי תור מתחלף לסרוגין ) 8q 2 Succ(s, T urn(s)), T urn(s) 6= T urn(q 9

משחק סכום אפס משחק סכום אפס הוא משחק בו 8s 2 S g,u(s, 1) = U(s, 2) במשחקים בהם יש שתי תוצאות אפשריות - נצחון והפסד - נצחון של האחד הוא הפסד של השני 10 משחקי אנפורמציה מלאה במשחקים כמו שח, דמקה וכו יש לשני השחקנים אינפורמציה מלאה על המצב העכשווי במשחקים כמו פוקר, ברידג וכו יש למשתתפים אינפורמציה חלקית 11 הנחת סופיות המשחק אנו מניחים שהמשחק הוא סופי - כלומר, לא קיים מסלול אינסופי חוקי רוב המשחקים כוללים חוקים שמבטיחים סופיות בשח למשל אסור שמצב יחזור יותר מ 3 פעמים 12

עץ משחק עץ משחק הינו עץ מכוון שהשורש שלו הוא מצב (המצב הנוכחי) והעלים שלו הם מצבים סופיים הקשתות בעץ הינם הצעדים החוקיים במשחק 13 דוגמה לעץ משחק עבור איקס-עיגול -1-1 0 1 1 0 14 חיפוש בעצי משחק כמו בחיפוש חד סוכני גם כאן אנחנו מחפשים דרך להגיע ממצב התחלתי למצב סופי (כאן מחפשים מצב עם ערך גבוה ככל האפשר) אולם, מציאת מסלול לא תהיה מספקת מכיוון שליריב יש אינטרסים הפוכים משלנו ולכן יבחר צעדים אחרים 15

-1-1 0 1 1 0 16 תוכנית פעולה מותניית בחיפוש חד סוכני, אלגוריתם החיפוש מחזיר סדרת מצבים או סדרת אופרטורים. סדרה זו היא למעשה תוכנית פעולה סדרתית: היא מתארת את סדרת הפעולות שנבצע בעולם גם בחיפוש רב סוכני, במצב בו תורינו לפעול, התכנית תגיד מה נעשה המצב. אבל, בחיפוש רב סוכני, במצב בו פועל אחד מהסוכנים האחרים, עלינו להחזיק תוכנית פעולה לכל צעד אפשרי שלו כך נוצרת לנו תכנית פעולה שהיא עץ - אנחנו מכנים עץ זה בשם אסטרטגיה. אסטרטגיה בחיפוש בעצי משחק, במקום להחזיר מסלול, מחזירים אסטרטגיה אסטרטגיה היא תת עץ של עץ המשחק מכל צומת שאינו עלה ושבו תור הסוכן לשחק יוצאת קשת אחת בדיוק מכל צומת שאינו עלה ושבו תור יריב לשחק יוצאות קשתות עבור כל המהלכים האפשריים. 18

19 המשמעות של אסטרטגיה אסטרטגיה היא תכנית פעולה מותניית האסטרטגיה קובעת מה תהיה סדרת המהלכים של השחקן לכל סדרה אפשרית של תגובות היריבים 20 הגודל של עץ האסטרטגיה בכל צומת של הסוכן ישנו ילד אחד בעצים במשחקי תורות מתחלפים לסרוגין מקבלים למעשה עץ בעומק שהוא מחצית מהעומק המקורי מספר העלים באסטרטגיה על עץ בעומק D ומקדם סיעוף B יהיה B bd 2 c 21

2 5 עלים 2 b5 2 c עלים 22 ערך של אסטרטגיה נגדיר ערך של אסטרטגיה כערך המינימלי של העלים שלה הערך של כל עלה מחושב לפי פונקציית התועלת של השחקן עבורו הוגדרה האסטרטגיה טענה: ערך האסטרטגיה הוא מובטח - לא קיימת סדרה של מהלכי היריבים שיובילו לערך נמוך יותר (זה ברור כי כל סדרת מהלכים תוביל אחד העלים) טענה: ערך האסטרטגיה הוא המקסימלי המובטח. כלומר לכל ערך גבוה יותר קיימת סדרת פעולות של היריבים שתוביל לקבלת ערך נמוך יותר 23 0-1 0 1-1 -1-1 1 1-1 -1-1 24

ערך אופטימלי של מצב מכל מצב ניתן להגדיר מספר רב מאוד של אסטרטגיות (כמה?). נגדיר אסטרטגיה אופטימלית כאסטרטגיה בעלת ערך מקסימלי. ערך אופטימלי של מצב הינו הערך של אסטרטגיה אופטימלית (כלומר הערך המקסימלי על פני כל האסטרטגיות מאותו מצב) הערך האופטימלי של מצב הינו הערך הגבוה ביותר המובטח לנו פעולה אופטימלית היא הפעולה הראשונה באסטרטגיה אופטימלית 25 ערך מינימקס של עץ משחק ערך מינימקס של עץ מןגדר בצורה רקורסיבית. הערך של עלה ניתן ע י פונקציית התועלת (של הסוכן) עבור אותו עלה הערך עבור צומת בו תור הסוכן לשחק הינו מקסימום ערכי המינימקס של הילדים הערך עבור צומת בו תור יריב לשחק הינו מינימום ערכי המינימקס של הילדים 26 8 < U(s, k) G(s) Minimax(s, k) = max c2succ(s) Minimax(c, k) Turn(s) =k : min c2succ(s) Minimax(c, k) Turn(s) 6= k

אסטרטגיית מינימקס אסטרטגיית מינימקס היא אסטרטגייה הבוחרת בכל מצב בו תור הסוכן לפעול, פעולה המובילה למצב בעל ערך מינימקס מקסימלי האופטימליות של מינימקס ערך המינימקס של עץ משחק הינו אופטימלי ניתן להוכיח בקלות באינדוקציה על עומק העץ במשחקי סכום אפס, אם היריב משחק באסטרטגיית מינימקס גם הוא, אזי תוצאת המשחק תהיה בדיוק ערך המינימקס שאלה לדיון: מה יקרה אם היריב ישחק באסטרטגייה שאינה מינימקס? 29 אלגוריתם לחישוב מינימקס האלגוריתם עובד מלמטה ומפעפע את הערכים למעלה החיפוש הוא חיפוש DFS ולכן דרישות הזכרון הן לינאריות בעומק עץ המשחק האלגוריתם עובד גם עם משחקים שאינם סכום אפס, וגם למספר שחקנים גדול משניים. 30

Minimax(State,Agent) If G(State) then return U(State, Agent) Turn Turn(State) Children Succ(State, Agent) If Turn = Agent then CurMax - Loop for c in Children v Minimax(c, Agent) CurMax Max(v, CurMax) Return(CurMax) else ; Turn Agent CurMin Loop for c in Children v Minimax(c, Agent) CurMin Min(v, CurMin) Return(CurMin) 31 Animation of the Minimax algorithm 0 0-1 -1 0 1-1 -1 1 0-1 0 1-1 -1-1 -1-1 1-1 -1 32 גיזום אלפא-ביתא טכניקה המאפשרת לחיפוש מינימקס לגזום חלק מענפי החיפוש אבל לשמור על אופטימליות האלגוריתם האלגוריתם מפעפע חסמים המאפשרים להמנע מלהמשיך לחקור תתי עצים שאין באפשרותם להשפיע על ערך המינימקס של השורש αβ 33 כלומר, עץ משחק גזום אלפא-ביתא יחזיר ערך ערך מינימקס

ערך המינימקס שהעץ מחזיר מגיע תמיד מאחד העלים בעץ 0 זרימת אנפורמציה בעץ מינימקס 0-1 -1 0 1-1 -1 1 0-1 0 1-1 -1-1 -1-1 1-1 -1 לא יתכן שעלה מתת העץ של B יקבע את ערך המינימקס של העץ A V(A) 0? 0-1 B V(B) -1 0 1-1 -1 1 0-1 0 1-1 -1-1 -1-1 1-1 -1 כלל הגיזום נניח שבזמן פיתוח צומת min נקבע לו מינימום זמני חדש Xmin מובטח לנו שערכו של הצומת יהיה לבסוף קטן או שווה ל Xmin נניח שלאחד מצמתי ה max שמעליו ישנו ערך מקסימום זמני Ymax הגדול או שווה ל Xmin מובטח לנו שערכו של צומת ה max רק יגדל לכן לא יתכן שהערך הסופי של צומת ה min יעבור דרך צומת ה max האמור מספיק צומת max אחד כזה כדי לחסום את ערך צומת ה min מלטפס בעץ 36

V63 can change the value of the tree only if the following 3 conditions hold: Min 6 > Max 5 & V21 V1 V22 V23 V1 Max1=Max(V21,V22) Min 6 > Max 3 & Min 6 > Max 1 V31 V32 V33 V33 Max3=Max(V41) V41 V42 V51 V52 V53 V53 Max5=Max(V61,V62) V61 V62 V63 V63 Min6=Min(V71) The value max{max 1, Max 3, Max 5 } is called Alpha V71 If the following holds Min 6 apple max{max 1, Max 3, Max 5 } we can prune the tree under V63 37 כדי ש V53 ישנה את ערך העץ חייב להתקיים Max 5 < Min 4 & Max 5 < Min 2 V21 V31 V1 V22 V23 V32 V33 V23 Min2=Min(V31,V32) V41 V42 V42 Min4=Min(V51,V52) V51 V52 V53 V53 Max5=Max(V61,V62) V61 V62 אם מתקיים Max 5 min{min 2, Min 4 } אזי ניתן לגזום את העץ תחת V53 לחסם min{min 2, Min 4 } קוראים בשם חסם ביתא 38 AlphaBeta(State, Agent, Alpha, Beta) If G(State) then return U(State, Agent) Turn Turn(State) Children Succ(State, Agent) If Turn = Agent then CurMax - Loop for c in Children v AlphaBeta(c, Agent, Alpha, Beta) CurMax Max(v, CurMax) Alpha Max(CurMax, Alpha) If CurMax Beta then return ; So that the calling minimizer will not select it Return(CurMax) else ; Turn Agent CurMin Loop for c in Children v AlphaBeta(c, Agent, Alpha, Beta) CurMin Min(v, CurMin) Beta Min(CurMin, Beta) If CurMin Alpha then return - Return(CurMin) 39

אתחול הקריאה החיצונית לפרוצדורת אלפא-ביתא: αβ AlphaBeta(State, Agent, -, + ) 40 משפט נכונות אלפא-ביתא אלגוריתם אלפא ביתא מחזיר את ערך המינימקס של העץ αβ 41 גיזום אופטימלי של אלפא ביתא הגיזום האופטימלי של האלגוריתם מתקבל כאשר הערך הקיצוני של כל צומת נמצא ראשון כלומר בצמתי מקסימום ערך המינימקס הגבוה ביותר נמצא בילד הראשון בצמתי מינימום הערך הנמוך ביותר נמצא בילד הראשון 42

70 70 65 60 70 80 90 65 75 85 60 70 80 43 שימו לב: חשוב שהאיבר המקסימלי (מינימלי) יהיה ראשון. הסדר של הילדים האחרים אינו משנה. 70 70 60 65 70 80 90 60 85 75 65 80 70 44 גיזום מינימלי של אלפא ביתא הגיזום הגרוע ביותר של האלגוריתם מתקבל כאשר כל הילדים ממויינים לפי סדר עולה בצומת מקס טלפי סדר יורד בצומת מינ במקרה כזה לא יתרחש גיזום 45

70 60 65 70 60 70 80 65 75 85 70 80 90 46 כמה יגזום אלפא ביתא בסידורים שונים? בסידור אופטימלי יפתח אלפא ביתא 2/d b צמתים כאשר מינימקס מפתח b d כלומר שחקן אלפא ביתא יוכל לפתח עץ בעומק כפול מאשר שחקן מינימקס בסידור אקראי יפתח אלפא ביתא 4/3d b 47 גודל עצי משחק של משחקים ידועים באיקס עיגול קיימים במצב ההתחלתי 9 צעדים אפשריים לכל צעד כזה ישנן 8 תגובות אפשריות וכו. לכן מספר העלים בעץ המשחק הינו 9 8 6 5 4 3 2 1 = 362, 880 בשחמט קיימים בכל מצב 35 צעדים חוקיים בממוצע אם נגביל את המשחק ל 100 צעדים נקבל עץ עם 10 154 100 35 עלים 48

חיפוש מינימקס מוגבל משאבים ברוב המשחקים אין אפשרות לערוך חיפוש על עץ המשחק המלא מקובל לכן לערוך חיפוש מינימקס / אלפא - ביתא לעומק מוגבל העלים של העץ מוגבל העומק מוערכים ע י פונקציית הערכה יוריסטית 49 פונקציית הערכה יוריסטית כמו בחיפוש יוריסטי חד סוכני גם כאן הידע הספציפי למשחק ניתן ע י פונקציית ההערכה היוריסטית הפונקציות הן בדרך כלל קומבינציה לינארית של תכונות שונות של מצב המשחק בשחמט התכונה הדומיננטית היא יתרון הכלים. תכונות נוספות מודדות ניידות, שליטה במרכז, וכו. 50 ההבדל היחיד ממינימקס הכללי - ערך העלה אינו הערך הסופי של המשחק אלא ערך משוערך ע י הפונקציה היוריסטית ) RB-Minimax(State, Agent, D ) If G(State) OR D=0 then return h(state, Agent ) Turn Turn(State ) Children Succ(State, Agent If Turn = Agent then CurMax - Loop for c in Children ) v RB-Minimax(c, Agent, D-1 ) CurMax Max(v, CurMax ) Return(CurMax else ; Turn Agent CurMin Loop for c in Children ) v RB-Minimax(c, Agent, D-1 ) CurMin Min(v, CurMin ) Return(CurMin 51

RB-AlphaBeta(State, Agent, D, Alpha, Beta) If G(State) or D=0 then return h(state, Agent) Turn Turn(State) Children Succ(State, Agent) ההבדל היחיד מאלפא ביתא הכללי - ערך העלה אינו הערך הסופי של המשחק אלא ערך If Turn = Agent then משוערך ע י הפונקציה היוריסטית CurMax - Loop for c in Children v RB-AlphaBeta(c, Agent, D-1, Alpha, Beta) CurMax Max(v, CurMax) Alpha Max(CurMax, Alpha) If CurMax Beta then return Return(CurMax) else ; Turn Agent CurMin Loop for c in Children v RB-AlphaBeta(c, Agent, D-1, Alpha, Beta) CurMin Min(v, CurMin) Beta Min(CurMin, Beta) If CurMin Alpha then return - Return(CurMin) 52 משפט ההבטחה של מינימקס (ואלפא ביתא) מוגבל משאבים אם מינימקס מוגבל לעומק D מחזיר ערך V, אזי קיימת אסטרטגיה המבטיחה מצב עם ערך יוריסטי של לפחות V בעוד D צעדים ערך זה הוא הערך הגבוה ביותר בעומק D המובטח לנו 53 שימוש האלגוריתמים במשחק ברוב המשחקים קיימים בכל מצב מספר מהלכים חוקיים מטרת האלגוריתם אינו לחשב את ערך המינימקס אלא לבחור במהלך שממקסם ערך זה אנו מניחים שקיימת פונקציה בשם agent) Legal-Moves(state, שמחזירה קבוצה סופית של מהלכים חוקיים לסוכן במצב הנתון אנו מניחים גם שקיימת פונקציה בשם state) Apply-Move(move, שמחזירה את המצב המתקבל ע י הפעלת המהלך 54

RB-AlphaBeta-M(State, Agent, D, Alpha, Beta) If G(State) or D=0 then return h(state,agent) Turn Turn(State) Moves Legal-Moves(State,Agent) If Turn = Agent then CurMax - Loop for m in Moves c Apply-Move(m,State) v RB-AlphaBeta(c, Agent, D-1, Alpha, Beta) CurMax Max(v, CurMax) Alpha Max(CurMax,Alpha) If CurMax Beta then return Return(CurMax) else ; Turn Agent CurMin Loop for m in Moves c Apply-Move(m,State) v RB-AlphaBeta(c, Agent, D-1, Alpha, Beta) CurMin Min(v, CurMin) Beta Min(CurMin, Beta) If CurMin Alpha then return - Return(CurMin) 55 אלגוריתם משחק - מחזיר צעד Play(State,Agent,D) Alpha - Max - Moves Legal-Moves(State,Agent) Loop for m in Moves c Apply-Move(m,State) v RB-AlphaBeta-M(c, Agent, D-1, Alpha, ) if v > Max Alpha v Max v BestMove m Return BestMove 56 שיפורים למינימקס ניהול זמן סדור ילדים טבלאות מצבים ספריות פתיחה וסיום העמקה סלקטיבית 57

אלגוריתם Anytime Contract במשחקים רבים יש מגבלה על זמן החשיבה לפני מהלך זו הגדרת בעיה אופיינית: במקום החזר את הצעד הטוב ביותר - החזר את הצעד הטוב ביותר שאתה יכול למצוא תוך K שניות לאלגוריתמים שמקבלים מגבלת זמן כאחד הפרמטרים קוראים אלגוריתמי Anytime Contract Algorithms המלה contract באה לאמר שהזמן ניתן מראש לאלגוריתם. יש מקרים בהם האלגוריתם נדרש לחשוב עד יבקשו ממנו פתרון - אלגוריתמים כאלה נקראים Anytime Interruptable Algorithms 58 העמקה הדרגתית שיטה מקובלת להתמודדות עם זמן. קוראים לאלפא-ביתא מוגבל משאבים עם הגבלת עומק הולכת וגדלה עד שנגמר הזמן יש בעיה - כיצד לנצל את האיטרציה האחרונה שהופסקה סידור ילדים ראינו שסדר הילדים בעץ יכול להשפיע בצורה ניכרת על מידת הגיזום ולכן על משאבי החיפוש במקרה של סדר אופטימלי ניתן יהיה לחפש לעומק כפול מאשר עץ לא גזום סדר אופטימלי כזה לא ניתן להסקה (כדי להסיק אותו אנו זקוקים לעץ הבלתי גזום) ניתן להסיק יוריסטית סדר טוב בשחמט, למשל, סידור יוריסטי המנסה תחילה לקיחות, אח כ איומים, אח כ צעדים קדימה, אח כ צעדים אחורה, מביא לגיזום בפקטור 2 מהאופטימלי. 60

סידור ענפים דינמי שיטה המנצלת איטרציות קודמות בהעמקה הדרגתית להסקת יוריסטיקה לסידור בנים באיטרציה ה i נשמרת אינפורמציה לסידור בנים באיטרציה ה 1+i מספיק לזכור לכל צומת מקס את הצעד המקסימלי ולכל צעד min את הצעד המינימלי אפקט האופק תופעה בה האלגוריתם בוחר צעדים סתמיים כדי לדחות צרות מעבר לאופק החיפוש 62 אפקט האופק - דוגמא תור השחור לשחק. עומק החיפוש - 2 כל צעד של השחור יסתיים באיבוד המלכה שלו יש צעד אחד - הזזת הרץ לשורה העליונה - שיסתיים רק באיבוד רץ. לכן השחור יעדיף זאת. אבל בצעד הבא הוא יאבד גם את המלכה 63

אפקט האופק -4 רץ שחור חוסם צריח מלכה לוקחת צריח -3 צריח לוקח רץ רץ לוקח מלכה -4-3 64 העמקה סלקטיבית - חיפוש עד רגיעה פורשים כמו קודם עץ מלא עד עומק מסוים. אבל, כאשר מצב אינו שקט ממשיכים הלאה לעומק הציעו קריטריונים לשקט 65 העמקה סלקטיבית - חיפוש עד רגיעה פורשים כמו קודם עץ מלא עד עומק מסוים. אבל, כאשר המצב בעלה אינו שקט מעמיקים יש קריטריונים שונים המשמשים להחלטה על העמקה קריטריונים כלליים משתמשים למשל בשינויים ערך היוריסטי במסלול לעלה - אם יש תנודות חזקות ממשיכים להעמיק. קריטריונים ספציפיים משתמשים בכללים תלויי משחק - למשל, בשחמט ממשיכים כל עוד יש לקיחות של כלים. 66

בהעמקה סלקטיבית עץ החיפוש נראה כך : עץ מלא + עצים נוספים תלויים על חלק מהעלים 67 ניצול זכרון חיפוש מינימקס )גם עם גיזום( הינו חיפוש לעומק. דרישות הזכרון שלו לינאריות )למעשה נשמר רק לוח אחד(. נשאלת השאלה האם ניתן לנצל את הזכרון הפנוי כדי לשפר את אלגוריתם ההחלטה במקרים רבים מרחב המצבים הינו גרף, ולכאורה היה ניתן לחפש בגרף במקום בעץ, אבל אז הזכרון היה גדל אקפוננציאלית פתרון ביניים אפשרי : שמירת חלק מהמצבים בהם ביקרנו עם ערך המינימקס שלהם בטבלה 68 שמירת ערכים בטבלה אם אנחנו רוצים שערך המינימקס של העץ לא ישתנה בעקבות השימוש בערכים שמורים, עלינו לנהוג בזהירות נצטרך לשמור, יחד עם המצבים וערך המינימקס שלהם, גם את העומק שהערך משקף נשתמש רק אם נמצא מצב זהה באותו עומק עבור חיפוש אלפא ביתא צריך להיזהר אפילו יותר שכן איננו יודעים את ערכי המינימקס של מצבים - אלא רק חסמים עליהם 69

70 חיפוש במשחקים המערבים הסתברות 71 משחקים עם צמתים הסתברותיים קיימים משחקים, כמו שש - בש, הכוללים צמתים הסתברותיים - המצב הבא נקבע ע י הטלת קוביה אסטרטגיית המינימקס, המניחה את הגרוע ביותר, אינה רציונלית לגבי צמתים הסתברותיים אלגוריתם Expectimax עובד כמו מינימקס בצמתים לא הסתברותיים. בצמתים הסתברותיים מעלים למעלה את התוחלת 72

1/36 1/18 1-1 1-2 1-2... מהלכים חוקיים לזריקה 6-1...... 1/36 1/18 1-1 1-2...... 6-6 1/36 מהלכים חוקיים לזריקה 6-6 1/36 14 73 אלגוריתם Expectimax אנו מניחים פרדיקט Probabilistic המחזיר TRUE אם זהו מצב הסתברותי אנו מניחים פונקציה Prob המקבלת מצב הסתברותי ומחזירה אוסף זוגות ni} {hp 1,c 1i,...hp n,c כאשר c i הינו מצב ו p i הינה ההסתברות שלו nx p i =1 i=1 74 RB-Expectimax(State,Agent,D) If G(State) OR D=0 then return h(state,agent) If Probabilistic(State) X then return p RB-Expectimax(c, Agent,D 1) hc,pi2prob(state) Turn Turn(State) Children Succ(State, Agent) If Turn = Agent then CurMax - Loop for c in Children v RB-Expectimax(c,Agent,D-1) CurMax Max(v,CurMax) Return(CurMax) else ; Turn Agent CurMin Loop for c in Children v RB-Expectimax(c,Agent,D-1) CurMin Min(v,CurMin) Return(CurMin) 75

משחקים עם אינפורמציה חלקית במשחקים כמו פוקר וברידג רואה כל סוכן רק חלק ממצב העולם טכניקה אפשרית לפתרון: מנה את כל המצבים האפשריים, לכל אחד פתח עץ אלפא ביתא, בחר צעד עם הערך הצפוי הגדול ביותר אם מספר המצבים האפשריים גדול מידי, מבצעים זאת רק לגבי דגימה של הקבוצה לשיטה הזו קוראים Monte Carlo sampling 76 MonteCarlo(PartialState, D, K) Actions Legal actions in PartialState S All states consistent with PartialState Sample Random K elements of S Loop for a in Actions V(a) AVG αβ(a(s),d)for s in Sample Select a with maximal V(a) 77