+ All Categories
Home > Documents > דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf ·...

דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf ·...

Date post: 02-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
21
ב רובוטים למידת רובוקוד סביבת שימוש תוך מחיזוקים ובלמידה גנטיים באלגוריתמים בקורס סיום פרויקט: ) 67842 ( מלאכותית לבינה מבוא מרצה: ג' רוזנשיין ף מתרגל: לירון כהן מגישים:
Transcript
Page 1: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

  

תוך שימוש סביבת רובוקודלמידת רובוטים ב באלגוריתמים גנטיים ובלמידה מחיזוקים

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

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

כהן לירון: מתרגל

: מגישים

Avi
Typewritten Text
Arial, Eran & Tomer
Avi
Typewritten Text
Avi
Typewritten Text
Page 2: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

2  

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

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

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

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

Reinforcement Learning by implementing SARSA algorithm 

Genetic algorithm 

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

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

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

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

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

.יהזזוהי סימולציה אך כמו כל סימולציה היא משלבת בין מציאות ופנט

 :מציאות. למיקום מסוים כבר לא רלוונטיתייתכן שרובוט היריב בתנועה והזזת הצריח –סיבוב הצריח גוזל זמן .1

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

 . היריב כאשר הוא מחשב את כיוון הירי

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

 .לא מאפשר יריות רבות בזו אחר זו חימום של הקנה .4 .בקירות מורידה את האנרגיה הכוללתהיתקלות .5

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

 .נותרת של היריב .מה דמיוניתומוקפת ח, הקרבות מתרחשים בסביבה מישורית נטולת מכשולים .3

י לו ממשק משתמש ויזואליש , ראשית .יש לו שני יתרונות עיקריים, אינו סימולטור אידיאלי RoboCode -ש למרותבנוסף רובוקוד היא קהילת קוד פתוח פעילה . השפעה יש לשינוי ולו הקל ביותר בקוד והמאפשר לראות בפועל איז

Page 3: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

3  

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

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

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

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

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

  .מנע ואובדן אנרגיה מיותריולה, ולכן יש לירות רק כאשר אפשר, )דיו ריתקרלא . ובו בזמן למנוע מהיריב שלו למדל אותו, על הרובוט למדל את התנהגותו של היריב בעולם הוירטואלי .3

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

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

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

.ונגל'ה קיצונית של חיי הגימולציס

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

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

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

, כדור שפגע במטרה, כדור הפוגע ברובוט, אירועים אלה כוללים זיהוי יריב . עודופגיעה בקיר

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

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

.שזוהי האסטרטגיה הכוללת שלו) במיוחד

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

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

 1 תמונה

Page 4: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

4  

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

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

.עליון קבוע על המהירות

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

