Глава 3. Суммируем маленькие победы
Как мы уже поняли, живые существа слишком невероятны и слишком красиво «спроектированы», чтобы появиться случайно. Но тогда как же они возникли? Ответ, который дал Дарвин, таков: путём постепенных, пошаговых преобразований более простых существ, ведущих начало от первоначальных сущностей — достаточно простых, чтобы возникнуть самопроизвольно и спонтанно. Каждая последовательная, отталкивающаяся от предшествующего статус-кво новация эволюционного процесса была достаточно проста, чтобы возникнуть самопроизвольно. Но вся нарастающая последовательность таких шагов представляет собой совсем не случайный процесс, если рассматривать сложность конечных продуктов относительно изначальной отправной точки. Процессу накопления придаёт направленность неслучайный процесс выживания. Цель этой главы состоит в демонстрации мощности этой нарастающей селекции, как принципиально неслучайного процесса.
Прогуливаясь по галечному пляжу, вы наверняка заметите, что средний размер гальки в разных местах пляжа различается. Гальки помельче как правило сконцентрированы в одних тянущихся вдоль пляжа зонах или полосах, покрупнее — в других. Гальки отсортировались, упорядочились, отобрались. Какое-нибудь живущее на берегу племя могло бы задаваться вопросом о причинах этой сортированности и упорядоченности в мире и могло бы сочинить объясняющий её миф, возможно, приписывая эти деяния Великому Духу Небес, любящему опрятность и упорядоченность. Мы могли бы снисходительно улыбнуться, узнав о таком суеверном представлении, и объяснить, что на деле упорядоченность была плодом слепых сил физики, в данном случае — воздействием волн. У волн нет никаких целей и намерений, никакой любви к опрятности и совсем никаких мыслей. Они лишь энергично разбрасывают гальку во все стороны, а гальки различных размеров различно реагируют на это воздействие, и в результате они оседают на различных уровнях пляжа. Из полного беспорядка получился маленький порядок, и никакой разум его не планировал.
Волны и галька являются простым примером системы, которая автоматически генерирует какую-то упорядоченность. Наш мир полон таких систем. В качестве простейшего примера я могу предложить отверстие. Через отверстие могут проходить только объекты меньшие его. Это означает, что, если вы начнёте хаотично собирать объекты над отверстием и с какой-то силой трясти и толкать их в случайных направлениях, то через какое-то время объекты выше, и объекты ниже отверстия приобретут неслучайную отсортированность. Пространство ниже отверстия будет склонно содержать объекты, меньшие отверстия, а пространство выше — большие. Конечно же, человечество уже давно использует этот простой принцип генерации неслучайности в таком полезном устройстве, как сито.
Солнечная система — это устойчивая система из планет, комет и разных осколков, вращающихся по орбитам вокруг Солнца; возможно, это одна из многих таких систем во Вселенной. Чем ближе такой спутник к своему солнцу, тем быстрее он должен двигаться по орбите, чтобы противостоять его притяжению и оставаться на устойчивой орбите. Для любой заданной орбиты существует только одна скорость, с которой спутник может двигаться, оставаясь на этой орбите. Если он приобретёт любую другую скорость, то или улетит в глубокий космос, или врежется в Солнце, или перейдёт на другую орбиту. И если мы посмотрим на планеты нашей солнечной системы, то увидим, что каждая из них двигается с именно той скоростью, чтобы держатся на своей устойчивой орбите вокруг Солнца. Что это — благословенное чудо преднамеренного проекта? Нет — лишь другое естественное «сито». Очевидно, что все планеты, которые мы видим на орбитах вокруг Солнца, должны двигаться со строго определённой скоростью, чтобы держаться на своих орбитах — в противном случае мы бы не видели их там, потому что их бы там не было! Но столь же очевидно, что это не есть свидетельство сознательности проекта. Это — лишь другой вид сита. Но отсеивания такого порядка из исходного беспорядка само по себе недостаточно, чтобы объяснить массовую упорядоченность, которую мы видим у живых существ — даже отдалённо. Вспомните аналогию с кодовым замком. Упорядочивать простым просеиванием — примерно то же самое, что открывать кодовый замок с одним диском: он легко открывается при минимальном везении. Живые системы эквивалентны гигантскому кодовому замку с почти неисчислимым количеством дисков. Изготовление биологической молекулы, такой, как гемоглобин (красный пигмент крови), простым просеиванием было бы эквивалентно тому, чтобы смешивать наугад все аминокислотные остатки гемоглобина в надежде, что молекула гемоглобина спонтанно воссоздастся по счастливой случайности. Степень везения, которая бы потребовалась для этого подвига, невероятна и образно названа Айзеком Азимовым «мысленным монстром».
Трёхмерная молекула гемоглобина состоит из четырёх переплетающихся аминокислотных цепей. Давайте рассмотрим только одну из них. Она состоит из 146 аминокислот. Всего в живой материи встречается 20 различных аминокислот. Количество возможных способов взаимосоединения 20 видов звеньев в цепь из 146 штук длиной — это немыслимо большое число, которое Азимов назвал «числом гемоглобина». Его легко вычислить, но невозможно представить. Первым звеном этой цепи из 146 звеньев могла быть любой из 20 возможных аминокислот. Вторая также могла быть любой из этих же 20, всего возможных вариантов двухзвенной цепи — 20 x 20 = 400. Количество возможных вариантов трёхзвенной цепи — 20 x 20 x 20 = 8000. Количество возможных вариантов 146-звенной цепи — 20 умноженное само на себя 146 раз. Это потрясающе большое число. Миллион — это единица с 6 нулями. Миллиард (1000 миллионов) — единица 9 нулями. Искомое нами «число гемоглобина», это, округлённо — единица 190 нулями! Один против этого числа — вот наш шанс натолкнуться на гемоглобин наудачу. А ведь сложность молекулы гемоглобина — ничтожная часть сложности живого тела. Очевидно, что само по себе простое просеивание даже отдалённо не способно к созданию той упорядоченности, что имеется в живом существе. Просеивание — это существенный компонент в генерации живой упорядоченности, но это далеко-далеко не весь рассказ. Нужно ещё кое-что. Чтобы пояснить эту мысль, мне будет нужно подчеркнуть различие между «одноразовым» и «нарастающим» отбором. Простые сита, которые мы пока рассматривали в этой главе — это всё примеры одноразового отбора. Организация живой материи — это плод нарастающего отбора.
Принципиальное различие между одноразовым и нарастающим отбором состоит вот в чём. При одноразовом отборе отбираемые или сортируемые объекты — гальки или что бы то ни было ещё — сортируются раз и навсегда. При нарастающем отборе, напротив, они «размножаются»; или как-то иначе передают результаты одного просеивания в последующее просеивание, которое передает его далее …, и так бесконечно. Объекты подвергаются отбору или сортировке в течение многих последовательных поколений. Конечный продукт одного поколения — отправная точка отбора следующего поколения, и так много раз. Применение таких слов как «воспроизводство» и «поколение», которые мы ассоциируем с живыми существами естественно, ибо живые существа — главные примеры известных нам сущностей, участвующих в нарастающем отборе. На практике они, возможно, единственные сущности, которые в нём участвуют. Но в этот момент я не хочу ставить вопрос столь жёстко.
Облака, под действием хаотичных порывов ветра, принимают форму, похожую на знакомые нам предметы. Есть публикация большой фотографии, сделанной пилотом маленького самолета, на которой облако выглядело как лицо Иисуса, пристально глядящего с неба. Все мы видели облака, которые напомнили нам что-нибудь — скажем, морского конька или улыбающееся лицо. Эти совпадения возникли в результате одноразового отбора, то есть — совпадение было единственным. Следовательно, они не очень выразительны. Подобие зодиакальных созвездий тем животным, в честь которых они были названы — Скорпион, Лев и так далее, столь же невыразительны, как и предсказания астрологов. Мы не видим при этом такого ошеломляющего подобия, какое мы видим в биологических адаптациях — продукте нарастающего отбора. Подобие насекомого листу растения или подобие богомола соцветию розовых цветов мы описываем как сверхъестественное, жуткое или захватывающее. Подобие облака хорьку только слегка развлекает и достойно лишь привлечения внимания нашего компаньона. Не говоря уж о том, что мы, весьма вероятно, тут же изменим своё мнение насчёт того, на что это облако похоже точнее.
Гамлет: Видите вы вон то облако в форме верблюда?
Полоний: Ей-богу, вижу, и действительно, ни дать ни взять верблюд.
Гамлет: По-моему, оно смахивает на хорька.
Полоний: Правильно: спинка хорьковая. Гамлет: Или как у кита.
Полоний: Совершенно как у кита.[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 секунд до длительности спокойного завтрака.
Различие между нарастающим отбором (при котором каждое улучшение, пусть небольшое, используется как фундамент для будущей постройки) и одноразовым выбором (при котором каждая новая «попытка» делается «с нуля»), просто неимоверно огромно. Если бы эволюционный прогресс полагался на одноразовый отбор, то он никогда и нигде не имел бы места. Однако, если где-нибудь и как-нибудь слепые силы природы создадут условия для нарастающего отбора, то необыкновенные и удивительные последствия не заставят себя ждать. Собственно говоря, именно это и произошло на нашей планете, и мы с вами — одно из новейших, и может быть — самое необыкновенное и удивительное из этих последствий. Просто поразительно, как можно всё ещё полагать вычисления, вроде наших вычислений «числа гемоглобина» аргументами против теории Дарвина. Люди, так полагающие, часто эксперты в своей сфере — астрономии или где-то ещё, похоже, вполне искренне полагают, что дарвинизм объясняет организацию живой материи в терминах «спонтанности» — одного только «одноразового отбора». Вера в то, что дарвиновская эволюция «спонтанна», не просто ложна. Это точная антитеза правды. Случай — второстепенный компонент в дарвиновском рецепте, главнейший же — нарастающий отбор, который принципиально неслучаен.
Облака не способны к нарастающему отбору. Не существует механизма, посредством которого облака какой-то конкретной формы могли бы передавать дочернему облаку сходство с собой. Если бы такой механизм имелся, если бы облако, похожее на хорька или верблюда могли бы порождать линию других облаков примерно той же самой формы, то нарастающий отбор имел бы возможность продвижения. Конечно, облака дробятся и иногда формируют «дочерние» облака, но для нарастающего отбора этого недостаточно. Также необходимо чтобы «потомок» любого данного облака походил на своего «родителя» больше, чем он походит на любого чужого «родителя» в «популяции». Этот жизненно важный момент очевидно искажённо истолковывался некоторыми философами, которые в последние годы проявили интерес к теории естественного отбора. Кроме того, необходимо, чтобы шансы данного облака на выживание и порождение потомков зависели от его формы. Возможно, в какой-нибудь отдалённой галактике эти условия действительно возникали, и результатом этого могла быть, если прошло достаточное количество миллионов лет, некая воздушная, утончённая форма жизни. Это могло бы быть хорошим научно-фантастическим рассказом — его можно было бы назвать «Белое облако», но для нашей задачи, компьютерная модель — такая, как модель «обезьяна-Шекспир», легче для понимания.
Хотя модель «обезьяна-Шекспир» полезна для объяснения различий между одноразовым и нарастающим отбором, она в некоторых важных отношениях вводит в заблуждение. Одно из них состоит в том, что, в каждом поколении селективного размножения, мутантные фразы-потомки оценивались по критерию сходства с отдалённой идеальной целью, фразой «METHINKS IT IS LIKE A WEASEL». Жизнь не такова. Эволюция не имеет никаких долговременных целей. Не существует никаких отдалённых целей, никакого финального совершенства, которое могло бы служить критерием отбора, хотя человеческое тщеславие и лелеет абсурдную мысль о том, что наш вид является заключительной целью эволюции. В реальной жизни критерий для отбора всегда краткосрочен — это простое выживание; или строже говоря — репродуктивный успех. То, что по прошествии геологических эпох ретроспективно выглядит как движение к достижению какой-то отдалённой цели, на деле же — всегда побочное следствие многих поколений краткосрочного отбора. Наш «часовщик» — нарастающий естественный отбор — слеп к будущему и не имеет никаких долговременных целей.
Мы можем изменить нашу компьютерную модель, чтобы принять во внимание этот момент; мы можем также сделать её более реалистичной в других отношениях. Буквы и слова — узкочеловеческие явления, так что давайте научим компьютер рисовать картины. Может быть, мы даже увидим очертания, подобные животным, эволюционирующим в компьютере посредством нарастающего отбора мутантных форм. Мы не будем навязывать своих представлений, предлагая начать с какого-нибудь конкретного животного. Мы хотим, чтобы они появились исключительно в результате нарастающего отбора случайных мутаций.
В реальной жизни, форма тела каждой особи животного продуцируется эмбриональным развитием. Эволюция получается потому, что в последовательных поколениях имеются небольшие различия в эмбриональном развитии. Эти различия возникают из-за изменений (мутации — это тот самый маленький элемент спонтанности в эволюции, о котором я говорил) в генах, управляющих развитием. Поэтому в нашей компьютерной модели должно быть нечто эквивалентное эмбриональному развитию, и нечто эквивалентное генам, могущим мутировать. Удовлетворить этим спецификациям в компьютерной модели можно различными путями. Я выбрал из них один и написал программу, которая его реализовала. Сейчас я опишу эту компьютерную модель, чтобы вы не думали, что я что-то скрываю. Если вы не разбираетесь в компьютерах, то вам достаточно знать, что компьютеры — это механизмы, которые делают в точности то, что вы им велите, но часто удивляют вас результатом. Список инструкций для компьютера называется программой («program» — это стандартная американская нотация, она к тому же рекомендуется Оксфордским словарём; альтернативная нотация, «programme», обычно употребляемая в Британии, вроде бы является заимствованием из французского).
Эмбриональное развитие — это слишком сложный процесс, чтобы его можно было реалистично смоделировать на маленьком компьютере. Нам придётся представить его неким упрощённым аналогом. Нам нужно найти простое правило рисования, которое компьютер может легко выполнить, и которое может затем изменяться под влиянием «генов». Какое правило рисования мы выберем? Учебники информатики часто иллюстрируют мощность того, что они называют «рекурсивным» программированием, простыми процедурами рисования деревьев. Компьютер начинает рисовать одну вертикальную линию. Затем линия разветвляется на две ветки, после чего каждая из ветвей разделяется ещё на две суб-ветки. Затем каждая из суб-ветвей подразделяется на суб-суб-ветки и так далее. Метод называется «рекурсивным» потому, что одно и то же правило (в нашем случае — правило ветвления) локально применяется на всём растущем дереве. Дерево может быть сколь угодно велико, ибо одно и то же правило разветвления применяется в кончиках всех его веток.
«Глубина» рекурсии — это количество допускаемых суб-суб-…ветвлений между началом и остановкой процесса. На рисунке 2 показаны случаи, когда вы велите компьютеру выполнить одно и то же правило рисования, но остановиться на разных глубинах рекурсии. При очень глубокой рекурсии образец становится весьма сложным, но тем не менее на рисунке 2 можно легко видеть, что это результат того же самого очень простого правила ветвления. Конечно, именно это происходит у настоящего дерева. Схема ветвления дуба или яблони выглядит сложной, но на деле таковой не является. Базовое правило ветвления очень просто. Но из-за того, что оно применяется рекурсивно во всех отрастающих кончиках всех ветвей дерева — ветви производят суб-ветви, затем каждая суб-ветвь производят суб-суб-ветви и так далее — в результате всё дерево получается большим и густым.
Рис. 2.
Рекурсивное ветвление — это также хорошая метафора для эмбрионального развития растений и животных. Я не хочу сказать, что эмбрион животного напоминает ветвящееся дерево. Нет, конечно. Но рост всех эмбрионов осуществляется делением клеток. Деление любой клетки всегда состоит в разделении её на две дочерние. И гены всегда влияют на результирующие эффекты развития тел посредством локального влияния на клетки и на «двухветочную» схему деления клетки. Гены животного никак не являются эдаким грандиозным чертежом всего тела. Как мы увидим далее, гены более подобны рецепту, чем подобному чертежу — более того, не тому рецепту, который описывает развивающийся эмбрион как целое, но рецепту поведения отдельной клетки или локального кластера делящихся клеток. Я не спорю, что весь эмбрион, а позже и взрослая особь, может обладать крупными размерами и формой. Но это крупное тело появляется как результат большого количества маленьких локальных клеточных эффектов во всём развивающемся теле, и эти локальные эффекты в основном представляют собой такие вот «двухветочные» расколы клеток. Именно влияя на эти локальные события, гены в конечном счёте оказывают влияние на взрослое тело.
Итак, простое правило ветвления рисунка дерева будет похоже на обещанный аналог эмбрионального развития. Ну раз это так, то мы оформляем его в маленькую компьютерную процедуру, называем её РАЗВИТИЕ и готовим к включению в бóльшую программу с названием ЭВОЛЮЦИЯ. И в качестве первого шага к написанию этой большей программы, обратим наше внимание на гены. Как будет мы моделировать «гены» в нашей компьютерной модели? В реальном живом существе гены делают две вещи: влияют на развитие и переходят в следующие поколения. У реальных животных и растений имеются десятки тысяч генов, но мы скромно ограничим нашу компьютерную модель девятью. Каждый из этих девяти генов просто представлен неким числом в компьютере, которое мы будем называть его значением. Значение конкретного гена может быть, скажем, 4 или -7.[8]
Как наши гены будут влиять на развитие? Они могут делать много чего. Основная идея состоит в том, что они должны оказывать какое-то небольшое количественное влияние на правило рисования, которое и есть РАЗВИТИЕ. Например, один ген мог бы влиять на угол ветвления, другой мог бы влиять на длину некоторых конкретных ветвей. Ещё очевидная задача для гена — влиять на глубину рекурсии (количество последовательных ветвлений). Я поручил этот эффект гену 9. Таким образом, вы можете расценивать рисунок 2 как картину родственных организмов, идентичных друг другу во всём, кроме значения гена 9. Я не буду подробно описывать, что делает каждый из других восьми генов. Вы можете получить общие представления об этом, изучая рисунок 3. В середине рисунка — основное дерево, одно из деревьев рисунка 2. Окружают это центральное дерево восемь других. Все они совпадают с центральным деревом, за исключением того, что какой-то один ген из восьми у них был изменён — «мутировал». Например, дерево справа от центрального показывает, что будет, если ген 5 мутирует, увеличиваясь на +1 относительно его прежнего значения. Если б было достаточно места, я бы с удовольствием напечатал кольцо из 18 мутантов вокруг центрального дерева. Почему именно 18? Потому, что каждый из 9 генов может мутировать как в «восходящем» (на единицу больше его значения), так и «нисходящем» направлении (на единицу меньше его значения). Так что кольца из 18 деревьев было бы достаточно, чтобы отобразить всех возможных одношаговых мутантов, которых вы можете произвести от одного центрального дерева.
Рис. 3.
У каждого из этих деревьев есть своя собственная, уникальная «генетическая формула» — числовые значения всех его девяти генов. Я не записывал генетических формул, потому что они, сами по себе для вас ничего не значили бы. Это справедливо и для реальных генов. Гены только тогда начинают означать что-то, когда они транслированы посредством синтеза белка, в правила роста развивающегося эмбриона. Также и в нашей компьютерной модели, числовые значения этих девяти генов только тогда что-то значат, когда они транслированы в правила роста ветвящегося дерева. Но вы можете понять роль каждого гена, сравнивая тела двух организмов с известными к отличиями конкретного гена. Например, сравнив основное дерево в середине рисунка с двумя деревьями справа и слева, и вы получите некоторое представление о функции гена 5.
Это как раз то, что делают генетики, изучающие реальную жизнь. Генетики обычно не знают, какие эффекты гены оказывают на рост эмбриона. Как и не знают полной генетической формулы животного. Но сравнивая тела двух взрослых животных, о которых известно, что они отличаются одним геном, они могут увидеть, какой эффект этот ген оказывает. Картина усложняется тем, что эффекты генов взаимодействуют друг с другом, причём сложнее, чем просто складываются. Это же самое справедливо и для компьютерных деревьев. И даже очень — что покажут дальнейшие рисунки.
Заметьте, что все очертания симметричны относительно вертикальной оси. Это есть ограничение, которое я наложил на процедуру РАЗВИТИЕ. Я сделал это отчасти по эстетическим соображениям, отчасти — чтобы сэкономить на количестве необходимых генов (если бы гены не оказывали зеркально-симметричных эффектов на обе стороны дерева, нам были бы нужны отдельные гены для левой и правой сторон); а частично потому, что я надеялся получить очертания, похожие на животных, а большинство тел животных весьма симметричны. Поэтому я с этого момента перестану называть эти создания «деревьями» и буду называть их «тела» или «биоморфы». Биоморф — название, предложенное Десмондом Моррисом для образов, напоминающих каких-то смутных животных в его сюрреалистических картинах. Эти картины занимают особое место в моих привязанностях, потому что одна из них была воспроизведена обложке моей первой книги. Десмонд Моррис заявлял, что его биоморфы «эволюционировали» в его воображении, и что их эволюцию можно проследить в его последовательных картинах.
Вернёмся к компьютерным биоморфам и к кольцу из 18 возможных мутантов. 8 наиболее интересных из них нарисованы на рисунке 3. Так как каждый член кольца отстоит только на один мутационный шаг от центрального биоморфа, то нам легко видеть, что это — дети центрального родителя. Здесь мы имеем аналог ВОСПРОИЗВОДСТВА, которое, как и РАЗВИТИЕ, мы можем оформить в другую маленькую компьютерную программу, готовую к включению в нашу большую программу под названием ЭВОЛЮЦИЯ. Обратите внимание на две вещи в нашем ВОСПРОИЗВОДСТВЕ. Первая: здесь нет никаких полов; воспроизводство асексуально. Я представляю себе биоморфы самками, потому что асексуальные животные, такие, как тли, почти всегда пребывают в форме самок. Вторая: все мои мутации ограничены одной штукой за раз. Ребёнок отличается от своего родителя в только в одном из девяти генов; кроме того, мутации всегда прибавляют или убавляют единицу из значения соответствующего родительского гена. Всё это — лишь произвольные соглашения; они могли быть другими, но всё ещё оставались бы биологически реалистичными.
Но есть ещё одна, совсем не произвольная особенность модели, которая реализует фундаментальный биологический принцип. Форма каждого ребёнка не отталкивается от самой по себе формы родителя. Форма каждого ребёнка вырабатывается исходя из значений его девяти генов (влияющих на углы, длины и так далее). И каждый ребёнок получает свои девять генов от девяти генов его родителя. Именно это и происходит в реальной жизни. Тела не переходят в следующее поколение — только гены. Гены влияют на эмбриональное развитие тела, в котором они находятся.
И эти же гены или переходят в следующее поколение, или нет. Значения генов никак не меняются от их участия в развитии тела, но вероятность того, что они будут переданы в следующее поколение, будет зависеть от успешности тела, которое они помогали создавать. Вот почему в компьютерной модели было важно, чтобы эти две процедуры с названиями РАЗВИТИЕ и ВОСПРОИЗВОДСТВО были написаны, как две герметичные капсулы. Они взаимонепроницаемы, за исключением того, что ВОСПРОИЗВОДСТВО передаёт значения гена РАЗВИТИЮ, где они влияют на правила роста. РАЗВИТИЕ категорически не передаёт значения генов назад в ВОСПРОИЗВОДСТВО — иное было бы равносильно «ламаркизму»
(см. главу 11).
Мы оттранслировали эти два наших программных модуля под теми же идентификаторами: РАЗВИТИЕ и ВОСПРОИЗВОДСТВО. ВОСПРОИЗВОДСТВО передаёт гены в следующее поколение, с вероятностью мутации. РАЗВИТИЕ считывает гены, предоставленные ВОСПРОИЗВОДСТВОМ в любом данном поколении, и транслирует эти гены в правила рисования, и следовательно — в очертания тела на компьютерном экране.
Настало время свести эти два модуля в одну большую программу под названием ЭВОЛЮЦИЯ.
Работа ЭВОЛЮЦИИ в основном состоит из бесконечного повторяющегося вызова ВОСПРОИЗВОДСТВА. ВОСПРОИЗВОДСТВО в каждом поколении считывает гены, которые предоставлены ему предыдущим поколением, и передаёт их в следующее поколение, однако с небольшой случайной ошибкой — мутацией. Мутация состоит лишь в прибавлении или отъятии единицы из значения наугад выбранного гена. Это означает, что по мере смены поколений, отличие значения гена от его первоначального значения может стать очень большим, накапливаясь по одному маленькому шагу за поколение. Мутации случайны, однако накопленное изменение через многие поколения — нет. Потомок в любом поколении отличается от своего родителя в случайную сторону. Но для перехода в следующее поколение из этих потомков отбирается неслучайный экземпляр. Именно так и происходит дарвиновский отбор. Субъекты отбора — не сами гены, но тела, на форму которых гены влияют посредством РАЗВИТИЯ.
Кроме репродуцирования, гены в каждом поколении управляют РАЗВИТИЕМ, которое, повинуясь строго установленным правилам, выращивает соответствующее тело на экране. В каждом поколении присутствует весь «выводок» «детей» (то есть — особей следующего поколения). Все эти дети являются мутантными потомками одного родителя, отличающиеся от своего родителя одним геном. Это очень высокий темп мутаций — откровенно искусственная особенность компьютерной модели. Вероятность мутирования гена в реальной жизни — обычно меньше одного против миллиона. Столь высокая частота мутаций в модели выбрана потому, что вся эта деятельность происходит на компьютерном экране для наблюдения глазом человека, а у людей нет терпения ждать одну мутацию миллион поколений!
Человек играет активную роль в этой истории. Он — отбирающий агент. Он рассматривает выводок потомков и выбирает один для размножения. Каждый выбранный затем становится родителем следующего поколения, и выводок его мутировавших детей одновременно отображаются на экране. Человек выполняет здесь точно ту же роль, что и при выведении новых пород собак или элитных роз. Другими словами, наша модель — это модель искусственного отбора, а не естественного. Критерий «успешности» здесь не есть прямой критерий выживания, как это имеет место в реальном естественном отборе. В настоящем естественном отборе, если тело обладает особенностями, дарующими ему выживание, то его гены выживают автоматически, потому что является его частью. Так что выживающие гены автоматически являются теми генами, которые даруют телам помогающие им выживать качества. В нашей компьютерной модели критерий отбора — не выживание, а способность удовлетворить человеческой прихоти. Это не обязательно праздная, случайная прихоть, поскольку мы можем принять критерий отбора на приближение к какой-то особенности, вроде «сходства с плакучей ивой». Однако в моём опыте, человек-селекционер часто придирчивее и меркантильнее, чем он мало отличается от некоторых видов естественного отбора.
Селекционер сообщает компьютеру, какого потомка из текущего выводка нужно размножить. Гены избранника передаются в ВОСПРОИЗВОДСТВО, и начинается новое поколение. И этот процесс, как и эволюция реальной жизни, происходит нескончаемо. Каждое поколение биоморфов — это только единственный мутационный шаг от своего предшественника и своего преемника. Но через 100 поколений ЭВОЛЮЦИИ, биоморфы могут отстоять уже примерно на 100 мутационных шагов от прародителя. А за 100 мутационных шагов может много чего случиться. Начиная играть в свою свеженаписанную программу ЭВОЛЮЦИЯ, я многого не загадывал. Главное, что удивило меня — биоморфы могут довольно быстро переставать напоминать деревья. Базовое двухветочное ветвление всегда присутствует в них, но оно легко закрашивается, так как линии пересекают и пере-пересекают одна другую, производя массивы однородного цвета (в напечатанном виде — только чёрно-белые). Рисунок 4 показывает одну конкретную эволюционную историю, состоящая из 29 поколений. Прародитель — крошечное существо, одна точка. Хотя тело предка — точка, но она, подобно бактерии в девственной слизи, скрывала в себе потенциал для разветвления в точный аналог центрального дерева рисунка 3: однако ген 9 велел ему ветвиться нуль раз! Все с<