Выбрать главу

Утім, хоча модель мавпи, що друкує Шекспіра, й корисна для пояснення відмінності між однокроковим і накопичувальним відбором, вона збиває з пантелику у важливих моментах. Одним із них є те, що в кожному поколінні вибіркового «розведення» фрази мутантного «потомства» оцінювалися за критерієм схожості з далекою ідеальною метою, як-от фраза METHINKS IT IS LIKE A WEASEL. Життя ж не таке. Еволюція не має якоїсь довгострокової мети. Хоча людське марнославство й плекає абсурдну ідею, що наш вид є кінцевою метою еволюції, не існує жодної віддаленої мети, як і остаточної довершеності, яка могли б слугувати критерієм відбору. У реальному житті критерій відбору завжди короткостроковий: або виживання, або, у більш загальному плані, репродуктивний успіх. Якщо через мільярди років досягається те, що, з огляду на минуле, наводить на думку про просування до якоїсь далекої мети, це завжди є випадковим наслідком багатьох поколінь короткострокового відбору. «Годинникар» — накопичувальний природний відбір — не бачить майбутнього й не має жодної довгострокової мети.

Ми можемо змінити нашу комп’ютерну модель, аби врахувати цей момент. Ми можемо також зробити її реалістичнішою в інших аспектах. Літери й слова є суто людськими проявами, тож хай краще комп’ютер малює картинки. Можливо, ми навіть побачимо схожі на тварин обриси, що виникають на екрані внаслідок накопичувального відбору мутантних форм. Ми не будемо задавати чіткий курс, уводячи для початку якісь конкретні зображення тварин. Нам потрібно, щоб вони виникли самі унаслідок накопичувального відбору випадкових мутацій.

У реальному житті форма кожної окремої тварини є продуктом ембріонального розвитку. Еволюція відбувається тому, що в кожному наступному поколінні виникають порівняно з попереднім невеличкі відмінності ембріонального розвитку. Ці відмінності виникають через зміни генів, що контролюють розвиток (мутації — той самий невеличкий елемент випадковості у процесі, про який я говорив). Отже, у нашій комп’ютерній моделі мають бути якісь еквіваленти ембріонального розвитку та генів, що здатні мутувати. Існує багато способів створити комп’ютерну модель, що відповідає цим умовам. Я обрав один і написав програму, що його втілює. Зараз я опишу цю комп’ютерну модель, бо вважаю її показовою. Якщо ви не знаєтеся на комп’ютерах, просто запам’ятайте, що вони є машинами, які роблять точнісінько те, що ви їм кажете, але часто врешті-решт дивують вас. Перелік інструкцій для комп’ютера називається програмою.

Ембріональний розвиток є занадто складним процесом, аби реалістично змоделювати його на малопотужному комп’ютері. Доведеться представити його у вигляді якогось спрощеного аналога. Треба знайти просте правило малювання картинок, якого комп’ютер може легко дотримуватись і яке потім можна було би змусити змінюватися під впливом «генів». Яке ж правило малювання нам обрати? Підручники інформатики часто ілюструють силу того, що вони називають «рекурсивним» програмуванням, на прикладі простої процедури росту дерева. Для початку комп’ютер малює одну-єдину вертикальну лінію. Потім ця лінія розгалужується на дві. Далі кожна з нових гілок також поділяється на дві гілочки. Наступним кроком кожна з цих гілочок поділяється на гілочки меншого порядку, і т. д. «Рекурсивним» це називається тому, що однакове правило (в наведеному випадку правило розгалуження) застосовується в межах усього дерева, що росте. І хоч яким би великим виросло дерево, те саме правило розгалуження продовжує застосовуватися на кінчиках усіх його гілочок.

Під «глибиною» рекурсії розуміють кількість гілочок дедалі меншого порядку, яким дозволяється вирости, поки процес не буде завершено. Рисунок 2 показує, що відбувається, коли ви наказуєте комп’ютеру дотримуватись однакового правила малювання, але продовжувати до різних глибин рекурсії. За високих рівнів рекурсії схема стає доволі складною, але на рисунку 2 можна легко побачити, що вона все одно є продуктом того самого дуже простого правила розгалуження. Саме так усе відбувається з реальним деревом. Схема розгалуження дуба чи яблуні видається складною, але насправді такою не є. Базове правило розгалуження дуже просте. Тільки тому, що воно застосовується рекурсивно на кінчиках гілочок на всьому дереві (гілки утворюють гілочки наступного порядку), воно й стає великим і розлогим.