פרוייקט סיום בקורס מבוא לבינה...

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

Upload: others

Post on 29-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

1

2013

ספיר זן

בני גפנוביץ'

פרוייקט סיום בקורס מבוא לבינה מלאכותית

מרצה: פרופ' ג'ף רוזנשיין

מתרגל: יועד לוינברג

Page 2: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

2

תוכן עניינים 3 .................................................................................................... המשחק תיאור .1

4 .................................................................................................... הבעיות תיאור .2

2.1. A* - 4 ............................................................................ לפתרון הבעיה תיאור

2.2. Hill Climbing ........................................................................... 5

5 ........................................................................................................ הקוד תיאור .3

5 ............................................................................ (biniax.py) המשחק קוד .3.1

3.2. A* (ai.py)................................................................................................... 6

3.3. Hill Climbing (ai.py) ....................................................................... 6

7 ................................................................................................... וניתוחן תוצאות .4

4.1. A* ............................................................................................................. 7

4.2. Hill Climbing ............................................................................... 11

11 .................................................................................................... ומסקנות דיון .5

11 ......................................................................................... חבהלהר הצעות .6

11 ......................................................................................... הפעלה הוראות .7

Page 3: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

3

תיאור המשחק .1

Biniax 7*5-בנוי מוא משחק לוח הה ( משבצות. כל משבצת יכולה להיות ריקה, להכיל בלוקknight)

האפשריים צבעיםה 4מתוך ( מורכב מזוג של צבעים שוניםknightאו להכיל את השחקן. בלוק )

)אדום, כחול, צהוב, ירוק(.

שהוא יכול בלוקבודד, ובכל צעד הוא יכול לזוז למשבצת ריקה או למשבצת המכילה צבעלשחקן

ברגע שהשחקן .זהה לצבע של השחקן זוג הצבעים שלו, אם אחד מבלוקלאכול. שחקן יכול לאכול

שני של הבלוק שאכל. האוכל בלוק, צבעו מוחלף לצבע

למטה, ומתווספת שורה אחת צעדים של השחקן, כל האלמנטים בלוח )מלבד השחקן( מוזזים 3כל

שורת בלוקים בחלק העליון של הלוח.

מטרת המשחק היא לצבור מס' גבוה ככל הניתן של נק'. אכילת רצף של בלוקים מקנה מס' נק' גבוה

יותר )כתלות באורך הרצף שנאכל עד כה(.

ין לשחקן אפשרויות לזוז, והוא נדחף ע"י הבלוקים המוזזים בזמן ירידת שורה.המשחק נגמר כאשר א

:ת בלוקדוגמא לאכיל

:דחיפת שחקןדוגמא ל

;

Page 4: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

4

תיאור הבעיות .2

2.1. A* - תיאור הבעיה לפתרון

.קבל כמה שיותר נקודותולהמטרה של השחקן במשחק היא לשרוד

להיות אובייקט המשחק עצמו, המכיל מידע על מיקום וצבע השחקן, הלוח, המצב במשחק מוגדר

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

.והניקוד זהה. )כלומר אנו מתעלמים בהשוואה בין מצבים לדרך שבה הוא הגיע(

הלוח עם כמה שפחות בלוקים )כלומר שהוא אכל את אינטואיטיבית, השחקן היה רוצה לשמור את

כולם( כך הוא גם בטוח מפסילה, וגם יכול בקלות לאכול את הבלוקים הבאים.

בלוקים 4צעדים של השחקן מתווספים 3עבור כל , מכיוון של אינו אפשרי"המצב הננשים לב ש

נוספים ללוח.

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

עשוי להחזיר מסלול *Aלצורך נוחות, נקרא לערך זה עומק החיפוש )למרות שבפועל אלגוריתם ה

