
09-01-2008, 11:57
|
|
|
|
חבר מתאריך: 23.11.07
הודעות: 187
|
|
אני מכיר אלג' גנטים (אפילו עבדתי איתם לצרכים מסחריים), אבל תודה על ההקדמה בכל אופן.
להבנתי, בתרגיל מס. 1 אתה צריך לעשות שני דברים:
1. לכתוב את פונקצית המוטציה שתרוץ על כל גן, למעט על הגן בעל התוצאה הטובה ביותר (מה שנקרא מודל הבחירה האליטיסטי).
2. לכתוב את פונקצית השחלוף (recombination) שמדמה רבייה מינית.
בשני המקרים, מבקשים ממך לכתוב משהו שיהיה מועיל ככל האפשר לתהליך האבולוציוני.
בוא נחשוב רגע מה המשמעות של 'מועיל לתהליך האבולוציוני'. הסיכוי שגן מסוים ישרוד תלוי באופן ישיר בתוצאה של פונקצית ההתאמה (fitness). לכן, כל מוטציה צריכה לנסות לשפר כמה שיותר את הערך שיוחזר כשפונק' ההתאמה תורץ על הגן.
איך נמקסם את הערך? לפי הקוד, fitness תחזיר 4 נקודות על כל ספרה שהיא בול פגיעה, ונקודה אחת לכל ספרה שהיא במרחק של 1 מהתוצאה הנכונה. כלומר, עבור כל מיקום i במספר, יש רצף של 3 ספרות בין 0 ל-9 שיתנו לך תוצאה שהיא בממוצע יותר טובה מכל רצף אחר של 3 ספרות. נסה לבדוק את ההסתברויות ולכתוב את הפונקציות בהתאם.
אני לא יודע מה המגבלות שלכם, אבל מהצצה בקוד נראה לי שבכל מקרה יש לך רק מידע לוקאלי - ז.א., אין לך 'זיכרון' של מה הגן המסויים שאתה בודק עכשיו עשה בדור הקודם. זה כמובן מגביל אותך בעד כמה יעיל אתה יכול להיות.
|