שתף קטע נבחר

תוכנה שכותבת תוכנה

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

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

 

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

 

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

 

האשפים יעזרו

 

מקרה פשוט יחסית של כתיבה אוטומטית של תוכנה מבוטא על ידי ה"אשפים" (Wizards) הכלולים בכלי פיתוח תוכנה רבים. הדוגמה האופיינית ביותר היא אשף לכתיבת חלק ממשק המשתמש: האשף מאפשר למתכנת להגדיר בצורה וויזואלית את הכפתורים, התפריטים והטקסט שיוצגו על המסך בתגובה לפעולה מסוימת של המשתמש, ואז בונה בצורה אוטומטית סידרה של קבצים ופקודות תוכנה שיגרמו לתצוגה כזו.

 

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

 

במקרים אחרים, למתכנת יש מושג מוגבל הרבה יותר לגבי דרך הפתרון. לדוגמה, איך צריכה להיראות תוכנה עבור רובוט המשחק כדורגל? תחרות RoboCup השנתית (קישור בסוף הכתבה) הציבה לה כמטרה ליצור עד שנת 2050 קבוצה של רובוטים אוטונומיים (כלומר שאינם נשלטים מבחוץ) דמויי אדם שיכולה לנצח נגד הקבוצות האנושיות שהן אלופות העולם בכדורגל.

 

אתגרים אקדמיים והתעניינות תקשורתית

 

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

 

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

 

קבוצת חוקרים מאוניברסיטת מרילנד החליטה לפתח את הקבוצה המועמדת שלה לתחרות ההדמיה לא על ידי הגדרת ההתנהגות של כל רובוט עבור כל מצב שייתקל בו, אלא על ידי יצירה אוטומטית של תוכנה כזו (קישור בסוף הכתבה). הם בחרו בגישה הנקראת לפעמים "תכנות גנטי" או "חישוב אבולוציוני".

 

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

 

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

 

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