אורגניזם דיגיטלי
אורגניזם דיגיטלי (באנגלית: Digital organism) היא תוכנית מחשב שמשכפלת את עצמה תוך כדי שינוי האלגוריתם שלה והתפתחותו. אורגניזמים דיגיטליים משמשים כלי לחקר דינמיקה של אבולוציה, לבחינה ואימות של השערות ומודלים מתמטיים של אבולוציה. הנושא מתמשק לחיים מלאכותיים.
היסטוריה
אורגניזם דיגיטלי החל עם פיתוח המשחק "דרווין" ב-1961 במעבדות נוקיה בל. המשחק היה מורכב-מתוכניח בשם umpire ושטח זיכרון שנקרא זירה (arena). התוכנית כללה מספר פונקציות שאיפשרו להכניס תוכניות לתאי זיכרון בזירה, לשכפל אותן לתאים אחרים וגם למחוק מהתאים תוכניות מתחרות. מספר תוכניתנים התחרו ביניהם על ידי כתיבת תוכניות בשפת מכונה שהשתמשו בפונקציות של ה umpire. התוכניות הועלו לזיכרון והורצו זו כנגד זו. המשחק הסתיים לאחר זמן נתון או כשנותרו בזיכרון עותקים של תוכנית אחת בלבד.
ב-1984 פותחה התוכנית "Core War" בה שתי תוכניות או יותר שנקראו "לוחמים" התחרו על שליטה במכונה וירטואלית. התברר שאחת האסטרטגיות המוצלחות ביותר היא שכפול מהיר שמנע מהיריב שימוש במשאבים חישוביים. התוכניות במשחק יכלו לדרוס הוראות בזיכרון של תוכניות היריבים או לשכתב-אותן. אסטרטגיה נוספת הייתה שינוי הקוד העצמי במהלך הריצה.
סטין רסמוסן מהמעבדה הלאומית לוס אלמוס הוסיף לתוכנית אלגוריתם גנטי שכתב, אך שפת התכנות לא התאימה לכך ורוב המוטציות שנוצרו חסרו תפקוד בסיסי. בתחילת שנות ה-90, תוכנת "Tierra", של תומאס רי, שנועדה לתהליכי אין סיליקו, הצליחה ליצור תוכניות שהתפתחו באופן מורכב ומבלי שייהרסו. ב-1993 תוכנת Avida הוסיפה הקצאה נפרדת בזיכרון לתוכנות השונות ואפשרה לכל אחת לפעול בקצב שונה. Avida החלה לשמש לסימולציות של תהליכי אבולוציה.
דוגמה מתוכנת Avida
הגנום המעגלי שמשמאל מורכב מסט פקודות (מיוצגות כאותיות). חלק מן הפקודות מעורבות בשכפול וחלקן במשימות חישוביות. הנסיין מגדיר את הסתברות המוטציות. מוטציות בהעתקה מתרחשות כאשר פקודה מועתקת באופן שגוי ומוחלפת בפקודה אקרעית בגנום שנוצר מימין. קיימים סוגים נוספים של מוטציות כמחיקות ותוספות.
בתחילה כל המצביעים נמצאים באותו מיקום בנקודה r. כשהתוכנית מבוצעת, מצביע הפקודות i מתקדם. הפקודות הראשונות מקצות שטח לצאצא ומזיזות לאחר-מכן את המצביע לרישום הצאצא (w) לשטח זה. מצביע הזרימה (f) משמש להעביר את יתר המצביעים למיקומים שנקבעו על ידי הגנום. יתר התהליך של השכפול העצמי מבוצע על ידי שרשרת פקודות בסוף הגנום (תהליך לולאת-העתק copy-loop). מצביע הזרימה משמש להתקדמות בלולאה. המצביעים בגנום ההורה והצאצא מתקדמים. קשתות בתוך הגנום המעגלי מייצגות בקרת זרימה ומציגות את מחזורי הבאה-ביצוע בזמן תהליך ההעתקה. בתום ההעתקה, האורגניזם ההורה מפריד עצמו מן הצאצא, שצריך לדאוג לעצמו בעולם Avida.
ראו גם
קישורים חיצוניים
- דוגמה לשימוש בתוכנת Avida - גרור למשל את האורגניזם @ancestor, המופיע ב"פריזר" משמאל, ללוח המשבצות ובחר "run"
24575552אורגניזם דיגיטלי