Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "פרויקט מסכם לתואר בוגר במדעים (B.Sc.) במתמטיקה שימושית"— Presentation transcript:

1 פרויקט מסכם לתואר בוגר במדעים (B.Sc.) במתמטיקה שימושית
2048 AI Solver using Expectimax Algorithm & Particle Swarm Optimization מערכת בינה מלאכותית לפתרון המשחק 2048 בעזרת אלגוריתם אקספקטימקס ואופטימיזצית הנחיל מגיש: יפתח בן זקן ת.ז בהנחיית ד"ר גבריאל בן סימון

2 המשחק 2048 משחק מחשב/סמארטפון לשחקן יחיד
השחקן בתורו מחליט לאיזה כיוון האריחים יזוזו (ימינה, שמאלה, למעלה, למטה). המחשב בתורו מגריל מיקום ריק בלוח ומניח את האריח 2 בהסתברות 0.9 או את האריח 4 בהסתברות 0.1. המשחק מסתיים כאשר הלוח מלא ואין לשחקן אריחים זהים צמודים שניתן לאחד. המטרה שלי: להגיע לאריח מקסימלי של 4,198-8,192

3 מבנה המצגת היסטוריה רקע תאורטי האלגוריתם תהליך האופטימיצזיה הדגמה
תוצאות וסיכום

4 היסטוריה ג'ון פון ניומן מפרסם את משפט המינימקס (Minimax Theorem). "Programming a Computer Playing Chess" פורסם ע"י קלוד א. שאנון. אלן טיורינג כותב תוכנה ראשונה בהשראת המאמר של שאנון. "כחול עמוק" של IBM מנצח את אלוף העולם דאז גארי קספרוב בסדרה של הטוב מ-6 משחקים. באותו משחק מפורסם, "כחול עמוק" סורק כ- 200 מיליון מהלכים בשניה! כיום תוכנות שחמט הרבה יותר מתוחכמות. "As far as I can see, there could be no theory of games … without that theorem … I thought there was nothing worth publishing until the Minimax Theorem was proved"

5 מה זה אומר "לפתור" משחק? אפשר לייצג מהלך של משחק ע"י גרף מכוון בצורת עץ. שורש העץ מייצג את המצב ההתחלתי, קשתות מייצגות מהלכים וצמתים מייצגים מצבי משחק אפשריים. האם מחשב יכול למפות את כל מצבי המשחק האפשריים? באיקס-עיגול 255,168 משחקים אפשריים. בדמקה 5× אפשרויות. כ-200 מחשבים עבדו במשך 18 שנה רצוף (!!) בבניית עץ המשחק המלא (Project Chinook). במשחק ממוצע של שחמט (80 תורים, 35 מהלכים אפשריים בכל תור). ~ מצבי משחק אפשריים. ללם השוואה, מספר האטומים המוערך ביקום הנראה: 4×10 79 −4× 10 81

6 אלגוריתם מינימקס (Minimax)
מינימקס הוא משפט (ואלגוריתם) שמטרתו, בהינתן מצב משחק, להחליט מהי הפעולה שעל השחקן לבצע. כל מצב סופי (terminal) מקבל ציון. למשל -1/0/1 עבור נצחון/תיקו/הפסד. עוברים על העץ מהעלים לכיוון השורש. מניחים שהיריב הוא רציונלי ויעשה את המהלכים שיעזרו לו לנצח. האסטרטגיה: השחקן בוחר בצעד הטוב ביותר עבורו (max) בעוד היריב בוחר את הצעד הגרוע ביותר עבור השחקן (min). Min Max Terminal

7 אלגוריתם מינימקס 5 6 8 5 4 9 2 1 8

8 אלגוריתם מינימקס 5 6 8 5 4 9 2 1 8 Terminals

9 אלגוריתם מינימקס 5 6 Maximizers 8 5 4 9 2 1 8

10 אלגוריתם מינימקס 8 5 6 Maximizers 8 5 4 9 2 1 8

11 אלגוריתם מינימקס 8 5 4 6 Maximizers 8 5 4 9 2 1 8

12 אלגוריתם מינימקס 8 5 4 9 6 Maximizers 8 5 4 9 2 1 8

