Oleg А. Chagin (olegchagin) wrote,
Oleg А. Chagin
olegchagin

В мире родственников

Я не знаю, кто сказал первым, что при наличии достаточного времени, обезьяна, беспорядочно стучащая по клавишам пишушей машинки, смогла бы когда-нибудь напечатать все произведения Шекспира.

Ключевая фраза здесь, конечно "при наличии достаточного времени". Давайте несколько сузим задачу, стоящую перед нашей обезьяной. Предположим, что ей нужно воспроизвести не все произведения Шекспира, а только короткое предложение "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 Ч 1/27, что даст 1/729. Шанс на то, что первое слово будет "METHINKS" – это шанс на появление каждой буквы на своём месте – 1/27 для каждой, итого (1/27) Ч (1/27) Ч (1/27) Ч (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 секунд до длительности спокойного завтрака.

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

Ричард Докинз, «Слепой часовщик»

Subscribe
Comments for this post were disabled by the author