Если бы вам понадобилось создать животный мир на некоторой планете, по какому пути бы вы пошли: задавали бы внешний вид и поведение для каждого из многочисленных видов, или создали бы только простейшие существа и определили бы правила, по которым они смогут дальше совершенствоваться самостоятельно?
Лично для меня привлекательнее второй вариант, как с точки зрения гибкости, так и с точки зрения интереса моделирования. Подобным принципом, похоже, руководствовался и Джеффри Вентрелла, талантливый программист и исследователь, когда создавал свой ”Генетический пруд” (GenePool). И сейчас я хочу рассказать о мирах и существах, которых может эта программа призвать к жизни.
Итак, имеется водоём, в котором живут существа – свимботы. У свимбота есть два базовых инстинкта: питания и размножения. Тела их состоят из сегментов, которыми свимбот должен шевелить определённым образом, чтобы плыть. Всё это: окраска, строение тела и двигательные функции кодируются в ДНК, представляющей собой 70 чисел типа byte.
Движение свимбота просчитывается, исходя из реальной физики поведения тел в жидких средах. Чем лучше он плавает, тем больше вероятность, что не погибнет от голода, найдёт партнёра для размножения, и, следовательно, передаст свои гены будущему поколению. В итоге в популяции должны остаться только лучшие пловцы.
Так работает естественный отбор в этом мире. Но здесь введён ещё и половой отбор – свимботы охотнее скрещиваются с теми особями, которые похожи на них по окраске (по крайней мере, такое правило стоит по умолчанию). Таким образом, на сохранение свимбота в общем генофонде бассейна влияют также некоторые параметры, не связанные с его умением плавать.
После запуска программы случайным образом создаются 200 существ и 700-800 кусочков пищи.
[показать]
Вначале существа движутся довольно бестолково: некоторые вообще сидят сиднем, другие, того хуже, отчаянно барахтаются на месте, затрачивая огромное количество энергии при нулевом передвижении. Понятно, что такие “черновики эволюции” быстро вымарываются из местной “книги жизни”.
Создаваемые на старте продолговатые существа, с, казалось бы, идеальной формой для плавания, также довольно быстро вымирают, поскольку мало иметь хорошее тело, нужно ещё научиться им управлять. А управлять своим телом первые ”черви” не умеют: видя в стороне пищу они не делают никаких попыток повернуть к ней, а, упёршись в стену бассейна, зачастую в таком положении и остаются, покуда не иссякнет запас их жизненных сил.
Выжили же и дали потомство из стартового набора существ вот такие ”веточки”.
[показать]
Когда пища недалеко, усилия, затрачиваемые ими на покачивающиеся передвижения, вполне окупаются. Однако вскоре в центральной части бассейна еда закончилась, вместе с ней ушла и пора доминирования “веточек”. Им на смену пришли “двухвостки” (справа).
[показать]
Они могут передвигаться на сравнительно большие расстояния, а за счёт амплитуды колебаний головной части, с большей вероятностью захватят пищу. Выжившие на тот момент или мутировавшие из “двухвосток” “черви” (слева), не смотря на более экономное расходование энергии, всё равно продолжают заглатывать пищу, только если плывут прямо на неё. Правда, уже после нескольких попыток они начинают отворачивать от стенок бассейна и плавают в основном по его периметру.
Появляющиеся в это время “веточки” (в центре) выживают, только если неподалёку есть пища в большом количестве.
До сих пор “двухвостки” выживали только за счёт статистики: им, с большими шансами, нежели другим существам, удавалось во время движения захватить еду. Но, где-то через 15 часов моделирования, я обнаружил удивительную вещь: двухвостка, проплыв мимо еды, свернулась клубком и, распрямившись, изменила направление своего движения к кусочку пищи. Приглядевшись, я обнаружил, что все имеющиеся на тот момент в колонии двухвостки обладали этой способностью. Они, без изменения строения тела, научились более эффективно им управлять!
На следующее утро, уходя на работу, я оставил компьютер включённым для продолжения симуляции. После вчерашнего успеха я рассчитывал уж если не на то, что свимботы изобретут письменность, провозгласят независимость и начнут строить космический корабль, то, по крайней мере, на то, что разворачиваться к цели научатся не только двухвостки, но и черви.
Каково же было моё разочарование, когда я обнаружил, что в водоёме, полном еды, осталась всего пара умных двухвосток, причём у разных его бортов. Поскольку обе они уже почти достигли предельного возраста в 40000 тиков, судьба мира была предрешена. Просмотрев исторические графики, я понял, что умение всегда находить еду сыграло против этого вида: умные двухвостки размножились в
Читать далее...