13 אלגוריתם מינימקס 8 5 4 9 6 1 Maximizers 8 5 4 9 2 1 8

14 אלגוריתם מינימקס 8 5 4 9 6 1 8 Maximizers 8 5 4 9 2 1 8

15 אלגוריתם מינימקס Minimizers 8 5 4 9 6 1 8 8 5 4 9 2 1 8

16 אלגוריתם מינימקס 4 Minimizers 8 5 4 9 6 1 8 8 5 4 9 2 1 8

17 אלגוריתם מינימקס 4 6 Minimizers 8 5 4 9 6 1 8 8 5 4 9 2 1 8

18 אלגוריתם מינימקס 4 6 1 Minimizers 8 5 4 9 6 1 8 8 5 4 9 2 1 8

19 אלגוריתם מינימקס Maximizer 4 6 1 8 5 4 9 6 1 8 8 5 4 9 2 1 8

20 אלגוריתם מינימקס 6 Maximizer 4 6 1 8 5 4 9 6 1 8 8 5 4 9 2 1 8

21 אלגוריתם מינימקס 6 Chosen Action 4 6 1 8 5 4 9 6 1 8 8 5 4 9 2 1 8

22 אלגוריתם מינימקס 6 4 6 1 8 5 4 9 6 1 8 8 5 4 9 2 1 8 Chosen Action
Assumed Reaction 8 5 4 9 6 1 8 8 5 4 9 2 1 8

23 האלמנט האקראי במשחק ישנם משחקים בהם יש אלמנט אקראי (שש-בש, פוקר, ) מה עושים כאשר המחשב אינו מתנהג כיריב רציונלי הרוצה ברעתנו אלא מגריל את מהלכיו. גישה א': לא נתייחס למחשב כיריב רציונלי ולכן לא רצוי להשתמש במינימקס. גישה ב': נחמיר ונתייחס למחשב כיריב רציונלי וכן נשתמש במינימקס.

24 אלגוריתם אקספקטימקס (Expectimax)
במקום צמתים של יריב רציונלי שמנסה למזער את הציון, נשתמש בצמתי "מזל" אשר יחשבו את תוחלת ציוני הבנים שלהם. התפלגות הבנים צריכה להיות ידועה. לעומת מינימקס, אקספקטימקס הוא אלגוריתם אופטימי. Chance 1/2 1/2 5/6 1/6 1/2 1/2 Max Terminal

25 Expectimax vs. Minimax 10 10 9 99 10 10 9 99 Expectimax Minimax

26 Expectimax vs. Minimax 10 10 9 99 10 10 9 99 Terminals Terminals

27 Expectimax vs. Minimax 10 10 9 99 10 10 9 99 Expectation Minimizer

28 Expectimax vs. Minimax 10 10 10 9 99 10 10 9 99 Expectation Minimizer

29 Expectimax vs. Minimax Expectation Minimizer 10 10 9 10 10 9 99 99 10

30 Expectimax vs. Minimax Expectation Minimizer 10 10 9 10 10 9 99 99 10

31 Expectimax vs. Minimax Expectation Minimizer 10 10 9 10 10 9 99 99 10
54 10 9 10 10 9 99 10 10 9 99 Expectation Minimizer

32 Expectimax vs. Minimax Maximizer Maximizer 10 10 9 10 10 9 99 99 10 54

33 Expectimax vs. Minimax Maximizer Maximizer 10 10 9 10 10 9 99 99 10 10
54 10 9 10 10 9 99 10 10 9 99 Maximizer Maximizer

34 Expectimax vs. Minimax Maximizer Maximizer 10 10 9 10 10 9 99 99 54 10

35 Expectimax vs. Minimax Expectimax Minimax 10 10 9 10 10 9 99 99 54 10
Chosen Action 10 54 10 9 10 10 9 99 10 10 9 99 Expectimax Minimax

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