כלל אצבע הוא לא ליצור רצפי פעילות ארוכים מדי מכיוון . כדי שהיריב יוכל לנוע, נפרד ‐Threadכל רובוט ממומש כרצף פעולות קצר דרוש בדרך כלל כדי להגיב . פעמים על ידי האירועים השונים שהתכנית מופרעת מספר רב של

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

 )sensors( חיישנים

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

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

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

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

. נעל על האויב ולפגוע בוילבסוף רובוטים עוקבים ינסו לה. לירות בעתיד

package man; import robocode.*; public class BasicRobot extends Robot { public void run() { while (true) { ahead(100); turnGunRight(360); back(100); turnGunRight(360); } } public void onScannedRobot(ScannedRobotEvent e) { fire(1); } } 

Page 5: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

5  

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

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

והיא , פעולה זו היא המדיניות של האלגוריתם .)actuators(לים יפעהמידי -הממומשת על האפשרית ממצב זה ניםהיזו במהלכוניסוי וטעייה תהליך של נעשה באמצעות דבר זה .העתידי האפשרי" פרס"מנסה למקסם את ה

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

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

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

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

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

.KB200ת על יכול לעלו

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

ידנו לאחד -ומתורגם על, במעלות יתוהמייצג זו ,0-360בטווח , לפי הטבלה הבאה נעשהטווח הערכים צמצום. מארבעה כיוונים

 :1ר בתרשים וכמתואo 0 מופה לערך 359° ‐ 315°, 44° ‐ 0°: קדימה.  

o 1מופה לערך 134° ‐ 45°: ימינה. 

o 2מופה לערך 224° ‐ 135°: אחורה. 

o 3מופה לערך 314° ‐225°: שמאלה. 

 

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

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

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

o 0 ‐ 29 0 מופה לערך. 

o 30 ‐ 59 1 מופה לערך. 

o 19 מופה לערך +570: הטווח וכן הלאה כאשר.  .שונים אפשרייםערכים 20-למרחקים צמצמנו את מרחב ההכל -בסך

 1 תרשים

Page 6: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

6  

לבין ,של הרובוט הרובה קנההזוית היחסית בין ה מייצג את נתון ז :המטרה ויתוזאך , נתון זה נראה אולי מוזר במבט ראשוני. קט המטרה שלנויאוביזווית הגוף של

המייצג , של הרובוט הגוףבדומה לנתון לגבי כיוון . טומן בחובו הגיון אסטרטגיהוא במידה היריב וז הרובוט זה מייצג לאן עשוי לזנתון , לאן הוא מסוגל לזוז ברגע זה

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

כאשר הפעם זווית זו , מספר ממשי ידי-על תמיוצג גם זווית זו, בדומה לכיוון הראששוב ביצענו מיפוי דומה לזה של כיוון הרובוט . מעלות °180 -ל -°180 היא בטווח

מיפוי .1.1תיאור הזווית עצמה מתואר בתרשים .1כמתואר בתרשים , 0-3לטווח   .מימינו או משמאלו, מאחוריו, זה מייצג האם הרובוט נמצא לפני הרובוט שלנו

 

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

 

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

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

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

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

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

:של הרובוט שלנו הינו

תנועה קדימה 

תנועה אחורה 

ופנייה ימינה, תנועה קדימה 

תנועה קדימה ופנייה שמאלה 

תנועה אחורה ופנייה ימינה 

יה שמאלהתנועה אחורה ופני. 

   2 תמונה

Page 7: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

7  

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

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

שינויים ברמות האנרגיה מתרחשים .אשר נובעים מהאופי השונה של פעולות שונות, תגמולים שליליים וחיוביים : במספר מצבים

עלייה באנרגיה: o רובוט ירה ופגע ברובוט אחר . 

ירידה באנרגיה : 

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

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

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

.שתנה בהתאםתהמדיניות

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

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

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

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

Page 8: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

8  

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

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

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

:ת למה שנלמד עד כה באמצעות הנוסחא הבאהת התגמול החדש מתווספמדיד

 

1 נוסחא

:כאשר

Qt+1  – הערך החדש של הפעולהa ממצבst.

Qt  – הערך הקודם של פעולה זו.

Rt – תגמול מיידי שהתקבל לאחר ביצוע הפעולה.

maxQ – הערך המקסמילי עד כה .

α – 1 –קטן מ , חיובי, קצב הלמידה.

ϒ – שונה בחישוב לתגמולים עתידיים בהשוואה לתגמול נועד להעניק מעמד. 1 –קטן מ , חיובי –מקדם דעיכה .נוכחי

מימוש האלגוריתםחוזרים על עצמם 2השלבים בחלק . Sarsaל מתאר את זרימת התכנית בהתאם לאלגוריתם "הגדרת הפעולות הנ

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

:סדר פעולות -קוד -פסודו

 )עבוד לפיו –אם קיים קובץ תוצאות קודם (התחל משחק .1 :ידי אירוע-ובמידה והלולאה הראשית הופרעה על, כל עוד הקרב לא הוכרע .2

i. בדוק באיזה מצב אתה נמצא. 

ii. 1בהסתברות-ε בחר פעולה בעלת ערך מקסימלי מבין הפעולות האפשריות ,

 .בחר פעולה רנדומלית εובהסתברות

iii. עולהבצע את הפ. iv. ידי הפרש האנרגיה בין המצב הקודם למצב החדש-קבל את התגמול המבוטא על. v. במקום של המצב המתאים, שמור את התגמול שהתקבל לפי הנוסחא. vi. אש –במידה ואותר רובוט יריב! 

 .עדכן את קובץ התוצאות/שמור .3

Page 9: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

9  

0%

20%

40%

60%

80%

100%

תנוחונצ

זי חוא

ע וצממ

אסטרטגיית היריבמבוססת תנועה מהירה↔ מבוססת תקיפה

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

 .אחוזים מהמשחקים 70 –הצליח לנצח ב כמות ניצחונות (תוצאות הלמידה לפי הפרמטר שהגדרנו -השוואת הרובוט שלנו מול רובוטים אחרים

 :)1גרף ( לא היו חד משמעיות  )לאחר למידה, מתוך כמות רצופה של משחקיםo   ניתן , והתאפיינה בתזוזות מהירות, הייתה דינמית במיוחדמול רובוטים שהאסטרטגיה שלהם

 . )אחוזי ניצחון 10( והרובוט שלנו ספג מפלה, לומר שהלמידה לא הייתה מוצלחת במיוחד

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

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

.ניצחונותאחוז 65-85 כ"סה. הצליח לפגוע בו תוך צמצום פגיעה מהצד היריב

 

1 גרף

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

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

:תוצאות הלמידה בפרמטרים אחרים

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

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

ת הנקודות היחסית הנצברת גבוהה יותר כמו –בדומה לכמות הנזק הנגרם –כמות נקודות נצברת .צחונות מועטה יחסיתיצחונות גם בסבבי משחקים עם כמות נימכמות הנ

Page 10: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

10  

:תוצאות שנובעות משינוי פרמטרי הלמידה

עבורϒ המסמל הענקת חשיבות זהה לתגמולים בהווה מול תגמולים עתידיים, )1קרוב לערך ( גבוה ,משום .יריבאמצעות בגרימת נזק ותהתמקד על פני, ול היריבמת וחיפוש עמדה שלט החיראינו נטייה לבר

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

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

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

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

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

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

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

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

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

 . יורדות לטמיון

3תמונה

Page 11: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

11  

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

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

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

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

  הכרומוזום – אפיון אסטרטגיה

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

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

התנגשות ביריב 

התנגשות בקיר 

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

ופיתאינס בלולאה, רצה לכל אורך המשחק, השיטה הראשית – ריצה. 

מרחב הפעולות :בחרנו להתייחס לשמונה פעולות עיקריות

קדימה או אחורה(נסיעה(  פנייה שמאלה 

פנייה ימינה 

סיבוב הקנה שמאלה 

סיבוב הקנה ימינה 

סיבוב הרדאר ימינה 

סיבוב הרדאר שמאלה 

ירייה 

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

י בתחילה וגנטי לכאשר הבחירה של רביעית הפעולות נעשתה באופן רנדומ, ינווארבע פעולות מתוך השמונה שצ .מכן-לאחר

Page 12: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

12  

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

:כמחרוזת שבההוצג ) אסטרטגיה(כל כרומוזום

6 –שיטות להתמודדות עם אירועים ביטים 3: כל פעולה, 4 –כמות פעולות לשיטה. ביטים 4 –ר לשיטה הפרמטר המועב ביטים 2 –זוג המשתנים הבוליאניים.

: על ידי, אם כך, גודל הכרומוזום נתון

.ביטים 3 +4 = (170( X 4 X 6+ 2) = פרמטר + פעולה ( Xכמות הפעולות לשיטה Xשיטות + בוליאנים

ואופן התפתחותן, יצירת האסטרטגיות ביטים כל אחת 170באורך , גודל האוכלוסייה, זות התחלתיתכמות מחרויצרנו באופן רנדומלי : 1שלב .

 . כרומוזום, כל מחרוזת מייצגת אסטרטגיה

תרגום כל מחרוזת רנדומלית לקובץ קוד המאפיין רובוט יחיד במשחק :2שלב . 

כל האסטרטגיות מדורגות בסדר יורד לפי כמות הנקודות . כל רובוט מנסה את מזלו במשחק: 3שלב . ט ששיחק לפיהןשצבר הרובו

המייצגות . את גודל האוכלוסייה שבחרנו בהתחלה תמחדשות בכמות התואאסטרטגיות תריצי :4שלב : כל אסטרטגיה כזו נוצרת לפי .את דור ההמשך

o הבחירה נעשית אקראית כאשר הסיכוי . מתוך הדור הקודם, הורים, בחירת זוג אסטרטגיותוכך 0.125השלישית 0.25השנייה , 0.5הוא , תרהחזקה ביו, לבחור את האסטרטגיה הראשונה

 . הלאה

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

o מוטציה –בחירת ביט אקראי והפיכת ערכו. 

3חזרה לשלב.  

 

2 תרשים

Page 13: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

13  

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

ניתן לצבור אף , י התנגשות"למשל אם רובוט משמיד יריב ע, אולם במקרים מיוחדים, נקודות 180מקנה ' חלק' .יותר נקודות

1הרצה ביט אחד ( לעיל גיות יצרנו כמתואראת האסטרט. אסטרטגיות  16מונההבסבב הראשון יצרנו אוכלוסייה ראשונית

ובחירה של זוגות ההורים לפי התפלגות אקראית המתאימה לטור הנדסי יורד , הנבחר אקראית ביצירת דור חדשכמות הנקודות . דורות לא נראה שיפור משמעותי 100שגם לאחר 2בגרף ניתן לראות , )  …0.125 ,0.25 ,0.5

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

 

2 גרף

 

0.00

2.00

4.00

6.00

8.00

10.00

12.00

14.00

16.00

1 11 21 31 41 51 61 71 81 91

16:גודל אוכלוסייה80:מספר דורות

RoboGP Score

דור

 מספר נקודות

Page 14: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

14  

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

בדורות המתקדמים הייתה מגמה , שצברו כמות בודדת של נקודות אם בכלל ,מול הדורות הראשונים: בולטתאבל לאחר מכן ראינו ירידה . )3גרף (. בממוצע !)נקודות אפשריות 180מתוך (נקודות 160לחיובית שהגיעה עד

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

.הדיח אסטרטגיות טובות יותרלולהסתנן באופן מקרי לאורך מספר דורות

 

3 גרף

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

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

:שינויים שערכנו לאחר מכן כללו

5-ל 1-מ הגדלת היקף המוטציות. 

5לכל דור מול 1סיבוב (ורך סיבובים רבים יותר בכל דור מדידת ביצועים לא( . 

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

   

0

20

40

60

80

100

120

140

160

180

1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76

100:גודל אוכלוסייה80:מספר דורות

יריב

הלומדהאלגוריתם

דור

מספר נקודות ממוצע

Page 15: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

15  

3הרצה  ניתן לראות ברף להלן

ם מתוך דור הרובוטים האחרון הייתה רבה יותר ועמדה כמות הרובוטים המנצחי  :הביאו לשיפור ניכר שינויים אלו . 100רובוטים מתוך 50על

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

 

4גרף

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

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

  .)1000-מעבר לניקוד ואילו כאן באופן קבוע בכל דור ישנו רובוט אחד המקבל

0

200

400

600

800

1000

1200

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61

Population size 5050 generations

avg Fire ‐ Avg

avg RoboGP ‐ Avg

avg RoboGP ‐Max

Page 16: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

16  

מסקנות 

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

).2גרף (הנקודות 14דורות לא הצלחנו לעבור את רף 100גם לאחר  )הקטנה ביותר שהרצנו(פרטים וכך להגיע לאסטרטגיות , הדבר הגיוני משום שממבחר גנום גדול ניתן ליצור פרמוטציות מגוונות יותר

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

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

Page 17: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

17  

סיכום והשוואה בין האלגוריתמים, )או אורגניזמים ככלל(אדם - במשך דורות רבים ניסו מדענים להכריע בשאלה מה משמעותי יותר אותנו כבני

עבודה זו מתייחסת . או דברים שנמסרו לנו בעזרת הגנים, דברים שאני לומדים במהלך חיינו. הסביבה או התורשה . לשאלה זו באופן שונה

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

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

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

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

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

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

הטוב ( SARSAבין רובוט המאומן בטכניקת ערכנובקרב ש ,על אף הקושי בהכרעה בין האלגוריתמים, יחד עם זאת

.75%חונות של ציעם אחוז נ, SARSAניצח הרובוט , )הטוב ביותר( תגנטימאומן מול רובוט ה, )ביותר

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

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

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

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

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

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

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

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

.של השפעות סביבתיות ותורשתיות

Page 18: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

18  

דגימות קוד 1נספח

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

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

 

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

מקבל את אחת משש הפעולות שהוגדרו מראש

לפי המדיניות מהמצב לאחר ביצוע . הנוכחי

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

מחושבים שניהם ונשלחים .לאלגוריתם הלומד

Page 19: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

19  

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

Page 20: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

20  

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

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

 .הכרומוזום עובר מספר קבוע של מוטציות לפני יצירתו של הרובוט הבן

 

Page 21: דוקובור םיקוזיחמ םייטנג םימתירוגלאבai/projects/old/Robocode.pdf · ילאוזיו שמתשמ קשממ ול שי ,תישאר .םיירקיע תונורתי

21  

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

 

 

 

 

 

 


Recommended