ארוך יותר(. בהמשך נראה ניתוחים שונים של ריצת האלגוריתם עבור ערכים שנתנו לקבוע זה.

עולם דינמי:

צריכים להתמודד עם הבעיה שבעת ביצוע המסלול בגלל שהמשחק הוא אקראי ודינמי בהגדרה, היינו

לא ניתן לביצוע.אף עיתים* תכנן העולם משתנה, ואז המסלול לא מעודכן, ולAש

מי, ומחזיר מסלול עולם דינאשלמדנו ומימשנו, מתמודד עם עולם סטאטי ולא עם *Aאלגוריתם ה

מריץ ברמת האלגוריתם ה עולם הדינאמי, מצב המטרה של הבעיה שהוגדרה לו. התמודדנו עם הל

הגדיר עד שמתקיים אחד התנאים *Aהחזיר. אלגוריתם זה מריץ את הצעדים ש *Aאת התוכנית ש

הבאים:

העולם השתנה. .1

. החזיר בוצעו *Aכל הצעדים בתוכנית ש .2

מחדש, עם הבעיה החדשה שנוצרה *Aכאשר אחד מהתנאים הנ"ל מתקיים, האלגוריתם שלנו יקרא ל

האחרונים. יםכבעקבות המהל

יוריסטיקות:ה

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

את האיכות של מצב כלשהו ולא את עלות ההגעה למצב מטרה.

Null Heuristic והופכת את 1, מחזירה תמיד 1: היוריסטיקת ,A ל *BFS.משמשת כבסיס להשוואה .

אדמיסבילית וקונסיסטנטית בצורה טריוויאלית

Manhattan Heuristic: אדמיסבילית - בצעדים שניתן לאכול מחזירה את המרחק לבלוק הכי קרוב

. 1וקונסיסטנטית עבור "עומק"

השחקן יהיה חמדן וינסה ללכת לבלוק הכי קרוב שהוא יכול לאכול, דבר שמייצר רצפי אכילה ומעלה

ממוצעת.מעט את התוצאה ה

Color Match Heuristic: שהשחקן השכנים ה את המצב לפי מספר הבלוקים יכמעריוריסטיקה זו ה

.(שמהמכאן והשחקן, הבלוקים שכנים לצבע מתאימה את הצבעים שלההיוריסטקה הזו ) לאכוליכול

Page 5: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

5

יותר אופציות מקומות, כך שיש יותרמצבים שבהם נקבל ערך טוב הם מצבים שבהם נוכל לזוז ל

פסל )נעדיף מצבים עם יותר חופש פעולה, מכאן שנוכל לברוח יפחות סיכוי להו לתנועה ולאכילה

.יותר(

Height Heuristic: היוריסטיקה זו מעריכה את המצב על פי גובהו של השחקן ומחזירה את ערך הy

של מיקום השחקן.

Color Match Height Heuristic: ובנוסף יורסטיקה הקודמת, ההה מצב כמו היוריסטיקה זו מעריכ

למצבים בהם השחקן במיקום גבוה על פני היא נותנת העדפה .Yבמיקום השחקן על ציר המתחשבת

דחף מחוץ י. ככל שהשחקן גבוה יותר יש לו פחות סיכוי להמצבים בהם השחקן במיקום נמוך יותר

יות לברוח.אפשרויותר ללוח כי צריך לדחוף אותו יותר זמן, ויהיו לו

2.2. Hill Climbing

. לעבור למצב העוקב הטוב ביותרבוחר שבהינתן מצב אלגוריתם זה הינו אלגוריתם חיפוש מקומי,

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

מיקום הנוכחי שלו בלוח.הבלוקים שאכל ברצף עד ל

, כאשר המס' לאכול ממנו ברצףמס' הבלוקים שניתן ל פיעוקב עהגדרנו את הציון של מצב

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

בחנו שתי וריאציות של האלגוריתם:

אלגוריתם שאינו מתחשב באורך הרצף עד למצב הנוכחי. .1

יון שהוגדר מקודם אלגוריתם המתחשב באורך הרצף עד למצב הנוכחי. אלגוריתם זה הוסיף לצ .2

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

תיאור הקוד .3

מכיל את קוד ההרצה של המשחק. biniax.py. כאשר biniax.py ,ai.pyהפרוייקט מורכב משני קבצים:

מכיל את מימוש האלגוריתמים שתיארנו. ai.pyו

(iniax.pybקוד המשחק ) .3.1

אחריות על הצלילים והתצוגה של המשחק. Sprite ,Sound המחלקות: -

מייצגת בלוק. Knightהמחלקה -

, המגדיר אם הבלוק מופיע על הלוח statusו knightהמייצגים את צבע ה coat1,coat2פרמטרים:

)בלוקים לא נמחקים, הם רק נעלמים מהלוח(.

היא לב המשחק. BiniaxGameהמחלקה -

שמתחילה משחק. בעת ()startהפונקציה הראשית שלה היא פונקציית :()startפונקציית

תבוצע לולאת המשחק הראשית, שתרוץ כל עוד המשחק לא נגמר. startהקריאה ל

פעולות הלולאה:

.GUIצייר את ה .1

(:aiPalnאם לא קיימת תכנית פעולה ) .2

a. קרא לaiMove() ועדכן את תכנית הפעולה. הפונקציהaiMove() תייצר את תכנית

הפעולה עפ"י הסוכן שהוגדר לתכנית.

אחרת: .3

a. .בצע את הפעולה הראשונה בתכנית

Page 6: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

6

b. את קטןהwaiter פרמטר זה 1-ב( מגדיר מתי יבוצעscroll down למסך)

ים שייצר המשתמש, כגון לחיצות evnentשקרו )טיפול ב pygameטפל באירועים של .4

