מחקר בגובה העיניים

מחקר בגובה העיניים

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

עובדות ומספרים

< חזרה למחקרים
פרופ' משה זיפר
מדעי המחשב
אוניברסיטת בן-גוריון בנגב
מדעים מדוייקים וטכנולוגיה
תקופת המחקר
2011-2015

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

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

נכתב ע''י משה זיפר, 15 אוק 2016

פיתוח תוכנה הוא אחד האתגרים הקשים ביותר הידועים לאדם בעולם המודרני. זהו גם אחד האתגרים החשובים ביותר, כי כיום מעטות הן המערכות שאין בהן תוכנה. יצירת קוד תקין, כלומר קוד אשר רץ ללא שגיאות ומבצע את מטרתו, היא מלאכה סיזיפית, ולאחר שהקוד נכתב, עדיין יש צורך בתחזוקה ובשדרוג. במערכות תוכנה מורכבות יש מיליוני – ואף עשרות מיליוני – שורות קוד, ובעתיד הלא רחוק נמנה את מספר השורות הללו במיליארדים. בפרויקט זה פיתחנו מערכת בשם FINCH, המסוגלת לקחת קטע קוד קיים ולשפרו באופן אוטומטי בעזרת אלגוריתם אבולוציוני הפועל על פי עקרונות האבולוציה הדרוויניסטית. מה פירוש? נאמר שברשותנו תוכנה סבירה שברצוננו לשפרה, או אולי תוכנה שיש בה אי-אילו שגיאות. כיצד בא האלגוריתם האבולוציוני לעזרתנו? תחילה המחשב מגריל אוכלוסייה ראשונית המורכבת מ"אורגניזמים" דיגיטליים, קרי תוכנות מחשב המהוות וריאציות אקראיות על התוכנה שברשותנו. בהיותם וריאציות אקראיות, הפרטים באוכלוסייה הראשונית גרועים למדי, אך מקצתם גרועים מעט פחות מהאחרים, כלומר התאמתם ל"סביבה" טובה מעט יותר. כאמור, כל אורגניזם דיגיטלי כזה הוא בעצם תוכנת מחשב הפותרת בעיה מסוימת. בטבע, על האורגניזם לשרוד בסביבתו כדי להתפתח ולהתרבות. במקרה שלנו, ה"סביבה" היא הגדרה מתמטית מדויקת של הבעיה שאותה אנו רוצים לפתור. אם כן, התוכנות הטובות יותר (או שמא יש לומר, הגרועות פחות) של הדור הראשון ייבחרו לשמש הורים לדור הבא, דור שמטענו ה"גנטי" יורכב מהקוד של תוכנות הדור הנוכחי. כלומר, כדי לבנות את הדור הבא אנו מזווגים בין הורים טובים, "חותכים" את מטענם הגנטי, כלומר את תוכנות המחשב, "מדביקים" ומחברים בין החלקים כדי ליצור צאצאים הדומים לשני ההורים, ואז משנים מעט את הצאצאים. פעולות החיתוך והשינוי שואבות את השראתן מן הטבע, שם הן ידועות בתור שחלוף (crossover) ומוטציה. בהתאם לעקרונות האבולוציה הדרוויניסטית, ישנו סיכוי סביר שהדור הבא יהיה מותאם מעט יותר לסביבתו, כלומר התוכנות שבאוכלוסיית הדור הבא תהיינה מעט טובות יותר במלאכה שלה נועדו. וכך חולפים הדורות, והאורגניזמים שבאוכלוסייה הממוחשבת נעשים מותאמים יותר ויותר לסביבתם. משמע, הם הופכים לתוכנות טובות יותר ויותר – וכל זה באופן אוטומטי לחלוטין, בלי התערבות יד אדם. זוהי המהות של מערכת FINCH – שכלול ושיפור של תוכנות מחשב באופן אוטומטי, בלא צורך במתכנתים אנושיים.

פורסם בתאריך - 19-מאי-2019 - התכנים נכונים ליום הפרסום

מילות מפתח

אלגוריתמים
אבולוציה
Evolution
Software engineering
שכלול אוטומטי של תוכנות מחשב
כתיבת קוד
אלגוריתם אבולוציוני
פיתוח תוכנה
evolutionary algorithm
פורסם בתאריך - 19-מאי-2019 - התכנים נכונים ליום הפרסום