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

Slides:



Advertisements
Similar presentations
Request Dispatching for Cheap Energy Prices in Cloud Data Centers
Advertisements

SpringerLink Training Kit
Luminosity measurements at Hadron Colliders
From Word Embeddings To Document Distances
Choosing a Dental Plan Student Name
Virtual Environments and Computer Graphics
Chương 1: CÁC PHƯƠNG THỨC GIAO DỊCH TRÊN THỊ TRƯỜNG THẾ GIỚI
THỰC TIỄN KINH DOANH TRONG CỘNG ĐỒNG KINH TẾ ASEAN –
D. Phát triển thương hiệu
NHỮNG VẤN ĐỀ NỔI BẬT CỦA NỀN KINH TẾ VIỆT NAM GIAI ĐOẠN
Điều trị chống huyết khối trong tai biến mạch máu não
BÖnh Parkinson PGS.TS.BS NGUYỄN TRỌNG HƯNG BỆNH VIỆN LÃO KHOA TRUNG ƯƠNG TRƯỜNG ĐẠI HỌC Y HÀ NỘI Bác Ninh 2013.
Nasal Cannula X particulate mask
Evolving Architecture for Beyond the Standard Model
HF NOISE FILTERS PERFORMANCE
Electronics for Pedestrians – Passive Components –
Parameterization of Tabulated BRDFs Ian Mallett (me), Cem Yuksel
L-Systems and Affine Transformations
CMSC423: Bioinformatic Algorithms, Databases and Tools
Some aspect concerning the LMDZ dynamical core and its use
Bayesian Confidence Limits and Intervals
实习总结 (Internship Summary)
Current State of Japanese Economy under Negative Interest Rate and Proposed Remedies Naoyuki Yoshino Dean Asian Development Bank Institute Professor Emeritus,
Front End Electronics for SOI Monolithic Pixel Sensor
Face Recognition Monday, February 1, 2016.
Solving Rubik's Cube By: Etai Nativ.
CS284 Paper Presentation Arpad Kovacs
انتقال حرارت 2 خانم خسرویار.
Summer Student Program First results
Theoretical Results on Neutrinos
HERMESでのHard Exclusive生成過程による 核子内クォーク全角運動量についての研究
Wavelet Coherence & Cross-Wavelet Transform
yaSpMV: Yet Another SpMV Framework on GPUs
Creating Synthetic Microdata for Higher Educational Use in Japan: Reproduction of Distribution Type based on the Descriptive Statistics Kiyomi Shirakawa.
MOCLA02 Design of a Compact L-­band Transverse Deflecting Cavity with Arbitrary Polarizations for the SACLA Injector Sep. 14th, 2015 H. Maesaka, T. Asaka,
Hui Wang†*, Canturk Isci‡, Lavanya Subramanian*,
Fuel cell development program for electric vehicle
Overview of TST-2 Experiment
Optomechanics with atoms
داده کاوی سئوالات نمونه
Inter-system biases estimation in multi-GNSS relative positioning with GPS and Galileo Cecile Deprez and Rene Warnant University of Liege, Belgium  
ლექცია 4 - ფული და ინფლაცია
10. predavanje Novac i financijski sustav
Wissenschaftliche Aussprache zur Dissertation
FLUORECENCE MICROSCOPY SUPERRESOLUTION BLINK MICROSCOPY ON THE BASIS OF ENGINEERED DARK STATES* *Christian Steinhauer, Carsten Forthmann, Jan Vogelsang,
Particle acceleration during the gamma-ray flares of the Crab Nebular
Interpretations of the Derivative Gottfried Wilhelm Leibniz
Advisor: Chiuyuan Chen Student: Shao-Chun Lin
Widow Rockfish Assessment
SiW-ECAL Beam Test 2015 Kick-Off meeting
On Robust Neighbor Discovery in Mobile Wireless Networks
Chapter 6 并发:死锁和饥饿 Operating Systems: Internals and Design Principles
You NEED your book!!! Frequency Distribution
Y V =0 a V =V0 x b b V =0 z
Fairness-oriented Scheduling Support for Multicore Systems
Climate-Energy-Policy Interaction
Hui Wang†*, Canturk Isci‡, Lavanya Subramanian*,
Ch48 Statistics by Chtan FYHSKulai
The ABCD matrix for parabolic reflectors and its application to astigmatism free four-mirror cavities.
Measure Twice and Cut Once: Robust Dynamic Voltage Scaling for FPGAs
Online Learning: An Introduction
Factor Based Index of Systemic Stress (FISS)
What is Chemistry? Chemistry is: the study of matter & the changes it undergoes Composition Structure Properties Energy changes.
THE BERRY PHASE OF A BOGOLIUBOV QUASIPARTICLE IN AN ABRIKOSOV VORTEX*
Quantum-classical transition in optical twin beams and experimental applications to quantum metrology Ivano Ruo-Berchera Frascati.
The Toroidal Sporadic Source: Understanding Temporal Variations
FW 3.4: More Circle Practice
ارائه یک روش حل مبتنی بر استراتژی های تکاملی گروه بندی برای حل مسئله بسته بندی اقلام در ظروف
Decision Procedures Christoph M. Wintersteiger 9/11/2017 3:14 PM
Limits on Anomalous WWγ and WWZ Couplings from DØ
Presentation transcript:

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

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

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

היסטוריה 1928 - ג'ון פון ניומן מפרסם את משפט המינימקס (Minimax Theorem). 1949 - "Programming a Computer Playing Chess" פורסם ע"י קלוד א. שאנון. 1951 - אלן טיורינג כותב תוכנה ראשונה בהשראת המאמר של שאנון. 1997 - "כחול עמוק" של 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"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אלגוריתם מינימקס 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אלגוריתם לפתרון 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 𝑒𝑚𝑝𝑡𝑦(𝐵 𝑖,𝑗 )

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

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

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

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

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

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

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

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

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

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

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

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