Шрифт:
WDLDMNLTDTJBKWIRZREZLMQCO P
Y YVMQKZPGJXWVHGLAWFVCHQYOPY
MWR SWTNUXMLCDLEUBXTQHNZVJQF
FU OVAODVIKDGXDEKYVMOGGS VT
HZQZDSFZIHIVPHZPETPWVOVPMZGF
GEWRGZRPBCTPGQMCKHFDBGW ZCCF
И так далее, и тому подобное. Вычислить, через какое время имеет смысл ожидать, что компьютер (или младенец, или обезьяна) случайно наберет METHINKS IT IS LIKE A WEASEL, нетрудно. Давайте прикинем общее число возможных фраз нужной нам длины, которые обезьяна, или младенец, или компьютер могли бы случайно набрать. Принцип расчета будет тот же самый, что и для гемоглобина, и результат получится таким же огромным. На месте первой буквы может оказаться любая из имеющихся 27 (давайте считать пробел тоже “буквой”). Таким образом, шансы, что обезьяна в качестве первой буквы поставит нужную нам M, составляют 1 из 27. Вероятность того, что правильными окажутся первые две буквы ME, будет равна вероятности правильного попадания на вторую букву E (1 из 27) при условии, что первая буква, M, уже оказалась верной — то есть 1/27 x 1/27 или 1/729. Вероятность получить первое слово, METHINKS, соответствует 1/27 для каждой из восьми составляющих его букв, иначе говоря, 1/27 x 1/27 x 1/27 … и т. д., всего восемь раз, то есть 1/27 в 8-й степени. Вероятность же написать правильно всю фразу из 28 знаков составляет 1/27 в 28-й степени, что означает число 1/27, помноженное само на себя 28 раз. Это очень маленькие шансы, где-то 1 к 10 000 миллионов миллионов миллионов миллионов миллионов миллионов. Ждать нужной фразы придется, мягко выражаясь, очень-очень долго. Что уж говорить о полном собрании сочинений.
Вот и все, на что способен одноступенчатый отбор случайных изменений. А как насчет накапливающего отбора, намного ли он будет эффективнее? Очень намного — возможно, больше, чем мы в состоянии вообразить, хотя если подумать, то это покажется почти что очевидным. Мы снова воспользуемся нашей компьютерной обезьянкой, но внесем в программу одно существенное изменение. Как и в предыдущий раз, компьютер начинает со случайной 28-буквенной последовательности:
WDLDMNLTDTJBKWIRZREZLMQCOP
А затем приступает к “селекции”. Он воспроизводит эту бессмысленную фразу несколько раз подряд, но с определенной вероятностью случайной ошибки — “мутации” — при копировании. Далее компьютер изучает получившиеся бессмысленные фразы — “потомство” исходной — и выбирает среди них ту, которая хоть сколько-нибудь больше других походит на искомое METHINKS IT IS LIKE A WEASEL. В данном случае среди следующего “поколения” победительницей оказалась такая фраза:
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 секунд до времени, необходимого, чтобы пообедать.
Итак, отличие накапливающего отбора (когда любое усовершенствование, каким бы незначительным оно ни было, служит фундаментом для дальнейшего строительства) от одноступенчатого (когда каждая новая “попытка” начинается “с чистого листа”) очень велико. Если бы эволюционный прогресс опирался на одноступенчатый отбор, это вряд ли привело бы хоть к чему-нибудь. Если бы, однако, слепым силам природы удалось каким угодно образом создать условия, благоприятные для накапливающего отбора, то последствия оказались бы необыкновенными и изумительными. Собственно говоря, именно это произошло на нашей планете, а сами мы принадлежим к числу самых недавних из таких последствий — и едва ли не самых необыкновенных и изумительных.