טעות בתוכנה או טעות באלגוריתם?

מנהל: The Architect

נעול
aner2005
הודעות: 34
הצטרף: 21:19 26/11/2008

טעות בתוכנה או טעות באלגוריתם?

שליחה על ידי aner2005 » 00:04 15/02/2009

הרצתי את הדוגמא שבסוף, רק שיניתי את המשקל של הערך 10 מ4 ל15, כלומר
הוא לבדו שווה יותר מכל אפשרות אחרת.
הבעיה היא שרק בערך בחצי מהמקרים (אולי פחות) המחשב מחזיר בסוף את התשובה של
הערך 10 לבד, ובשאר המקרים הוא מחזיר את הערכים 4,2,2 וזה למרות שבתחילת הדרך
הוא בדר"כ מוצא את האפשרות הראשונה (ואף מציין שהfitness שלה נמוך יותר).
האם זה תקין?

eliran
הודעות: 57
הצטרף: 15:07 09/12/2008

שליחה על ידי eliran » 00:23 15/02/2009

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

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

הפתרון המוחזר(האינדיבידואל הטוב ביותר) אינו
בהכרח האופטימאלי.

פונקצית התאימות מתכנסת לאורך זמן."

ולכן זה נראה לי הגיוני
אולי אתה יכול לבדוק מתי הוא מתכנס הפתרון ואז לבחור את הטוב?

aner2005
הודעות: 34
הצטרף: 21:19 26/11/2008

שליחה על ידי aner2005 » 14:47 15/02/2009

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

aner2005
הודעות: 34
הצטרף: 21:19 26/11/2008

שליחה על ידי aner2005 » 19:58 15/02/2009

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

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

thelegend
הודעות: 95
הצטרף: 21:02 15/12/2008

אז...

שליחה על ידי thelegend » 22:11 15/02/2009

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

aner2005
הודעות: 34
הצטרף: 21:19 26/11/2008

שליחה על ידי aner2005 » 01:11 16/02/2009

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

נעול

חזור אל “- מבוא למדעי המחשב”