דף 1 מתוך 2

מבחן 2010 שאלה 6

נשלח: 15:29 28/01/2010
על ידי odedlei
שלום.
התשובות שאתם פירסמתם הינן population, ו nextGeneration .

שאלתי היא האם ניתן לכתוב גם RankSelection ו reproduce.
אנמק: השיטה nextGeneration קוראת ל reproduce, ולכן אם נשנה במחלקה ranSelection את שיטת reproduce באופן כזה שתבחר את האינדיבידואל הטוב ביותר מהדור הנוכחי (individual[0]) וכל אינידבידואל חדש יינוק תכונות ממנו, אז יהיה זה אותו דבר.
מצפה להתייחסות, תודה.

Re: מבחן 2010 שאלה 6

נשלח: 15:43 28/01/2010
על ידי khitron
זה לא יהיה אותו דבר.
דורשים ממך להעתיק את הטוב ביותר פעם אחת בלבד,
ושאר האוכלוסייה לעשות לפי השיטה "הרגילה".
ואתה רוצה לערב את הטוב ביותר בכולם.

Re: מבחן 2010 שאלה 6

נשלח: 16:05 28/01/2010
על ידי etaiso
אני גם עשיתי ככה ..

Re: מבחן 2010 שאלה 6

נשלח: 17:08 28/01/2010
על ידי odedlei
לא דרשו מאיתנו לעשות את שאר האוכלוסייה בשיטה ה"רגילה" זה אתה המצאת עכשיו.

Re: מבחן 2010 שאלה 6

נשלח: 17:10 28/01/2010
על ידי khitron
דווקא כן.
אבל זה תלוי איך אתה מבין את "רגילה"
מבחינתי זה לקרוא ל-reproduce

Re: מבחן 2010 שאלה 6

נשלח: 17:40 28/01/2010
על ידי odedlei
תצטט איפה דרשו את זה .

Re: מבחן 2010 שאלה 6

נשלח: 21:47 28/01/2010
על ידי TA_nimrod
khitron צודק בהחלט, השינוי שodedilei מציע אינו נכון ולא ישמור
על כך שרק הפרט הראשון יעבור.

והציטוט הוא הדרישה של השאלה !!

Re: מבחן 2010 שאלה 6

נשלח: 22:29 28/01/2010
על ידי shaivak
אבל אם נוסיף משתנה בוליאני ל rankselection שאומר מתי השיטה reproduce נקראת בפעם הראשונה בכל דור ובפעם הראשונה תחזיר את
הכי טוב ובשאר הפעמים תפעל כרגיל אז זה כן יעבוד, מה הבעיה עם זה?

Re: מבחן 2010 שאלה 6

נשלח: 00:14 29/01/2010
על ידי TA_nimrod
הבעיה עם זה שזה פשוט לא נכון. כל הרעיון של האליטיזם הוא בחירה ברמת האוכלוסיה ולא ברמת שיטת הבחירה.
אלו דברים שונים שעובדים בשכבות שונות של תכנון המערכת של העבודה (והרחבות שלה).

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

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

Re: מבחן 2010 שאלה 6

נשלח: 03:11 29/01/2010
על ידי shaivak
אין לך בעיה כי אתה יודע כמה אינדודואלים יש בכל דור, כלומר, אם יש 1000 אינדודואלים אז תאפס את המשתנה כל 1000 קריאות, זה ניתן למימוש

Re: מבחן 2010 שאלה 6

נשלח: 03:22 29/01/2010
על ידי shaivak
בשאלה אף אחד לא דיבר על "הרעיון של האלטיזם" פשוט דיברו על מנגנון מסויים ואיך אפשר לממש אותו, וכרגע עוד לא השתכנעתי שאי אפשר לממש אותו ב שיטות שונות.

Re: מבחן 2010 שאלה 6

נשלח: 11:17 29/01/2010
על ידי TA_nimrod
אבל זה בדיוק מה שאני אומר. מהרגע שאתה (בתור האוכלוסיה) צריך לשנות משהו באופן העבודה עם
הסלקציה כבר כאן יש בעיה. אם שמים את זה באוכלוסיה אז אין צורך להוסיף דבר לממשק של סלקציה ובכך להכריח כל סלקציה (גם כאלו שאינן עושות אליטיזם)
לתמוך בזה !

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

Re: מבחן 2010 שאלה 6

נשלח: 13:44 29/01/2010
על ידי shaivak
נכון אז הפיתרון שלך יותר יעיל וחסכוני בקוד, אבל גם הפיתרון הזה פועל, אני מניח שאתה מתכוון שהיינו חייבים להעביר לסלקציה גם את גודל האוכלוסיה או אינדיקציה אחרת של מתי לאפס.
אבל בתרגיל 5 עבדנו עם אוכלוסיה שמונה 1000 אינדווידואלים והשאלה הייתה ספציפית על תרגיל 5, אני מצטט:
"עליכם לעדכן את הקוד שכתבתם בתרגיל 5 על מנת שיתמוך באלטיזם"
וגם אף אחד לא אמר שאסור להעביר לסלקציה את גודל האוכלוסיה.

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

Re: מבחן 2010 שאלה 6

נשלח: 18:33 29/01/2010
על ידי TA_Yoni
אם נניח לרגע בצד האם התכנון שלך הוא נכון או לא (הוא לא בדרך אגב מאותן סיבות שאתה ונמרוד ציינתם ופתרון ש"עובד" הוא לווא דווקא נכון).
הפתרון שאתה מציע הוא למעשה להוסיף מחלקה חדשה. המחלקה החדשה שאתה יוצר היא ElitismRankSelection אשר יורשת
מ RankSelection.  
בכל מקרה אני מציע לך בינתיים להמתין לתוצאות של המבחן.

Re: מבחן 2010 שאלה 6

נשלח: 19:50 29/01/2010
על ידי TA_nimrod
shaivak כתב:נכון אז הפיתרון שלך יותר יעיל וחסכוני בקוד, אבל גם הפיתרון הזה פועל, אני מניח שאתה מתכוון שהיינו חייבים להעביר לסלקציה גם את גודל האוכלוסיה או אינדיקציה אחרת של מתי לאפס.
אבל בתרגיל 5 עבדנו עם אוכלוסיה שמונה 1000 אינדווידואלים והשאלה הייתה ספציפית על תרגיל 5, אני מצטט:
"עליכם לעדכן את הקוד שכתבתם בתרגיל 5 על מנת שיתמוך באלטיזם"
וגם אף אחד לא אמר שאסור להעביר לסלקציה את גודל האוכלוסיה.

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