מקשים(

: אם .5

a. גלול את המס( ךScroll down.)

b. קרא לaiMove() .ועדכן את תכנית הפעולה

c. עדכן אתwaiter ( 3למהירות המשחק.)

. אם X (UP, DOWN, LEFT, RIGH)פונקציות אלה מזיזות את השחקן על פי :moveXפונקציות

מאופס, אחרת הפונקציה comboCounterכתוצאה מהפעולה לא נאכל בלוק, המשתנה

canDisable נקראת. פונקציה זו אחראית על עדכון צבע השחקן, עדכון הניקוד ועדכון ערך ה

comboCounter.

יכול לאכול בלוק coatמחזריה ערך בוליאני המציין האם שחקן בצבע :canDisableפונקציית

== update. אם updateפונקציה זו מקבלת כפרמטר ערך בוליאני: .(posx,posy)שנמצא במיקום

Trueהיא מעדכנת את: צבע השחקן, הניקוד וערך ה , comboCounter.

3.2. A* (ai.py)

שהשתמשנו בו, הוא האלגוריתם שמימשנו בתרגיל הראשון של הקורס. כתבנו *Aאלגוריתם ה

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

clearBoardProblem

:הגדרת מצב

Depthומספר BiniaxGameמצב עבור הבעיה הוא זוג שמכיל אובייקט

:מצב מטרה

.depth =0מצב בו

:יורשים

עלה, היורשים של מצב מורכבים מהמשחק אחרי תזוזה של השחקן לכיוון מסוים )למ

יורד באחד. Depthאם בתזוזה נאכל בלוק, ה למטה, ימינה , שמאלה( וחוקי.

המצב לא סופר את מספר הצעדים שעשה השחקן ולכן לא גולל את הבלוקים.

3.3. imbinglHill C (ai.py)

, הן למעשה פונקציות המחשבות ai.pyהמופיעות ב hill climbingשתי הגרסאות של אלגוריתם ה

מי מבין השכנים הוא השכן ה"טוב ביותר" עפ"י פונקציית ההערכה שלהן, והן מחזירות צעד בודד

היא זו שמריצה אפקטיבית את ()aiMoveלונשנית הקריאה החוזרת שנמצא. שכןלכיוון ה

מכיוון שבכל איטרציה של הלולאה הראשית מחושב ומבוצע צעד Hill Climbingאלגוריתם ה

בודד.

מציאת השכן הטוב ביותר:

.(צבע השחקן)המכיל לוח משחק, מיקום השחקן, hillClimbingStateהגדר מצב מסוג .1

.'UP'אם לא קיימים מצבים עוקבים, החזר .2

לכל מצב עוקב למצב הנוכחי: .3

a. המצב העוקב.חשב את ציון

b. :אם במעבר למצב זה נאכל בלוק

i. 1'( הגדל את ציון המצב בא)גרסה .

ii. ובערך ה 1'( הגדל את ציון המצב בב)גרסהcomboCount.

עם הבעיה *Aקרא ל, *Aל 1, הגדר בעיית חיפוש בעלת עומק 1 אם ציון כל המצבים הוא .4

והחזר את הצעד הראשון שהיא מחזירה.הנ"ל

Page 7: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

7

10000

100000

1000000

10000000

Manhattan Color Null Height Color Height

ע צמו

מד

קוני

(מי

תרי

גולו

)

ניקוד ממוצע לפי היוריסטיקה

ניקוד

אם קיימים מס' צעדים בעלי ציון זהה, בחר החזר את הצעד למצב בעל הציון הגבוה ביותר. .5

אחד מהם באופן רנדומלי.

חישוב ציון מצב עוקב

לאכול ברצף מס' הבלוקים שניתן רקורסיבית והמחפשת את BFSפונקציה זו היא פונקציית

)שניתן לה depthלכל היותר מחפשת רצף שאורכו הואניתן לה כקלט. הפונקציה מהמצב ש

