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

Страница 11 из 18

Облака не способны к нарастающему отбору. Не существует механизма, посредством которого облака какой-то конкретной формы могли бы передавать дочернему облаку сходство с собой. Если бы такой механизм имелся, если бы облако, похожее на горностая или верблюда могли бы порождать линию других облаков примерно той же самой формы, то нарастающий отбор имел бы возможность продвижения. Конечно, облака дробятся, и иногда формируют "дочерние" облака, но для нарастающего отбора этого недостаточно. Также необходимо чтобы "потомок" любого данного облака походил на своего "родителя" больше, чем он походит на любого чужого "родителя" в "популяции". Этот жизненно важный момент очевидно искажённо истолковывался некоторыми философами, которые в последние годы проявили интерес к теории естественного отбора. Кроме того, необходимо, чтобы шансы данного облака на выживание и порождение потомков зависели от его формы. Возможно, в какой-нибудь отдалённой галактике эти условия действительно возникали, и результатом этого могла быть, если прошло достаточное количество миллионов лет, некая воздушная, утончённая форма жизни. Это могло бы быть хорошим научно-фантастическим рассказом – его можно было бы назвать "Белое облако", но для нашей задачи, компьютерная модель – такая, как модель "обезьяна-Шекспир", легче для понимания.

Хотя модель "обезьяна-Шекспир" полезна для объяснения различий между одноразовым и нарастающим отбором, она в некоторых важных отношениях вводит в заблуждение. Одно из них состоит в том, что, в каждом поколении селективного размножения, мутантные фразы-потомки оценивались по критерию сходства с отдалённой идеальной целью, фразой "METHINKS IT IS LIKE A WEASEL". Жизнь не такова. Эволюция не имеет никаких долговременных целей. Не существует никаких отдалённых целей, никакого финального совершенства, которое могло бы служить критерием отбора, хотя человеческое тщеславие и лелеет абсурдную мысль о том, что наш вид является заключительной целью эволюции. В реальной жизни критерий для отбора всегда краткосрочен – это простое выживание; или строже говоря – репродуктивный успех. То, что по прошествии геологических эпох ретроспективно выглядит как движение к достижению какой-то отдалённой цели, на деле же – всегда побочное следствие многих поколений краткосрочного отбора. Наш "часовщик" – нарастающий естественный отбор – слеп к будущему и не имеет никаких долговременных целей.

Мы можем изменить нашу компьютерную модель, чтобы принять во внимание этот момент; мы можем также сделать её более реалистичной в других отношениях. Буквы и слова – узкочеловеческие явления, так что давайте научим компьютер рисовать картины. Может быть, мы даже увидим очертания, подобные животным, эволюционирующим в компьютере посредством нарастающего отбора мутантных форм. Мы не будем навязывать своих представлений, предлагая начать с какого-нибудь конкретного животного. Мы хотим, чтобы они появились исключительно в результате нарастающего отбора случайных мутаций.

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

Эмбриональное развитие – это слишком сложный процесс, чтобы его можно было реалистично смоделировать на маленьком компьютере. Нам придётся представить его неким упрощённым аналогом. Нам нужно найти простое правило рисования, которое компьютер может легко выполнить, и которое может затем изменяться под влиянием "генов". Какое правило рисования мы выберем? Учебники информатики часто иллюстрируют мощность того, что они называют "рекурсивным" программированием, простыми процедурами рисования деревьев. Компьютер начинает рисовать одну вертикальную линию. Затем линия разветвляется на две ветки, после чего каждая из ветвей разделяется ещё на две суб-ветки. Затем каждая из суб-ветвей подразделяется на суб-суб-ветки и так далее. Метод называется "рекурсивным" потому, что одно и то же правило (в нашем случае – правило ветвления) локально применяется на всём растущем дереве. Дерево может быть сколь угодно велико, ибо одно и то же правило разветвления применяется в кончиках всех его веток.

"Глубина" рекурсии – это количество допускаемых суб-суб- … ветвлений между началом и остановкой процесса. На рисунке 2 показаны случаи, когда вы велите компьютеру выполнить одно и то же правило рисования, но остановиться на разных глубинах рекурсии. При очень глубокой рекурсии образец становится весьма сложным, но тем не менее на рисунке 2 можно легко видеть, что это результат того же самого очень простого правила ветвления. Конечно, именно это происходит у настоящего дерева. Схема ветвления дуба или яблони выглядит сложной, но на деле таковой не является. Базовое правило ветвления очень просто. Но из-за того, что оно применяется рекурсивно во всех отрастающих кончиках всех ветвей дерева – ветви производят суб-ветви, затем каждая суб-ветвь производят суб-суб-ветви, и так далее – в результате всё дерево получается большим и густым.





Рекурсивное ветвление – это также хорошая метафора для эмбрионального развития растений и животных. Я не хочу сказать, что эмбрион животного

Рисунок 2

напоминает ветвящееся дерево. Нет, конечно. Но рост всех эмбрионов осуществляется делением клеток. Деление любой клетки всегда состоит в разделении её на две дочерние. И гены всегда влияют на результирующие эффекты развития тел посредством локального влияния на клетки, и на "двухветочную" схему деления клетки. Гены животного никак не являются эдаким грандиозным чертежом всего тела. Как мы увидим далее, гены более подобны рецепту, чем подобному чертежу – более того, не тому рецепту, который описывает развивающийся эмбрион как целое, но рецепту поведения отдельной клетки, или локального кластера делящихся клеток. Я не спорю, что весь эмбрион, а позже и взрослая особь, может обладать крупными размерами и формой. Но это крупное тело появляется как результат большого количества маленьких локальных клеточных эффектов во всём развивающемся теле, и эти локальные эффекты в основном представляют собой такие вот "двухветочные" расколы клеток. Именно влияя на эти локальные события, гены в конечном счёте оказывают влияние на взрослое тело.

Итак, простое правило ветвления рисунка дерева будет похоже на обещанный аналог эмбрионального развития. Ну раз это так, то мы оформляем его в маленькую компьютерную процедуру, называем её РАЗВИТИЕ, и готовим к включению в бОльшую программу с названием ЭВОЛЮЦИЯ. И в качестве первого шага к написанию этой большей программы, обратим наше внимание на гены. Как будет мы моделировать "гены" в нашей компьютерной модели? В реальном живом существе гены делают две вещи: влияют на развитие, и переходят в следующие поколения. У реальных животных и растений имеются десятки тысяч генов, но мы скромно ограничим нашу компьютерную модель девятью. Каждый из этих девяти генов просто представлен неким числом в компьютере, которое мы будем называть его значением. Значение конкретного гена может быть, скажем, 4 или -7 (здесь и далее автор имеет в виду только целые числа – А.П.) .