אלגוריתמים אבולוציוניים תרגיל 2
Transcription
אלגוריתמים אבולוציוניים תרגיל 2
אלגוריתמים אבולוציוניים תרגיל 2 מגישים: אלון גת רותם קופפר אלירן צח פרטים מלאים באתר: http://www.cs.bgu.ac.il/~gata שאלה :1 תיאור הבעיה :מציאת וקטור מינימום אבסולוטי של פונקציה בהינתן הסטה סקאלרית ווקטור הסטה פרמטרי (נתונים), מימד הבעיה נתון. נבדקו שלוש הפונקציות הבאות: ) ) ( ) ∑ )̅ ( ) ∑(∑ )̅ ( (∑ )̅ ( ( תיאור מימוש האלגוריתם הגנטי: גנוטיפ :הגנום הוא וקטור של מספרים ממשים בתחום -100..100 פנוטיפ :הגנוטיפ שווה לפנוטיפ. אופרטור הכלאה :גזירה והחלפה בנקודה בודדת (באופן הפוך עבור שני הצאצאים). מוטציה :החלפת איבר בווקטור במספר ממשי חדש בתחום. אופרטור בחירה עבור בריכת ההזדווגות :פרופורציוני לכשירות .הכשירות חושבה באופן הבא :ראשית חושב ערך הפונקציה ע"י הצבה של הגנוטיפ .לאחר מכן חושבה הכשירות עבור כל פרט כהפרש בין ערך הכשירות הגבוה ביותר באוכלוסייה לערך הכשירות שלו .מספר המופעים של כל פרט פרופורציוני לערך שהתקבל .במידה וחסרים פרטים (עקב עיגול מספר המופעים) נוספו מופעים נוספים של הפרט הטוב ביותר. אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי. השווינו בין ריצת האלגוריתם הגנטי הממשי לאלגוריתם גנטי בייצוג בינארי ,עליית גבעה עם נקודת התחלה אקראית ולחיפוש אקראי. עליית גבעה עם נקודת התחלה אקראית מומשה באופן הבא :נבחרה נקודה אקראית במרחב הפתרונות ,מנקודה זו ניסינו להגיע לנקודה בעלת ערך כשירות נמוך יותר .במקרה שנכשלנו ב 10-ניסיונות רצופים נבחרה נק' התחלה חדשה. תוצאות: הרצנו את ארבעת האלגוריתמים עבור שלושת הפונקציות ממימד .10כל אלגוריתם רץ 10000איטרציות .עבור האלגוריתם האבולוציוניים 10000איטרציות משמען 100דורות (עבור אוכלוסייה בגודל .)100עבור עליית גבעה עם נקודת התחלה אקראית מדובר בכמות האיטרציות בפועל. ההיסט הגלובאלי נקבע ל.100- התוצאות שהתקבלו עבור האלגוריתם הגנטי עם גנום בינארי: התוצאות שהתקבלו עבור אלגוריתם גנטי עם גנום ממשי ,עליית גבעה עם נקודת התחלה אקראית וחיפוש אקראי תוצאות ומסקנות: F3(X): 100.02851428937728 X: 2.000250666002712, 2.990508114577639, 4.000604257592699, 5.009002392158113, 5.996885737556568, 7.002013690953701, 7.999398356765153, 9.001840557171569, 10.000928489288707, 11.009535519433955. F2(X): 100.0003502481359 X: 1.057299996280454, 2.0006005110181357, 2.9965628024273494, 4.000195260269557, 5.003271115545682, 5.9980977382886325, 6.995686775912313, 8.000419914510971, 8.99764108701735, 9.999725299951878. F1(X): 100.00015006831661 X: 1.0013843382148169, 2.001019904881529, 3.0001087352973466, 3.9992822166123876, 4.998984643588278, 5.993370781902008, 6.993663992070265, 7.997895998370641, 8.992631608549505, 10.001655955570188, עבור השוואה הוגנת בערך המינימלי כפונקציה של מספר האיטרציות האלגוריתמים האבולוציוניים הראו עליונות ברורה על החיפוש האקראי ועליית הגבעה. האלגוריתם האבולוציוני עם הגנום הממשי והאליטיזם הניב תוצאות טובות יותר מאשר אלגוריתם אבולוציוני עם גנום בינארי (שלמים) ללא אליטיזם. חיפוש אקראי הניב תוצאות טובות יותר מאשר עליית גבעה עבור אותו מספר איטרציות. אלגוריתם אבולוציוני עם גנום ממשי הניב תוצאות טובות יותר מאלגוריתם זהה עם גנום שלם ,ככל הנראה מכיוון שישנו חופש גדול יותר בגנום (ניתן להתקרב באופן רציף ולא רק ב"-קפיצות"). שאלה :2 תיאור הבעיה :בהינתן 29ערים ומטריצת מרחקים ,יש למצוא את המסלול הקצר ביותר העובר דרך כל 29הערים. תיאור מימוש האלגוריתם: גנוטיפ :הגנום בבעיה זו הוא פרמוטציה של הסדרה .29..1 פנוטיפ :הפנוטיפ בבעיה זו שווה לגנוטיפ. אופרטור הכלאה :גזירה בין שתי נקודות (באופן הפוך עבור שני הצאצאים) ,השלמת האיברים החסרים בוקטור לפי הסדר. מוטציה :החלפה בין שתי ערים אקראיות בווקטור. אופרטור בחירה עבור בריכת ההזדווגות :פרופורציוני הפוך למרחק הכולל ,מנורמל ביחס למרחק הגדול ביותר. במידה וחסרים פרטים (עקב עיגול מספר המופעים) נוספו מופעים נוספים של הפרט הטוב ביותר. אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי. תוצאות: תוצאות ומסקנות: האלגוריתם הראה התכנסות לפתרון .הפרמטרים הטובים ביותר שנמצאו :הסתברות להזדווגות 0.3 :הסתברות למוטציה.0.003 : ניסיון למימוש עם בחירה עבור בריכת ההזדווגות ע"י דירוג לא הראה שיפור. המסלול הטוב יותר שנמצא הוא באורך 428000מייל: Melbourne,Tokyo,Guam,Manila,Sydney,Bombay,Baghdad,Cairo,Istanbul,New Orleans,Berlin,San Francisco,Rio de Janeiro,London,Azores,Moscow,Panama City,Chicago,Shanghai,Juneau,Honolulu,Santiago,New York,Mexico City,Paris,Seattle,Buenos Aires,Rome,Capetown. מסלול הנסיעה של הסוכן המסכן: שאלה :3 תיאור הבעיה :בהינתן מימד ,mמציאת מטריצה m*mכאשר סכום כל האיברים בכל שורה ,טור או אלכסון שווה ל- ( ) . תיאור מימוש האלגוריתם: . גנוטיפ :הגנום בבעיה זו הוא פרמוטציה של הסדרה פנוטיפ :הפנוטיפ בבעיה זו שווה לגנוטיפ. אופרטור הכלאה :גזירה בין שתי נקודות (באופן הפוך עבור שני הצאצאים) ,השלמת האיברים החסרים בווקטור לפי הסדר. מוטציה :החלפת שני מספרים בגנום. אופרטור בחירה עבור בריכת ההזדווגות :לפי דירוג (מספר שורות ואלכסונים העונים לתנאי) .מקומות ב 5%הראשונים ייוצגו ע"י 10פרטים ,מקומות ב 10%הבאים ייוצגו ע"י 3פרטים ,מקומות ב 15%הבאים ייוצגו ע"י פרט .1 אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי או מציאת ריבוע קסם המקיים את התנאי. תוצאות: ) ( לוח :3*3 כאשר הריבוע שהושג: לוח :4*4 כאשר הריבוע שהושג: 14 9 3 8 7 4 10 13 12 15 5 2 1 6 16 11 816 357 492 ריבוע :5*5 ניסון נוסף שבצענו הוא פתרון של הבעיה בעזרת ,Evolutionary Strategies גנוטיפ :פנוטיפ :אופרטור הכלאה :כמו בפתרון הקודם. מוטציה :החלפת שני מספרים בגנום .בנוסף ביצענו שינו של הסתברות המוטציה כפונקציה של הדור ,ביצענו מספר אופציות ,הטובה ביותר הייתה הקטנה ב 1.5של ההסתברות למוטציה כל 500דורות (מתוך .)5000 אופרטור בחירה עבור בריכת ההזדווגות :פרופורציוני לכשירות /דירוג. אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי או מציאת ריבוע קסם המקיים את התנאי. לוח :4*4 Ranking Rolette ריבוע :5*5 הסתברות מוטציה משתנה תוצאה של חיפוש אקראי הסתברות מוטציה קבועה תוצאות ומסקנות: האלגוריתם הגנטי כפי שמומש לא התגלה כפתרון טוב לבעיה ולא סיפק פתרון עבור לוח הגדול מ4*4- בהסתברות סבירה. בניגוד לבעיית הסוכן הנוסע מדובר בפתרון נכון/לא נכון .בנוסף ,פתרון נכון חלקית לא מקרב אותנו אל הפתרון הנכון. ניסיונות לשיפור האלגוריתם ע"י החלפת בחירת האוכלוסייה לבריכת ההזדווגות (מרולטה לדירוג) ,משחק עם הפרמטרים ,שינוי פונקציית המשקל (וריאציות של הפונקציה הנוכחית) ומתן ניקוד על תשובה חלקית לא הניבו שיפור בתוצר הסופי ,אך ניתן לראות שינוי בממוצע הכולל אשר ברולטה גודל עם הדורות (האליטיזם משתלט) להבנתנו המעבר מבחירת רולטה לדירוג אמור להגדיל את השונות באוכלוסייה אולם השינוי לא הראה שיפור בתוצאה. השימוש ב ,Evolutionary Strategiesהוכח כיעיל יותר (מכיוון שההסתברות למוטציה גדולה בתחילה ,יש סיכוי גדול יותר "ליפול" לפתרון) אך עדיין לא הניב תוצאות בהסתברות גבוהה בצורה משמעותית. ניתן לראות את התוצאות שהתקבלו בשיטה אשר דומה לחיפוש אקראי( ,ע"י קביעת מוטציה גבוהה ,אליטיזם ויצירת אוכלוסייה חדשה בכל דור) הממוצע נמוך מאוד יחסית ,והסיכוי למצוא פתרון קטן. שאלה :4 תיאור הבעיה :בהינתן נוסחת ,3-CNFמציאת השמה המספקת את הנוסחה כאשר בכל 3-CNFישנו לפחות ליטרל אחד שאינו מסופק. תיאור מימוש האלגוריתם: גנוטיפ :הגנום בבעיה זו הוא וקטור השמות בינארי כאשר האיבר ה i-מייצג השמה עבור הליטרל .i+1 פנוטיפ :הפנוטיפ בבעיה זו שווה לגנוטיפ. אופרטור הכלאה :גזירה והחלפה בנקודה בודדת (באופן הפוך עבור שני הצאצאים). מוטציה :החלפת השמה עבור ליטרל אקראי. אופרטור בחירה עבור בריכת ההזדווגות :לפי דירוג (מספר שורות ואלכסונים העונים לתנאי) .מקומות 5..1ייוצגו ע"י 10פרטים ,מקומות 15..6ייוצגו ע"י 3פרטים ,מקומות 35..16ייוצגו ע"י פרט .1 אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי או מציאת השמה העונה על התנאי. תוצאות: The CNF : )(2,-4,1)&(-2,4,-3)&(-5,-2,2)&(-3,-1,-4)&(1,-5,2)&(-1,4,3)&(-2,-2,-5 Solved: 1 = F; 2 = T ,3 = F,4 = T, 5 = F תוצאות ומסקנות: האלגוריתם הראה התכנסות מהירה לפתרון. שאלה :5 תיאור הבעיה: בשאלה זו בחרנו לבדוק בעזרת אלגוריתם אבולוציוני את צורתו של כבל חשמל אשר תלוי בין שני עמודי חשמל בהשפעה של כוח הכובד. באופן כללי כבל החשמל (כמו כל מערכת בטבע) תשאף להיות במצב שבו האנרגיה הכוללת שלה מינימלית. ההמילטוניאן (אנרגיה) של המערכת ) ) (( ∫ ∫ הביטוי הראשון מייצג את האנרגיה כתוצאה מפוטנציאל הכבידה של כל אלמנט מסה (כאשר ) ,(h=h(xהחלק השני מייצג את האנרגיה כתוצאה מהפוטנציאל בין כל שני אלמנטי מסה סמוכים (מתיחות הכבל) אשר פרופורציוני למרחק ביניהם בריבוע .עבור אלמנטי מסה קטנים באורכם ניתן להניח שההיסט הוא בציר ה y-בלבד( .במשולש ישר זוית עם זוית ראש צרה היתר שווה בקירוב לניצב). בבעיה שלנו קבענו את dm = 100mg ,והחוט מחולק 30חלקים ,יחידות קבוע הקפיץ: .בנוסף קיבענו את קצוות החוט בגובה ע"מ לדמות חיבור לעמודי החשמל. תיאור מימוש האלגוריתם: גנוטיפ :וקטור של מספרים שכל מספר מסמל את הגובה של אלמנט המסה ה i-מעל הגובה .0 פנוטיפ :הפנוטיפ בבעיה זו שווה לגנוטיפ. אופרטור הכלאה :גזירה והחלפה בנקודה בודדת (באופן הפוך עבור שני הצאצאים). מוטציה :החלפת איבר בווקטור במספר ממשי חדש בתחום. אופרטור בחירה עבור בריכת ההזדווגות :פרופורציוני לכשירות .הכשירות חושבה באופן הבא :ראשית חושב ערך הפונקציה ע"י הצבה של הגנוטיפ .לאחר מכן חושבה הכשירות עבור כל פרט כהפרש בין ערך הכשירות הגבוה ביותר באוכלוסייה לערך הכשירות שלו .מספר המופעים של כל פרט פרופורציוני לערך שהתקבל .במידה וחסרים פרטים (עקב עיגול מספר המופעים) נוספו מופעים נוספים של הפרט הטוב ביותר. אליטיזם :הפרט המוצלח ביותר עובר ללא מוטציה לדור הבא. בחירת שורדים :אוכלוסיית הצאצאים מחליפה את אוכלוסיית ההורים במלואה. תנאי עצירה :הגעה למספר הדורות המקסימלי. תוצאות: עבור kגבוה 100000 - בדור :0 בדור ה:5000 בדור :30,000 עבור kקטן – :1 דור :0 דור :5000 עבור kבינוני – 1000 דור :0 דור :5000 דור :10000 מסקנות: הרצנו את האלגוריתם על שני מקרי הקיצון :קבוע קפיץ נמוך וקבוע קפיץ גבוה ללא כבידה כאשר ציפינו לקבל את התוצאות הבאות :ללא כבידה המתיחות בלבד היא זו שיוצרת פוטנציאל ולכן הכבל ישאף להיות מתוח וישר בין שתי הנקודות .עבור קבוע קפיץ נמוך הכבל "ימרח" בין שתי הנקודות (כמו מסטיק). בכל מקרה נצפה לצורה של קוסינוס היפרבולי. ניתן לראות את השתפרות בצורת הגרף מהדורות הראשונים ועד הדור האחרון. כמו כן ניתן לראות שהשיפור הגדול מגיע מדורות הראשונים ורמת השיפור יורדת גם הזמן.