37 היוריסטיקה (Heuristic)
היוריסטיקה היא כלל חשיבה המבוסס על הגיון פשוט או אינטואיציה. בהקשר של משחקים, היוריסטיקה היא פונקציה המעריכה מצב לוח לפי היגיון כלשהו. היוריסטיקה יכולה להיות גם שלילית בצורת עונש. פונקציית הערכה היוריסטית מקבלת לוח משחק 𝐵 ומחזירה ציון היוריסטי משוקלל: 𝑒𝑣𝑎𝑙𝑢𝑎𝑡𝑒 𝐵 = 𝑘=1 𝑁 𝑤 𝑘 ∙ ℎ 𝑘 𝐵 = 𝑤 1 ∙ ℎ 1 𝐵 +…+ 𝑤 𝑁 ∙ ℎ 𝑁 𝐵 כאשר 𝑁 מספר ההיוריסטיקות ו- 𝑤 𝑘 ∈ℝ הם משקלים. מטרת המשקלים היא לייצר איזון בין ההיוריסטיקות השונות. המשקלים נקבעים לפי אינטואיציה או שיטות אופטימיזציה.

38 אלגוריתם לפתרון 2048 – היוריסטיקה 1#
סידור הלוח בצורת משולש פינתי כך שהערך הגבוה ביותר נמצא באחת הפינות. נגדיר קבוצת מטריצות משקל לפינות 𝑊 𝑐𝑜𝑟𝑛𝑒𝑟𝑠 ={ 𝑊 𝑡𝑟 , 𝑊 𝑡𝑙 , 𝑊 𝑏𝑟 , 𝑊 𝑏𝑙 }. למשל: 𝑊 𝑏𝑟 = מטריצה 𝐵 בגודל 4X4 תייצג מצב לוח כלשהו. נחשב את סכום המכפלות בין כל איברי הלוח לאיברי מטריצת המשקל המתאימים עבור כל פינה: ℎ 1 𝐵 = max 𝑤∈ 𝑊 𝑐𝑜𝑟𝑛𝑒𝑟𝑠 𝑖=1 4 𝑗=1 4 𝐵 𝑖,𝑗 ∙ 𝑤 𝑖,𝑗

39 אלגוריתם לפתרון 2048 – היוריסטיקות 2,3#
כדי להתקדם במשחק עלינו למקם אריחים זהים אחד ליד השני ולמזג אותם. נספור את כל זוגות האריחים הצמודים והזהים בכל שורה ועמודה: equal(x,y)= 1, &x=y 0, &𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 ℎ 2 𝐵 = 𝑖=1 4 𝑗=2 4 𝑒𝑞𝑢𝑎𝑙(𝐵 𝑖,𝑗 , 𝐵 𝑖,𝑗−1 ) + 𝑗=1 4 𝑖=2 4 𝑒𝑞𝑢𝑎𝑙(𝐵 𝑖,𝑗 , 𝐵 𝑖,𝑗−1 ) ככל שיש יותר משבצות ריקות, ככה בוצעו יותר מיזוגים. נשאף למצבי משחק בהם הלוח כמה שיותר ריק. נספור את כמות המשבצות הריקות בלוח: empty(x)= 1, &x=0 0, &𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 ℎ 3 𝐵 = 𝑖=1 4 𝑗=1 4 𝑒𝑚𝑝𝑡𝑦(𝐵 𝑖,𝑗 )

40 אלגוריתם לפתרון 2048 – היוריסטיקה 4#
בשלבים מתקדמים של המשחק, קשה מאוד לשמור על הלוח מסודר. סידור השורות/העמודות בצורה מונוטונית מאוד משתלם כאשר הלוח מתמלא עד הסוף.

41 אלגוריתם לפתרון 2048 – היוריסטיקה רביעית
היוריסטיקה זו תנוסח בצורת עונש על שורות/עמודות לא מונוטוניות. bigger x,y = 1, &x≥y 0, &𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑟𝑖𝑔ℎ 𝑡 𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 = 𝑖=1 4 𝑗=2 4 𝑏𝑖𝑔𝑔𝑒𝑟(𝐵 𝑖,𝑗 , 𝐵 𝑖,𝑗−1 ) ∗( 𝐵 𝑖,𝑗 − 𝐵 𝑖,𝑗−1 ) 𝑙𝑒𝑓 𝑡 𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 = 𝑖=1 4 𝑗=2 4 𝑏𝑖𝑔𝑔𝑒𝑟(𝐵 𝑖,𝑗−1 , 𝐵 𝑖,𝑗 )∗( 𝐵 𝑖,𝑗−1 − 𝐵 𝑖,𝑗 ) אנו מחפשים מצבי לוח ש"לא קיבלו עונש" ולכן ניקח את המינימום מבין המונוטוניות הימנית והשמאלית. 𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 = min⁡(𝑟𝑖𝑔ℎ 𝑡 𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 ,𝑙𝑒𝑓 𝑡 𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 ) ℎ 4 𝐵 = −(𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 +𝑚𝑜𝑛𝑜𝑡𝑜𝑛𝑖𝑐𝑖𝑡𝑦 𝐵 )

