— Марло.
Питер удивился:
— Ты знаешь эти строки?
Саркар кивнул:
— Разумеется. Частная школа, ты что, забыл? Это из «Доктора Фаустуса»: «У ада нет границ, нет места пребыванья: ведь там, где мы, там ад, там вечные стенанья, и там, где ад, там мы — вот наше наказанье».
Питер промолчал.
— Посмотри на фразу, которую ты напечатал, — она состоит из 39 букв. — Саркару не пришлось их подсчитывать: как только Питер перестал печатать, компьютер сообщил длину файла вместе с некоторыми другими статистическими данными. — А теперь представь, что каждая из этих букв означает некий ген. Каждый из этих генов может принимать одно из 27 значений: от А до Z плюс пробел. Поскольку ты напечатал цепочку из 39 символов, это значит, что существует 2739 возможных строк такой же длины. Другими словами, жуткое количество.
Саркар протянул руку и нажал несколько клавиш.
— Эта рабочая станция, — пояснил он, — может каждую секунду генерировать сотни тысяч случайных строк длиной в 39 символов. — Он показал на цифру, появившуюся на экране. — Но даже при такой огромной скорости ей потребуется 2x1043 лет — в триллионы раз больше всего времени существования Вселенной, — чтобы набрести именно на эту строку Марло, при условии, что она каким-то образом сможет перебирать их все подряд.
Питер кивнул:
— Это как с теми обезьянами.
Саркар запел:
— И вот мы идем…
— Нет, не эти обезьяны, о которых ты подумал. Бесконечное количество обезьян, стучащих по клавиатурам компьютеров. Они никогда не напечатают точный экземпляр тома Шекспира, сколько бы ни старались.
Саркар улыбнулся:
— Это из-за того, что они работают вслепую. Но эволюция не слепа. Она кумулятивна. Каждое поколение чуть лучше предшествующего, если исходить из критериев отбора, налагаемых средой. Посредством кумулятивной эволюции можно перейти от абракадабры к поэзии, или от уравнений к рыбам, или даже от плесени к человеческим существам поразительно быстро. — Он тронул одну клавишу и посмотрел на экран. — Вот чисто случайная последовательность из тридцати девяти символов. Будем считать ее исходным организмом. На экране появилось:
000 wtshxowlveamfhiqhgdiigjmh rpeqwursudrrfe
— Посредством кумулятивной эволюции компьютер может перейти от этой случайной начальной точки к желаемой конечной точке всего за несколько секунд.
— Как? — спросил Питер.
— Пусть в каждом поколении одна строка текста может породить тридцать девять потомков. Но, как и в реальной жизни, потомки не вполне тождественны предку. Вместо этого в каждом из потомков один ген — одна буква — будет другой, соседней с отцовской вверх или вниз по алфавиту: так, например, Y может превратиться в X или в Z.
— Понял.
— Для каждого из тридцати девяти потомков компьютер определит, какой из них больше всего подходит к данной среде — какой ближе всего к этой строчке Марло, нашему идеалу наиболее приспособленной формы жизни. Затем одному из них — наиболее приспособленному — будет дана возможность размножаться в следующем поколении. Понимаешь?
Питер кивнул.
— Хорошо. Мы позволим эволюции продвинуться на одно поколение. — Саркар нажал еще одну клавишу. Тридцать девять совершенно одинаковых на вид строк появились на экране, и мгновение спустя тридцать восемь из них исчезли. — Вот наиболее приспособленный потомок. — Он указал на экран:
000 wtshxowlveamfhiqhgdiigjmh rpeqwursudnfe
001 wtshxowlvdamfhiqhgdiigjmh rpeqwursudnfe
— На первый взгляд это не очень заметно, но нижняя строчка чуть ближе к конечной цели, чем исходная.
— Я не вижу никакой разницы, — сказал Питер. Саркар пристально вгляделся в экран.
— Десятая буква изменилась, вместо Е стоит D. В целевой строке десятый символ — это пробел между словами «where» и «hell». Мы пользуемся циклическим алфавитом, считая пробел буквой, расположенной между А и Z. D ближе к пробелу, чем Е, так что эта строка немного лучше — чуть более приспособлена. — Он нажал еще на одну клавишу. — Теперь запустим эволюцию до конца — ну вот и готово.
Питер поразился:
— Как быстро.
— Кумулятивная эволюция, — торжествующе изрек Саркар. — Потребовалось всего 277 поколений, чтобы перейти от абракадабры к Марло — от хаоса к сложной структуре. Вот смотри, я буду показывать лишь каждое тридцатое поколение, причем гены, достигшие своих конечных состояний, как в нашей строке-образце, будут выделены прописными буквами.