.. (לתיקייה המכילה) | ||
מה נדרש ממני בשאלות 1 ו2? למה הכוונה "איזה מידע נחוץ כדי לייצג כל אופרטור"? | |
בשאלות 1,2 עליכם פשוט להסביר את השדות המרכיבים את מבנה הנתונים של מצב וצומת, לפי המימוש המופיע במחלקות שצויינו בשאלה. אין צורך לנסות להבין איזה מידע "נחוץ" ואיזה לא. |
בוריאציה המוסברת בשאלות 3-4, מה מייצגת סדרת המיקומים x0,x1,...? | |
x0 מייצג את המיקום הראשוני של השחקן (לפני הקפיצה) x1 ייצג את המיקום של השחקן הראשון לאחר שקפץ מעל הכלי הראשון. כלומר, זהו לא המיקום של כלי היריב אלא המיקום של המשבצת הריקה שבה נחת השחקן. באופן דומה ניתן לייצג את המשך הסדרה. |
האם יש דרישה מפורשת שהשחקנים שאני בונה בשאלות 8-11 ינצחו את simple player? | |
לא. מכיוון שלא ניתן להבטיח כי שיטות יוריסטיות הנשמעות הגיוניות יעבדו, אין דרישה מפורשת לנצח את הsimple player. עיקר הדגש הוא על מציאת שיטה שנשמע שסביר שהיא תשפר את ביצועי השחקן, ולאחר מכן ביצוע ניתוח מעמיק המסביר מדוע השיטה שלכם הפסידה\ניצחה תחת אילו מגבלות זמנים. |
האם מותר לי לעשות שינויים בקוד של התרגיל? השאלה רלוונטית במיוחד לקוד של מינמקס ולייצוג מצב. | |
אם תרצו לעשות שינויים בקוד של התרגיל (שימוש בייצוג מורחב של מצב, העברת עוד פרמטרים למינמקס,...) אין בעיה שתעשו זאת. במקרה זה, כל קוד נוסף שמימשתם צריך להופיע בקבצים הנמצאים בתיקיית ההגשה שלכם, והimportים הרלוונטים צריכים להפנות למיקום הנ"ל. במקרה הצורך, אתם יכולים להעתיק את הקוד שלנו לקובץ חדש משלכם ולעשות בו את השינויים. בנוסף, חובה עליכם להסביר בדו"ח כל שינוי שעשיתם, תחת התשובה לשאלה עבורה עשיתם את השינויים. שימו לב שבחלק ג' של התרגיל הדרישות הם מפורשות - הגדרת יוריסטיקה חדשה ובחירה בין ניהול זמנים משופר לבין העמקה סלקטיבית. כלומר, זהו לא אישור לממש שיפורים נוספים עבור שחקנים אלו (למשל סידור בנים או כל שיפור אחר שנלמד בכיתה). לעומת זאת, בשחקן התחרות אין בעיה שתממשו איזה שיפור שתרצו, בתנאי שהוא עומד בכללים המופיעים בתרגיל ושתדעו להסביר מה הוא עושה בהמשך. |
באיזה נתיב בתיקייה עלי לשמור את הקובץ experiments.csv בתיקיית ההגשה? | |
יש לשמור את הקובץ בתיקיית ההגשה הראשית: AI3_< id1 >_< id2 > |
האם עלי להגיש מסמך המתאר את שחקן התחרות שלי, לפי השאלות המופיעות בתרגיל הבית? | |
לא! אנחנו נבקש את המסמך הנ"ל בעתיד, רק מהסטודנטים שינצחו בתחרות, כתנאי לקבלת נקודות הבונוס לציון. הגשת המסמך כעת לא תחסוך מכם להגיש אותו מחדש במקרה של ניצחון. למרות זאת, אנחנו ממליצים לכם לפחות להתחיל לכתוב את התשובות עכשיו כשאתם עוד זוכרים מה עשיתם. |
איך אמור להראות הזיפ אותו אני מגיש? | |
על זיפ ההגשה להכיל תיקייה בשם הנקוב, בתוכה ימצאו כל קבצי ההגשה AI3_< id1 >_< id2 > זאת בניגוד למצב בו כל קבצי ההגשה נמצאים בתוך הזיפ ישירות... |
למה הכוונה "צומת הסתברותי יחיד" בשאלות 3-4? | |
בעץ המשחק המתואר לא יכולים להופיע מספר צמתים הסתברותיים ברצף. כלומר, אין צומת הסתברותי שאחד מהsuccessors שלו הוא גם צומת הסתברותי. כלומר, אין מניעה שבsuccessors של צומת מקס' או מינ' ספציפי יופיעו מספר צמתים הסתברותיים. |
קופצת לי שגיאת TimeExceededError משחקן הSimple Player או מאחד השחקנים הנעזרים בניהול הזמנים שלו. האם זה בסדר? מה הבעיה? | |
בעיה זו מתרחשת במקרים מסויימים כאשר המחשב עליו רצים הניסויים הוא חלש או עמוס. ברוב המקרים, הבעיה נגרמת מכך שלמחשב לוקח הרבה זמן (יחסית) לקפל את הת'רד שבו רץ השחקן. זהו זמן שהשחקן הפשוט אינו מודע אליו, ולמרות שהוא שומר "באפר" בעת הקצאת הזמן לתור הנוכחי, באפר זה לא מוחסר מסך הזמן הכולל ל5 תורות ולכן בפועל הוא הבאפר לכל המהלכים, למרות שהשחקן אינו מודע לכך. כדי לא לשנות את הקוד של השחקן הפשוט(ובתוצאות שכבר קיבלתם), אנחנו מרשים לכם לעשות שינוי בrun_game.py בשורה 93 בקובץ זה ניתן לראות בדיקה של "האם השחקן חרג מהזמן שהוקצה לו". בשורה זו אתם מורשים להחליף את הבדיקה כך שמותר לשחקנים לחרוג ב0.2 מהזמן הנתון. השורה החדשה: if remaining_run_times[board_state.curr_player] < -0.2: כמה דגשים: שימו לב! אסור לכם להסתמך על תוספת זמן זו למדיניות ניהול הזמנים שלכם או בשחקן התחרות. בנוסף, לאור התיקון מומלץ לוודא במיוחד כי אין חריגות זמנים מעבר לזמן הנתון במדיניות ניהול הזמנים שמימשתם. במקרה והתיקון אינו פותר את הבעיה נא לשלוח מייל (נוסף) לנעם. אין להגיש תרגילים בהם בניסויים השחקנים קיבלו TimeExceededError מסיבה זו. |