42 אלגוריתם לפתרון 2048 – נוסחה רקורסיבית
𝑠𝑐𝑜𝑟𝑒 𝐵,𝑑 = 𝐵 ′ ∈ 𝑅 𝐵 𝑃 𝐵, 𝐵 ′ ∙ 𝑒𝑣𝑎𝑙𝑢𝑎𝑡𝑒 𝐵 ′ , 𝑖𝑓 𝑑=0 𝑜𝑟 𝑠𝑡𝑎𝑡𝑒 𝑖𝑠 𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑙 max 𝑚∈ 𝑀 𝐵 ′ 𝑠𝑐𝑜𝑟𝑒 𝑚𝑜𝑣𝑒 𝐵 ′ ,𝑚 , 𝑑−1 , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑃 𝐵, 𝐵 ′ =𝑇ℎ𝑒 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑦 𝑜𝑓 𝑟𝑎𝑛𝑑𝑜𝑚𝑙𝑦 𝑠𝑝𝑎𝑤𝑛𝑖𝑛𝑔 𝑎 𝑛𝑒𝑤 𝑡𝑖𝑙𝑒 𝑜𝑛 𝑏𝑜𝑎𝑟𝑑 𝐵 𝑡𝑜 𝑝𝑟𝑜𝑑𝑢𝑐𝑒 𝐵 ′ R B ={Possible game states from randomly spawning a new tile} 𝑀 𝐵 = 𝑢𝑝, 𝑑𝑜𝑤𝑛, 𝑙𝑒𝑓𝑡, 𝑟𝑖𝑔ℎ𝑡 𝑑=𝑟𝑒𝑐𝑢𝑟𝑠e 𝑑𝑒𝑝𝑡ℎ 𝑙𝑖𝑚𝑖𝑡 לכן, בהינתן מצב לוח מסויים בשלב שבו על האלגוריתם להמליץ על מהלך, יבחר המהלך בעל הציון המקסימלי מבין המהלכים האפשריים: 𝑑𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝐵 = argmax 𝑚∈ 𝑀 𝐵 𝑠𝑐𝑜𝑟𝑒 𝑚𝑜𝑣𝑒 𝐵,𝑚

43 אלגוריתם לפתרון 2048 – הדגמה ראשונה
הרצות ראשונות לאחר כיוון המשקלים בצורה ידנית (לפי אינטואיציה): למשקלי ההיוריסטיקות חשיבות רבה!

44 אופטימיזציה מטה-היוריסטית
יש צורך לבצע אופטימיזציה למשקלי ההיוריסטיקות. נגדיר "פונקצית מעטפת" 𝑔: ℝ 4 →ℝ אשר תקבל כפרמטר את המשקלים ותריץ משחק שלם של 2048 בעזרת האלגוריתם שלנו והמשקלים שהתקבלו. "הפתרון האופטימלי" 𝑧 =( 𝑤 1 , 𝑤 2 , …, 𝑤 𝑛 )∈ ℝ 𝑛 הינו בעל הציון הגבוה ביותר ולכן מקיים את המשוואה: ∀ 𝑦 ∈ ℝ 𝑛 :𝑔 𝑧 ≥𝑔( 𝑦 ) בעיה: האם קיים פתרון אופטימלי? הפונקציה שלנו איננה רציפה ולא ברור כיצד היא מתנהגת. זוהי "פונקציה רב-ערכית" (Multivalued function) הגרדיאנט לא ידוע ולא ניתן להשתמש בשיטות אופטימיזציה רגילות.

