Добавить в цитаты Настройки чтения

Страница 16 из 20



Облака, под действием хаотичных порывов ветра, принимают форму, похожую на знакомые нам предметы. Есть публикация большой фотографии, сделанной пилотом маленького самолета, на которой облако выглядело как лицо Иисуса, пристально глядящего с неба. Все мы видели облака, которые напомнили нам что-нибудь — скажем, морского конька или улыбающееся лицо. Эти совпадения возникли в результате одноразового отбора, то есть — совпадение было единственным. Следовательно, они не очень выразительны. Подобие зодиакальных созвездий тем животным, в честь которых они были названы — Скорпион, Лев и так далее, столь же невыразительны, как и предсказания астрологов. Мы не видим при этом такого ошеломляющего подобия, какое мы видим в биологических адаптациях — продукте нарастающего отбора. Подобие насекомого листу растения или подобие богомола соцветию розовых цветов мы описываем как сверхъестественное, жуткое или захватывающее. Подобие облака хорьку только слегка развлекает и достойно лишь привлечения внимания нашего компаньона. Не говоря уж о том, что мы, весьма вероятно, тут же изменим своё мнение насчёт того, на что это облако похоже точнее.

Гамлет: Видите вы вон то облако в форме верблюда?

Полоний: Ей-богу, вижу, и действительно, ни дать ни взять верблюд.

Гамлет: По-моему, оно смахивает на хорька.

Полоний: Правильно: спинка хорьковая.

Гамлет: Или как у кита.

Полоний: Совершенно как у кита.[7]

Я не знаю, кто сказал первым, что при наличии достаточного времени обезьяна, беспорядочно стучащая по клавишам пишушей машинки, смогла бы когда-нибудь напечатать все произведения Шекспира. Ключевая фраза здесь, конечно, «при наличии достаточного времени». Давайте несколько сузим задачу, стоящую перед нашей обезьяной. Предположим, что ей нужно воспроизвести не все произведения Шекспира, а только короткое предложение «Methinks it is like a weasel» («По-моему, оно смахивает на хорька»), и облегчим её работу, предоставив ей пишущую машинку с клавиатурой, состоящей только из 26 букв (заглавных) и клавиши пробела. Сколько времени ей потребуется, чтобы написать это небольшое предложение?

Предложение состоит из 28 символов, так что давайте предположим, что обезьяна будет производить серию попыток, состоящих из 28 ударов по клавиатуре. Если она напечатает фразу правильно, то это будет окончанием эксперимента. Если нет, то мы предоставляем ей другую 28-символьную «попытку». У меня нет знакомых обезьян, но, к счастью, моя 11-месячная дочь — опытный генератор случайных символов, она лишь продемонстрировала слишком большое нетерпение, чтобы продвигаться в работе обезьяны-машинистки поэтапно. Вот что она напечатала на компьютере:

UMMK JK CDZZ F ZD DSDSKSM

S SS FMCV PU I DDRGLKDXRRDO

RDTE QDWFDVIOY UDSKZWDCCVYT

H CHVY NMGNBAYTDFCCVD D

RCDFYYYRM N DFSKD LD K WDWK

JJKAUIZMZI UXDKIDISFUMDKUDXI

Поскольку у дочери есть другие важные дела, то роль такой машинистки я поручил компьютерной программе, имитирующей беспорядочно печатающего младенца или обезьяну:

WDLDMNLTDTJBKWIRZREZLMQCO P

Y YVMQKZPGJXWVHGLAWFVCHQYOPY

MWR SWTNUXMLCDLEUBXTQHNZVJQF

FU OVAODVYKDGXDEKYVMOGGS VT

HZQZDSFZIHIVPHZPETPWVOVPMZGF

GEWRGZRPBCTPGQMCKHFDBGW ZCCF

И так далее в том же духе. Несложно подсчитать, как долго нам придётся ждать, пока генератор случайных символов (младенец или обезьяна) напечатают «METHINKS IT IS LIKE A WEASEL». Оценим общее количества возможных фраз заданной длины, которые обезьяна, младенец или генератор случайных символов могли бы напечатать. Вычисления будут теми же самыми, какие мы делали для гемоглобина, и приведут к аналогично большому результат. На первой позиции этой строки возможно 27 возможных символов (включая символ пробела). Шанс, что обезьяна, напечатает букву «M» прямо следует из количества символов — 1 из 27. Шанс, что вторая буква будет «E» аналогичен шансу, что первая буква будет «M», а шанс, что первые две буквы будут «ME» равен их произведению 1/27 x 1/27, что даст 1/729. Шанс на то, что первое слово будет «METHINKS» — это шанс на появление каждой буквы на своём месте — 1/27 для каждой, итого (1/27) x (1/27) x (1/27) x (1/27) … и так далее 8 раз, то есть (1/27) в степени 8. Шанс на получение всей этой фразы из 28 символов, есть (1/27) в степени 28, то есть (1/27) умножимое само на себя 28 раз. Это очень маленький шанс, примерно 1 из 10000 миллионов миллионов миллионов миллионов миллионов миллионов. Искомую фразу, таким образом придётся ждать, мягко говоря, долго, не говоря уж о всех произведениях Шекспира.

Так долго получается в случае одноразового отбора случайной вариации. Теперь рассмотрим нарастающий отбор — насколько он будет эффективнее? Очень и очень намного! Гораздо эффективнее, чем мы, возможно, себе представляем в первый момент, хотя это почти очевидно, если мы подумаем над этим чуть более. Мы снова используем нашу компьютерную обезьяну, но внесём критическое изменение в программу. Она, как и раньше, снова начинает, выбирая случайную последовательность из 28 букв:

WDLMNLT DTJBKWIRZREZLMQCO P

Однако теперь она «размножает» эту случайную фразу. Она реплицирует её неоднократно, но с некоторой вероятностью случайной ошибки — «мутации» при копировании. Компьютер исследует мутировавшую бессмысленную фразу, «потомка» первоначальной, и выбирает ту, которая более всего (хотя бы чуть-чуть) походит на нашу искомую фразу, «METHINKS IT IS LIKE A WEASEL». В данном случае, в следующем поколении победила такая фраза:



WDLTMNLT DTJBSWIRZREZLMQCO P

Улучшение неочевидное! Но процедура повторилась, и снова мутировавший «потомок» «вывелся» от последней фразы, и отобран новый «победитель». И так поколение за поколением. После 10 поколений, фраза, выбранная на роль «производителя» была такой:

MDLDMNLS ITJISWHRZREZ MECS P

А вот что было после 20 поколений:

MELDINLS IT ISWPRKE Z WECSEL

А вот здесь глаз уже не может на заметить некоторого подобия искомой фразе. В 30-м поколении в подобии можно уже не сомневаться:

METHINGS IT ISWLIKE B WECSEL

На 40-м поколении — мы в одной букве от цели:

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 секунд до длительности спокойного завтрака.

7

«Гамлет», пер. Б. Пастернака — (В.И.)