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