45 אינטליגנצית הנחיל (Swarm Intelligence)
מערכות בטבע שמורכבות מפריטים רבים שמצליחים ללא כל ניהול חיצוני לפתור במשותף בעיות, שפריט בודד לא היה מצליח לפתור לבדו. דוגמאות: נחילי דבורים, קיני נמלים, להקות ציפורים ודגים. כל פרט מתנהג לפי מספר כללים פשוטים. כללים אלו מובילים להתנהגות ברמת מורכבות גבוהה מבחינת ההתנהלות המשותפת.

46 אופטימיזצית הנחיל (Particle Swarm Optimization)
נדמיין להקת ציפורים בשעת חיפוש אחר אוכל. תחילה, הציפורים אינן יודעות את מיקום האוכל אך ככל שחולף הזמן חלק מהציפורים מתקרבות אליו ויכולות להריח או לראות אותו. מה יעשו שאר הציפורים? יגיעו לאותו אזור שבו נמצא האוכל.

47 אופטימיזצית הנחיל (Particle Swarm Optimization)
כל חלקיק יאותחל עם מיקום ומהירות אקראיים. כל חלקיק (פרט בודד) מחשב את הפונקציה בכל מקום (קואורדינטה) שהוא מבקר. כל חלקיק יזכור את הערך הגבוה ביותר שמצא עד כה ואת המיקום שבו נמצא 𝑝 𝑏𝑒𝑠𝑡 . כל חלקיק יוכל לדעת את המיקום והערך הגבוה ביותר שהושג בנחיל כולו 𝑠 𝑏𝑒𝑠𝑡 . 𝑐 1 ו- 𝑐 2 מהווים את פקטור המדד החברתי (רכיב קוגניטיבי ורכיב סוציאלי). בכל איטרציה 𝑖∈ℕ , כל חלקיק מכוון את מיקומו ( 𝑥 ∈ ℝ 𝑛 ) ומהירותו ( 𝑣 ∈ ℝ 𝑛 ): 𝑣 𝑖+1 = 𝑣 𝑖 + 𝑐 1 ∙𝑟𝑎𝑛𝑑 0,1 ∙ 𝑝 𝑏𝑒𝑠𝑡 − 𝑥 𝑖 + 𝑐 2 ∙𝑟𝑎𝑛𝑑 0,1 ∙ 𝑠 𝑏𝑒𝑠𝑡 − 𝑥 𝑖 𝑥 𝑖+1 = 𝑥 𝑖 + 𝑣 𝑖+1

48 סימולציית PSO 100 איטרציות 50 חלקיקים Initialize Particles
For each particle Update 𝑣 Next Particle If 𝑔 𝑥 >𝑔( 𝑝 𝑏𝑒𝑠𝑡 ) 𝑝 𝑏𝑒𝑠𝑡 = 𝑥 Update 𝑥 If 𝑔 𝑥 >𝑔( 𝑠 𝑏𝑒𝑠𝑡 ) 𝑠 𝑏𝑒𝑠𝑡 = 𝑥 Evaluate 𝑔( 𝑥 ) Next Iteration NO Satisfy Exit Criteria YES Solution is 𝑠 𝑏𝑒𝑠𝑡

49 תוצאות סופיות לאחר הרצת המשחק המלא 100 פעמים התקבלו התוצאות הבאות:

50 סיכום היעד המקורי הושג בהצלחה ואף מעבר לכך.
למשקלי ההיוריסטיקות חשיבות רבה! לפני האופטימיזציה – אריח מקסימלי של 2,048 אחרי האופטימיזציה – אריח מקסימלי של 32,784 רעיונות לשיפור: עומק עץ דינמי ושיטות להקטנת גודל העץ הפיכת הקוד למקבילי, ענפים בעץ ייסרקו במקביל. אפשר לנסות בעתיד: להשתמש ב- (Markov Decision Process) MDP במקום Expectimax

51 תודה מיוחדת לד"ר גבריאל בן סימון (גבי), מנחה הפרוייקט
תודה מיוחדת לד"ר גבריאל בן סימון (גבי), מנחה הפרוייקט. תודה לכל מחלקת מתמטיקה על 5.5 שנים מאתגרות ויפות.


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

Similar presentations


Ads by Google