.כקלט(

וניתוחן תוצאות .4

היה זהה למצב המטרה *Aנציין שבתחילת תהליך פתירת הבעיה, מצב המטרה שהגדרנו להערה:

)מטרה : אכילת בלוק(, וחיפשנו דרך נוספת לפתרון 1עומק ב clearBoardProblem של הבעיה

.Hill climbingשעשויה לשפר את התוצאות. הדרך שבחרנו לבחון הייתה פתרון בעיה בעזרת

על פני *Aבתוצאות שלהלן, ניתן יהיה לראות עליונות ברורה של סוכנים שהריצו את אלגוריתם ה

.Hill Cimbingסוכנים שהריצו את אלגוריתם ה

4.1. A*

. עבור כל אחת מההיוריסטיקות ועבור כל *Aלהלן תוצאות המשחקים שהריצו את אחד מסוכני ה

משחקים וחישבנו את ממוצעי הנקודות של משחקים אלה. 111עומק חיפוש הרצנו

, הרצנו מס' בודד של משחקים, מכיוון Color Hightו Heightבהיוריסטיקות 5-ו 4עבור עומקים הערה:

שהרצנו ערך מס' שעות. שכל משחק

היוריסטיקות .4.1.1

ננתח את .1-5הטבלה הנ"ל מציגה ניקוד ממוצע של כל היוריסטיקה על פני כל ההרצות בעומקים

המוצג בטבלה לכל היוריסטיקה בנפרד.

Page 8: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

8

1000

10000

100000

1000000

10000000

1 2 3 4 5

ד קו

ני(

מית

רגו

לו )

ניקוד של היוריסטיקות לפי עומק חיפוש

Manhattan

Color

Null

Height

Color Height

Manhattan: היורסטיקה לא מוצלחת, עם ביצועים פחות טובים מאשרBFS(Null) ציון ממוצע של ,

בלוקיםהיוריסטיקה שתפעל בדומה לשחקן אנושי, שינסה לאכול כל הזמן את ה. חשבנו על 34,111

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

נדחפת ונפסלת. היא ,לבצע את התוכנית שלה

Color Match: מוצלחת יותר מManhattanאך עדיין פחות טובה מ ,BFS וד ממוצע של . ניקבמעט

המחשבה .כמה שיותר בלוקיםיפה מקומות שמהם נוכל לאכול מעדזו היוריסטיקה .45,111

הסוכן ( בשביל יותר ניקוד, ובנוסף comboיותר אכילות רצופות ) ובכך יתאפשרמאחוריה הייתה ש

ידחף למטה.יובכך אף בלוק לאכול וכלבהם לא ילפחות מצבים קלע י

Null* הרצה של :A כBFS, משמשת כבסיס להשוואה, תוצאות לא רעות כנראה בגלל המיעוט היחסי

ן בעיות כמו ההיוריסטיקות . נקלעת לאות44,111של הפעולות האפשריות והלוח הקטן. ניקוד ממוצע

מה לאכול(.ב בוא אין למצ גלל התעלמות מאפשרות הדחיפה, או הגעה)פסילה ב האחרות

Height: מעריכה את המצב אך ורק לפי גובה .היוריסטיקה פשוטה ביותר עם ביצועים מעולים

המחשבה מאחורי ההיוריסטיקה הייתה לגרום לשחקן לשרוד כמה שיותר זמן, כי ככל שהוא .השחקן

. ביצועים מעולים 146,111יהיה גבוה יותר, יהיו פחות השלכות לכך שיידחף למטה. ניקוד ממוצע של

בהתאמה. 3, 2, 1עבור עומקי חיפוש 12ו 11, 4חיפוש, עם שיפור של פי בכל עומק

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

Color Height: שילוב של היוריסטיקתColor והיוריסטיקתHeight 221,111, ניקוד ממוצע של

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

לבדה. Heightנפסלה, לכן קשה להגיד אם אכן עדיפה על פני

עומק החיפוושהשפעות .4.1.2

Page 9: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

4

1000

10000

100000

1000000

10000000

0 1 2 3 4 5 6

ע צמו

מד

קוני

(מי

תרי

גולו

)

עומק החיפוש

ניקוד ממוצע לפי עומק חיפוש

)ניקוד) .Expon ניקוד

