Восхождение на гору Невероятности
Шрифт:
Программист может записать правила для компьютерной модели паука, используя результаты полевых наблюдений – знания о повадках живых пауков и о критических моментах, которые определяют их линию поведения. Профессор Фольрат и его интернациональная исследовательская группа – бесспорные лидеры в этой области, и у них была прекрасная возможность подытожить свой опыт в компьютерной программе. Компьютерная программа действительно дает шанс систематизировать накопленные сведения о любом наборе правил. Собрать в компьютере имеющийся пул информации о зафиксированных наблюдателями движениях паука, который плетет паутину, вызывался Сэм Чокке, один из членов команды. Он назвал свою программу MoveWatch. Питер Фукс и Тимо Кринк, опираясь на работы Ника Готта и Алуна ап Ришарта, сосредоточились на обратной задаче – создании виртуальных “пауков”, которые ловят виртуальных “мух”. Эта программа получила название NetSpinner.
На рис. 2.10 показано, как в программе MoveWatch выглядят передвижения самки Araneus diadematus
Рис. 2.10. Хроника перемещения паука Araneus diadematus в процессе плетения паутины, отраженная на компьютере в программе Сэма Чокке MoveWatch: (a) и (b) подготовка; (с) радиальные линии; (d) вспомогательные нити; (е) липкие нити; (f) наложение всех стадий.
Эти картинки – не модели поведения компьютерных пауков. Наоборот – это компьютерное описание поведения живого паука. Теперь обратимся к дополняющей программе NetSpinner – к поведению некоей идеальной вымышленной особи. Можно было создать модель поведения любого гипотетического паука. NetSpinner воспроизводит действия ненастоящего паука точно так же, как программа с биоморфами моделирует анатомию насекомоподобных форм. Паутина на экране рисуется по правилам поведения, которые меняются под влиянием “генов”. Гены – как и у биоморфов, просто цифры, записанные в памяти компьютера, – передаются из поколения в поколение. В каждом поколении “поведение” вымышленного паука и, следовательно, геометрия “паутины” зависят от генов. Так, один из генов может влиять на угол между радиальными нитями: мутация, то есть изменение для компьютерного паука цифрового значения соответственно какому-то правилу поведения, приведет к изменению количества радиальных нитей. Как и в программе с биоморфами, при переходе от одного поколения к другому цифровые значения генов могут незначительно меняться. Эти мутации становятся заметны по изменению формы паутины, а значит, являются объектом для селекции.
Шесть изображений паутины, показанные на рис. 2.11, можно рассматривать как биоморфы (точки пока во внимание не принимаем). Паутина вверху слева будет родителем. Остальные пять – мутировавшие отпрыски. Конечно, в жизни паутина не дает потомства, то есть “дочерние паутины” – это пауки, которые плетут паутину, рождают других пауков, которые тоже плетут паутину. Но в этих моих словах о паутинах кроется важная информация, применимая к организмам. У людей гены, определяющие особенности детей, возникают из генов, определяющих особенности родителей. В компьютерной модели те варианты генов, которые, меняя поведение не видимого на экране воображаемого паука, определяют вид родительской паутины (вверху слева), мутировали, и в результате появились другие варианты генов, определившие вид дочерних паутин на остальных пяти картинках.
Рис. 2.11. Сгенерированные в компьютере паутины под градом компьютерных мух. Программу NetSpinner создали Питер Фукс и Тимо Кринк.
Мы, конечно, могли бы, взглянув на все шесть паутин, выбрать одну для дальнейшего разведения, как мы выбирали биоморфов. Это означало бы, что при наличии мутации мы выбрали варианты генов этой паутины для передачи по наследству. Но это был бы искусственный отбор. Мы отказались от биоморфов и перешли к паутине ради возможности создать модель естественного отбора, когда критерием служит не эстетская блажь человека, а поддающийся измерению параметр – эффективность ловли мух.
Давайте посмотрим на картинки. Компьютер хаотически рассеивает по паутинам мух. Если приглядеться, можно заметить, что во все шесть паутин была вброшена одна и та же комбинация мух. В отличие от живой природы, в компьютерном мире так будет всегда, если только вы не смените тактику и не дадите другую команду. В данном случае это не важно, так даже удобнее сравнивать разные паутины. Сравнивать – в частности значит с помощью программы подсчитывать количество мух, “пойманных” каждой паутиной. Если бы больше ничего не требовалось, лучшей следовало бы признать паутину внизу справа, так как к ее спиральным нитям прилипло больше всего мух. Но мушиная кучка – не единственный значимый параметр. Необходимо учесть и затраты на шелк. Меньше всего шелка ушло на паутину вверху в середине, и в отсутствие других критериев она победила бы. На самом деле лучшая паутина – та, что улавливает больше всего мух за вычетом затрат на шелк, которые рассчитываются как функция длины нитей. По результатам такого уточненного расчета наиболее выигрышной
является паутина, изображенная внизу в середине. Она-то и будет выбрана для продолжения рода и передачи определяющих ее вариантов генов следующему поколению. Как и в программе с биоморфами, производство потомства от лучшей особи в течение многих поколений поддерживает устойчивость эволюционного тренда. Но если эволюцию биоморфов направляет в нужное русло исключительно воля человека, то в программе NetSpinner эволюция автоматически идет в сторону повышения КПД паутины. Мы получили то, что хотели – модель естественного отбора, а не искусственного. К чему приведет эволюция при таких условиях? Поразительно, насколько правдоподобно выглядят паутины, за одну ночь проскочившие сорок поколений эволюции (рис. 2.12).Те картинки, что я здесь привожу, получены в программе NetSpinner II, над которой в основном работал Питер Фукс (NetSpinner I – это черновая версия, и ее мы обсуждать не будем). Разработанные Тимо Кринком более поздние версии этой программы составляют конкуренцию биоморфам еще в одном важном вопросе. В NetSpinner III добавлено размножение половым путем. Биоморфы и объекты программы NetSpinner II размножаются только бесполым путем. Что мы имеем в виду, когда говорим о половом способе размножения компьютерных пауков? Вы не увидите на экране акта спаривания с вероятным каннибалистическим финалом, хотя, очевидно, это можно было бы устроить. Просто в программе происходят характерные для полового размножения взаимодействия – рекомбинация половины генов одного родителя с половиной генов другого родителя.
Рис. 2.12. Последовательные превращения паутины, смоделированной в программе NetSpinner, с интервалом в пять поколений. На каждое превращение потребовалась примерно одна ночь.
Вот как это работает. В каждом поколении имеется особая группа в полдюжины пауков, каждый из которых плетет свою ловчую сеть; это локальная популяция, или дем. Геометрия паутины зависит от хромосомы, то есть цепочки генов. Как мы уже знаем, роль гена такова, что он оказывает влияние на специфический “закон” строительства ловушки. Затем в паутину вбрасывают мух. Качество паутины все так же определяется по функции количества пойманных “мух” с вычетом затрат на использованный шелк. В каждом поколении погибает определенный процент пауков – тех, чьи ловчие сети работают хуже всего. Выжившие пауки спариваются в произвольном порядке и дают жизнь новому поколению. Под спариванием подразумевается, что хромосомы двух пауков выравниваются относительно друг друга и обмениваются своими участками. Казалось бы, странная, надуманная схема, если не вспомнить, что при размножении половым путем живые хромосомы – и наши, и паучьи – именно так себя и ведут.
Процесс продолжается, популяция развивается от поколения к поколению, но с одним дополнительным плюсом. Это уже не один дем, в который входят шесть пауков, а, допустим, три полунезависимых дема (рис. 2.13). Эволюция каждого из трех демов протекает независимо, но отдельные особи периодически мигрируют из своего дема в другой и переносят свои варианты генов. В четвертой главе мы поговорим о теоретическом обосновании такой миграции. Сейчас мы можем лишь отметить, что все три группы эволюционируют с повышением качества паутины – в сторону более эффективной ловли мух. Иногда популяция встает на тупиковый путь развития. Варианты генов пауков-мигрантов сродни притоку свежей крови в жилах другой популяции. Можно сказать, сильная подгруппа отдает свои варианты той, что послабее, тем самым подсказывая ей более выгодный способ создания ловчей сети.
Во всех трех популяциях первое поколение включает в себя паутины разных форм, в большинстве своем с невысоким КПД. Мы видим, что по мере смены поколений, как и в случае неполового размножения (рис. 2.12), происходит постепенный переход к более качественным и эффективным вариантам. Но теперь “свежая кровь” распределяется за счет полового размножения, поэтому отдельные экземпляры в деме довольно похожи друг на друга. С другой стороны, генетически они являются отпрысками других демов, так что и различия достаточно заметны. На какой-то стадии в одиннадцатом поколении гены двух паутин из дема 3 мигрировали в дем 2, то есть “инфицировали” дем 2 “кровью” дема 3. К пятидесятому поколению, а в некоторых случаях гораздо раньше, паутины превратились в прочные, надежные и экономичные ловушки.
Итак, можно воссоздать на компьютере некое подобие естественного отбора и получить искусственные ловчие сети, которые захватывают мух эффективнее, чем исходные. Это еще не подлинный естественный отбор, но существенный шаг вперед, больше приближающий нас к цели, чем полностью искусственная селекция биоморфов. Однако даже NetSpinner не воссоздает природный естественный отбор. Для того чтобы с помощью программы найти достаточно экономичные ловчие сети и выбрать наиболее пригодные для воспроизводства, требуется выполнить расчет. Программист должен сам определить стоимость “шелка” для данной паутины, причем в тех же единицах, что и ценность “мухи”. Он может, если захочет, изменить обменный курс. Например, удвоить “цену на шелк”. Тогда паутина большей площади или более плотная, на которую потратили больше шелка ради того, чтобы поймать больше мух, окажется менее пригодной для воспроизводства. Программист должен сам выбрать коэффициент пересчета. Это лишь один, самый очевидный пример конвертации. Коэффициент соответствия “мушиного мяса” вновь рожденным паучкам тоже должен задать программист. Он может быть любым. Сколько пауков погибает по разным причинам, не связанным с качеством паутины, также решает программист. Эволюция вида зависит от его волюнтаризма.