הקלות הבלתי נסבלת של התיכנות

חדשות מדע בשפה ידידותית
01.03.2003

שתף

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

שתף