כפי שניתן לראות, העלייה .וצע של כל היוריסטיקותמחיפוש השפיע מאוד על הניקוד המהעומק

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

.5-ו 4גבוהים )מאה אלף( עבור עומקי חיפוש של

עד מאקספוננציאלי, גבוהעומק החיפוש בות ביותר שלנו, השיפור שמביא יוריסטיקות הטוהעבור ה

.סלכמעט ולא נפ סוכןה Color Heightו Heightהיוריסטיקות העבור 5ו 4לכך שבעומק חיפוש

כנית . השילוב בין התכנון לטווח רחוק )תמיליון 11נאלצנו לסיים את המשחק שלו כשהגיע לניקוד של

)שנובעת מכך מטית בפסילות בעת ביצוע התוכנית רבלוקים( עם ההפחתה הד 5או 4לאכול

.מאפשרים לשחקן לשחק לכאורה בלי סוף (הניתןה בלוח ככל שהשחקן מנסה להישאר גבו

מאט מאוד את האלגוריתם ונהיה לא יעיל, במיוחד בהתחשב בתוצאות 5מעבר ל עומק חיפוש

.5ו 4שמקבלים עבור עמוק חיפוש

Page 10: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

11

4.2. Hill Climbing

בשרטוט מייצגת ציון נקודהכל . Hill climbingלהלן תוצאות המשחקים שהריצו את אחד מסוכני ה

או השנייה בעומק חיפוש בגרסה הראשונה Hill Climbingמשחקים של סוכן שהריץ 111ממוצע של

.מסוים

4.2.1. Hill Climbing Version 1

סוכן, קיימת מגמת עלייה בניקוד הממוצע של 3מהגרף הנ"ל ניתן לראות שעד לעומק

. בנוסף, ניתן לראות שהגדרת עומק Hill Climbingשהמנוע שלו הוא הגרסה הראשונה של

כרת את תוצאת המשחק ולעיתים אף גורעת ממנה.חיפוש גדול יותר, לא משפרת בצורה ני

צעדים לוח המשחק משתנה, והחישוב 3אנחנו מניחים שאין שיפור בתוצאות מכיוון שלאחר

השוואה בין שני הסוכנים בסעיף ב) comboשלנו לא מתייחס לזה, ומכיוון שאין התייחסות ל

, נרחיב בנושא(.4.2.3

4.2.2. Hill Climbing Version 2

סוכן, קיימת מגמת עלייה בניקוד הממוצע של 7ניתן לראות שעד לעומק מהגרף הנ"ל

. comboהמתחשבת בערך ה Hill Climbingשל שנייהשהמנוע שלו הוא הגרסה ה

. אנחנו 7-לא מצאנו סיבה לירידה בנקודות שהשיג שוכן שהעומק החיפוש שלו היה גדול מ

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

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

4.2.3. V1 vs. V2

שהריצו את הגרסה הסוכנים, ממוצע הנקודות של 4גרף הנ"ל, ניתן לראות שעד עומק מה

שהריצו את הגרסה השנייה, הסוכניםמוצע מגבוה יותר מ Hill climbingהראשונה של

, הגרסה השנייה טובה יותר.5ק ושמעומ

מכיוון שהגרסה השנייה מוסיפה :4עליונות של הגרסה הראשונה עד עומק הסבר אפשרי ל

אין ששיתכן , עם ציון נמוך, היא עשויה לבחור במהלך comboלציון המחושב את אורך ה

0

1000

2000

3000

4000

5000

6000

7000

8000

0 1 2 3 4 5 6 7 8 9 10

דקו

ני

עומק חיפוש

HC1

HC2

Page 11: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

11

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

ר, הוא מקבל עדיפות על פני הישרדות של הסוכן.גדול יות comboכלומר, ככל שהיותר.

המריץ את האלגוריתם הראשון לא מס' הנקודות הממוצע של סוכן, 3נשים לב שמעומק

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

ככל הסבר אפשרי לכך הוא ש(. 7פוש גדול יותר )עד לעומק השני, גדל ככל שעומק החי

)בגלל שהציון של מצב קטן comboחיפוש בעומק גדול יותר, היתרון היחסי שיש לערך ההש

, ומוריד את הסיכוי לבחור במצב שאפשרויות ההתקדמות ממנו עוקב יכול להיות גדול(

מועטות.

דיון ומסקנות .5

ת עיקריות:מהתוצאות נראה כי יש שתי מסקנו

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

בכל ההיוריסטיקות. *Aוהן בתוצאות של Hill Climbingבכך הן בתוצאות של

הדבר מתאים לצפיות שלנו, מפני שהמשחק דינמי, ולא הגיוני שסוכן שלא מתכנן מראש

ישיג ניקוד גבוה.מספר מהלכים,

ישרדות שהתמקדו בהשתמשו בהיוריסטיקות כנים שהוסישרדות היא קריטית. הצלחת הה .2

( טובה בכמה סדרי גודל מאשר שאר הסוכנים שלנוColor Heightו Heightבניקוד )ולא רק

.רב( ניקוד )שמתמקדים בניסיון לצבור

כמות הנקודות יותר מה שרדות חשובהישבמשחק מסוג זה, הה השערהמאשש את ההדבר

אם נשרוד הרבה ,גם אם נקבל פחות נקודות עבור פעולהמכיוון שבכל פעולה, הנצברות

יותר זמן, הניקוד הסופי יהיה גבוהה יותר.

הצעות להרחבה .6

לאחר שמצאנו מס' סוכנים שלכאורה משחקים בלי סוף, הצעד הבא שהיינו רוצים לבחון הוא

ספר בחינות:ממ מציאת הסוכן היעיל ביותר

o נרצה שניקוד הסוכן יגדל מהר ככל הניתן.מהלךמס' נקודות ממוצע ל .

o מס' המצבים הממוצע שאלגוריתם הA* החזרת הפתרון מבקר בהם לפני

(expended nodes.)

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

.שורה, מס' הצבעים בלוח, גודל הלוח

ואולי אף לשלב בין משחק תלוי התמודדות עם משחק המשתנה לפי זמן ולא לפי מס' צעדים .

ובלוקים היורדים כל כמה זמן(. 71על 51זמן, ושינוי פרמטרים )לדוגמה לוח של

הוראות הפעלה .7

. פלטפורמה זו מותקנת על Pygameעל מנת שהמחק ירוץ, על המחשב צריך להיות מותקן הערה:

המעבדה.מחשבי

לתיקייה. היכנס לתיקייה והרץ את הפקודה: zip :BiniaxAi.zipחלץ את הקבצים שבקובץ ה

$> python biniax.py -h

Page 12: פרוייקט סיום בקורס מבוא לבינה מלאכותיתai/projects/2012/biniax/files/biniaxAInoID.pdf · 6)ךסמל scroll down עצובי יתמ רידגמ הז רטמרפ(

12

usage: biniax.py [-h] [-ng N] [-A depth] [-heu name] [-hc depth] [-hcc depth] [-o O] Gameplay version 1.0, Software version 1.0.py Original concept and gameplay by Jordan Tuzsuzov, (C) 2005 For more information visit : http://www.tuzsuzov.com optional arguments: -h, --help show this help message and exit -ng N Number of games to run -A depth A* brain, will search for a path to eat [depth] pieces -heu name The heuristic to be used with the A* brain, [n]ull (default), [c]olor match, [cy]color match and height, [y]Height or [m]anhattan distance -hc depth Hill Climbing brain -hcc depth Hill Climbing brain, that takes its current combo into account -o O filename to save the score results to

לקבל:על המסך יופיע מסך העזרה המפרט את הפרמטר שהתוכנית יכולה

. לדוגמא, הרצת הפקודה הבאה, תפעיל את המשחק פעם הרץ את המשחק עם הפרמטרים הדרושים

:Heightבלוקים לאכילה, עם ההיוריסטיקה 4המחפש מסלול עם *Aאחת, לסוכן המריץ

המשחק בלי פרמטרים.כדי לשחק במשחק המקורי )בלי סוכן(, יש להריץ את

$> python biniax.py –A 4 –heu y