Ознакомительная версия.
WDLTMNLTDTJBSWIRZREZLMQCO P
Не то чтобы явное улучшение! Но алгоритм продолжает выполняться, теперь уже эта фраза “производит” мутантное “потомство”, из которого выбирается новый “победитель”. Десять поколений спустя фраза, оставляемая “на племя”, выглядела так:
MDLDMNLS ITJISWHRZREZ MECS P
А по прошествии 20 поколений она была такой:
MELDINLS IT ISWPRKE Z WECSEL
К этому времени предубежденному взгляду уже начинает мерещиться сходство с нужной фразой. Спустя 30 поколений никаких сомнений не остается:
METHINGS IT ISWLIKE B WECSEL
Сороковое поколение отделяет от цели всего одна буква:
METHINKS IT IS LIKE I WEASEL
Цель была окончательно достигнута в 43-м поколении. Второй заход компьютер начал с фразы:
Y YVMQKZPFJXWVHGLAWFVCHQXYOPY, —
прошел через следующие промежуточные стадии (я снова привожу только каждое десятое поколение):
Y YVMQKSPFTXWSHLIKEFV HQYSPY
YETHINKSPITXISHLIKEFA WQYSEY
METHINKS IT ISSLIKE A WEFSEY
METHINKS IT ISBLIKE A WEASES
METHINKS IT ISJLIKE A WEASEO
METHINKS IT IS LIKE A WEASEP —
и достиг конечной фразы в поколении 64. В третий раз он начал так:
GEWRGZRPBCTPGQMCKHFDBGW ZCCF —
и пришел к METHINKS IT IS LIKE A WEASEL за 41 поколение направленной “селекции”.
Какое именно время потребовалось компьютеру для достижения цели — не имеет значения. Если вам интересно, в первый раз он справился с задачей, пока я выходил пообедать. То есть где-то за полчаса. (Читатели, увлекающиеся компьютерами, сочтут это неоправданно долгим. Причина в том, что программа была написана на бейсике — компьютерной разновидности детского лепета. Когда я переписал ее на паскале, выполнение заняло 11 секунд.) В таких делах компьютеры несколько проворнее обезьян, но на самом деле разница не принципиальна. Что действительно существенно, так это разница между сроком, потребовавшимся для накапливающего отбора, и тем промежутком времени, который потребовался бы для достижения той же самой цели тому же самому компьютеру, работающему точно с такой же скоростью, но методом одноступенчатого отбора: около миллиона миллионов миллионов миллионов миллионов лет. Это более чем в миллион миллионов миллионов раз больше сегодняшнего возраста Вселенной. Лучше даже будет сказать так: по сравнению с тем временем, которое понадобится обезьяне или компьютеру, чтобы случайно набрать нужную фразу, нынешний возраст вселенной — пренебрежимо малая величина, столь малая, что наверняка попадает в пределы погрешности, допускаемой нами в наших приблизительных вычислениях. А компьютеру, работающему тоже наугад, но при ограничивающем условии накапливающего отбора, для выполнения той же задачи потребуется срок, вполне доступный простому человеческому пониманию: от 11 секунд до времени, необходимого, чтобы пообедать.
Итак, отличие накапливающего отбора (когда любое усовершенствование, каким бы незначительным оно ни было, служит фундаментом для дальнейшего строительства) от одноступенчатого (когда каждая новая “попытка” начинается “с чистого листа”) очень велико. Если бы эволюционный прогресс опирался на одноступенчатый отбор, это вряд ли привело бы хоть к чему-нибудь. Если бы, однако, слепым силам природы удалось каким угодно образом создать условия, благоприятные для накапливающего отбора, то последствия оказались бы необыкновенными и изумительными. Собственно говоря, именно это произошло на нашей планете, а сами мы принадлежим к числу самых недавних из таких последствий — и едва ли не самых необыкновенных и изумительных.
Забавно, что расчеты наподобие того, который я привел для “гемоглобинового числа”, все еще используются в качестве аргументов против дарвиновской теории. По-видимому, те, кто так делает, будучи зачастую квалифицированными специалистами в своей области — астрономами или кем угодно еще, искренне думают, что дарвинизм объясняет устройство живых организмов одной лишь случайностью, пресловутым “одноступенчатым отбором”. Убеждение, будто дарвиновская эволюция “случайна”, не просто неверно. Оно диаметрально противоположно истине. В дарвиновском рецепте используется лишь крупинка случайности, а основной ингредиент — это накапливающий отбор, который по сути своей неслучаен.
Облака не способны участвовать в процессе накапливающего отбора. Не существует такого механизма, посредством которого они могли бы производить выводки подобных себе дочерних облаков. Если бы такой механизм был, если бы облако, похожее на хорька или на верблюда, могло стать родоначальником клана облаков примерно той же формы, тогда у накапливающего отбора появился бы шанс приняться за дело. Разумеется, облака порой распадаются на части и образуют “дочерние” облака, но для накапливающего отбора этого недостаточно. Необходимо также, чтобы “потомство” любого отдельно взятого облака было похоже на своего “родителя” больше, чем на любого из более далеких “предков” в “популяции”. Некоторым из философов, заинтересовавшихся в последние годы теорией естественного отбора, этот ключевой момент явно непонятен. Далее нужно, чтобы вероятность выживания облака и производства им собственных копий как-то зависела от его формы. Возможно, в некоей далекой галактике такие условия возникли и по прошествии достаточного количества миллионов лет дали начало воздушной, бестелесной форме жизни. Из этого мог бы выйти неплохой научно-фантастический роман — под названием, скажем, “Белое облачко”, — но для наших нынешних целей компьютерная модель с обезьяной и Шекспиром более наглядна.
Хотя наша модель “обезьяна/Шекспир” и годится для демонстрации отличий одноступенчатого отбора от накапливающего, в некоторых важных отношениях она неудачна и может ввести в заблуж дение. Например, в каждом поколении направленной “селекции” мутантное “потомство” оценивалось по критерию соответствия далекому идеалу — фразе METHINKS IT IS LIKE A WEASEL. В жизни же все иначе. У эволюции нет долгосрочных стремлений. Сколько бы человеческое тщеславие ни лелеяло абсурдную идею, будто наш вид и есть конечная цель творения, не существует ни отдаленной цели, ни окончательного совершенства, которое могло бы послужить мерилом для отбора. В реальной жизни критерии для отбора всегда краткосрочны — это либо простое выживание, либо, в более общем смысле, репродуктивный успех. Если по прошествии геологических эпох свершается то, что задним числом выглядит как движение к некоей далекой цели, это всегда побочный результат сиюминутного отбора, действовавшего в течение многих поколений. “Часовщик”, коим является накапливающий естественный отбор, не видит будущего и не ставит перед собой никаких долгосрочных задач.
Принимая это во внимание, мы можем изменить нашу компьютерную модель. Также мы можем приблизить ее к реальности и в других аспектах. Буквы и слова — это проявления сугубо человеческой природы, так что лучше пускай наш компьютер рисует картинки. Возможно, нам даже удастся увидеть, как изображения на экране благодаря накапливающему отбору мутантных форм приобретают очертания, напоминающие животных. Мы не будем предрешать исход дела, вводя в программу изображения животных в качестве стартового материала. Нам хотелось бы, чтобы они возникли сами и исключительно в результате накапливающего отбора случайных мутаций.
В реальной жизни внешний вид животного возникает в процессе эмбрионального развития. Эволюция происходит потому, что в ряду сменяющих друг друга поколений эмбриональное развитие слегка варьирует. Эти небольшие отклонения появляются вследствие изменений в генах, контролирующих развитие (мутации — та самая необходимая крупица случайности, о которой я упоминал). Следовательно, в нашей компьютерной модели должно быть что-то, эквивалентное эмбриональному развитию, и что-то, эквивалентное способным к мутированию генам. Существует немало способов сделать так, чтобы компьютерная модель удовлетворяла этим требованиям. Я выбрал один из них и написал соответствующую программу. А теперь я расскажу про эту компьютерную модель, так как считаю ее очень показательной. Если вы ничего не знаете о компьютерах, просто запомните, что это такие машины, которые делают в точности то, что им говоришь, а результат нередко оказывается неожиданным. Перечень инструкций, отдаваемых компьютеру, называется программой (я пишу program, как это принято в Америке и как рекомендует Оксфордский словарь; альтернативное написание programme, распространенное в Британии, кажется мне офранцуженным и неестественным).
Развитие эмбриона — процесс слишком замысловатый, чтобы можно было реалистично сымитировать его на маленьком компьютере. Поэтому нужно придумать некий упрощенный аналог: найти такое простое правило вычерчивания рисунков, которому компьютер мог бы легко подчиняться и которое могло бы варьировать под влиянием “генов”. Какое же правило мы выберем? В учебниках по информатике часто демонстрируются возможности так называемого рекурсивного программирования на примере простого алгоритма роста деревьев. Компьютер начинает с того, что чертит одиночную вертикальную линию. Затем эта линия разветвляется на две. Затем каждая из получившихся ветвей разделяется на две ветви второго порядка. Затем каждая из этих новых ветвей разделяется на ветви третьего порядка и т. д. Такое программирование называется рекурсивным, потому что в каждой точке всего растущего дерева применяется одно и то же правило (в данном случае правило ветвления). Каким бы большим дерево ни вырастало, каждая его веточка разделяется снова и снова в соответствии все с тем же правилом.
Ознакомительная версия.