Совместно с издательством «Издательская группа URSS» мы публикуем отрывок из книги «Путь в синергетику: Экскурс в десяти лекциях» физиков Бориса Безручко, Алексея Короновского, Дмитрия Трубецкого и Александра Храмова о «цифровой» жизни, моделируемой компьютером.

На сегодняшний день трудно сказать, к какой области естествознания примкнет Artificial Life — к биологии, математике, кибернетике, синергетике, нелинейной динамике, вырастет ли в самостоятельную науку или останется забавной игрушкой, но, тем не менее, AL сегодня бурно развивается (об этом свидетельствует огромное число научных статей по данной тематике), и заслуживает хотя бы краткого упоминания.

Понятно, что прежде всего следует оговорить, что понимать под словом «жизнь», какой объект следует считать живым, а какой нет. Одним из возможных подходов является определение списка качеств или свойств, которыми должен обладать живой объект. Наиболее общими такими свойствами являются способности размножаться, развиваться, реагировать на внешние раздражения, в той или иной степени «восстанавливаться» после повреждений. Если рассматриваемый объект обладает всеми этими свойствами, то он может быть причислен к живым организмам. И хотя вышеприведенный список оказывается весьма коротким, почти все примеры искусственной жизни не попадут в категорию живых существ. Возможен несколько иной подход: определение списка свойств, которые характерны только для живых существ. И если рассматриваемый объект обладает хотя бы одним из подобных свойств, то он может считаться в некотором смысле живым. Может быть, имеет смысл задавать вопрос не о том, является ли некоторый объект живым (на него весьма трудно ответить!), а вопрос, демонстрирует ли этот объект свойства, присущие живым существам. Многие работы, лежащие в области AL, затрагивают отдельные аспекты жизни (например, способность эволюционировать и расти, интеллект, язык, социальное поведение и т. п.). В этом случае автор создает искусственную систему, которая демонстрирует свойства, присущие живым объектам, интересующие автора. В то же самое время, эта система может не демонстрировать никаких других свойств, присущих живым существам. При этом следует отметить, что искусственные системы, демонстрирующие некоторые свойства живых объектов, могут быть самой различной природы.

Жизнь, существующая на Земле, может рассматриваться как результат естественного отбора в углеродной среде. В то же самое время, процесс эволюции (по крайней мере, теоретически) может протекать как на других планетах, так и в совершенно других средах, например, в цифровой среде, связанной с компьютером. Речь не идет о моделировании каких-либо процессов биологических объектов, реально существующих в нашем мире, с помощью электронных вычислительных машин. Компьютер выступает в этом случае не как средство моделирования, а скорее как среда обитания, в которой могут существовать «цифровые организмы», живущие и эволюционирующие по другим законам цифрового мира…

…Возможных способов создания «цифровой» жизни на сегодняшний день известно много, но мы остановимся на одной из систем, известной под названием «Tierra». В этой системе реализуется основной сценарий Ч. Дарвина: самовоспроизводящиеся существа с наследуемыми генетическими изменениями, существующие в ограниченной среде, моделируемой компьютером. Роль живых существ играют исполняемые программные коды, которые могут копировать себя в оперативную память компьютера. Фактически они играют роль генетического кода в органической жизни. Копирование (размножение) «существ» осуществляется благодаря выполнению программ центральным процессором компьютера. Таким образом, время, затрачиваемое процессором на выполнение отдельной программы, играет роль энергии, которая управляет процессами обмена веществ.

Поскольку программы занимают место в оперативной памяти компьютера, то «пространство оперативной памяти» играет роль физического пространства, ареала проживания (экологической ниши). Каждая программа имеет исключительное право «записывать» информацию в те блоки памяти, которыми она «владеет». В то же самое время, любая программа и любой процесс может «считывать» (и исполнять) любые машинные коды, распределенные в оперативной памяти. По мнению автора «Tierra», это является аналогом полупропускающей мембраны органической клетки, частично защищающей процессы, протекающие внутри клетки от внешних воздействий.

Существуют и «мутации» («генетические изменения») — случайные изменения отдельных битов в программном коде. Дополнительные изменения в «программном коде существ» могут также происходить за счет ошибок, которые время от времени совершает центральный процессор. Эти ошибки не являются генетическими изменениями, но в то же время, они могут явиться причиной подобных изменений. По мере «размножения» программ в оперативной памяти компьютера, свободного места для вновь порождаемых программ остается все меньше, и тогда оперативная система начинает уничтожать самые старые программы, находящиеся в оперативной памяти, с тем, чтобы расчистить место для следующих поколений.

Начинается же процесс эволюции с прародителя — программного кода, занимающего в оперативной памяти компьютера 80 байт. Программа с помощью операционной системы «исследует» себя, чтобы определить свой размер и расположение в оперативной памяти, затем (опять-таки, с помощью операционной системы) она выделяет свободное место в оперативной памяти для своего потомка, после чего происходит копирование байта за байтом программного кода родителя в выделенное место оперативной памяти. Таким образом происходит рождение нового

«существа», которое с этого момента рассматривается как независимый объект, с такими же правами, что и программа-родитель.

В вышеописанной системе реализуется (в той или иной степени) сценарий Чарльза Дарвина: простейшие существа, способные к самовоспроизводству, конкурируют друг с другом за «место под солнцем». Аналогичная (трудно сказать, что похожая — именно аналогичная) ситуация, по-видимому, имела когда-то место на Земле. Следовательно, наблюдение за развитием подобной системы может оказаться не только интересным занятием, но и полезным; с помощью подобной системы «Tierra» могут быть найдены ответы на вопросы об эволюционном развитии биологической жизни на Земле (если биологическая и синтетическая, в данном случае цифровая, жизни подчиняются некоторым общим закономерностям). Безусловно, при практической реализации «Tierra» возникли сложности технического характера — обычные компьютеры, получающие все большее и большее распространение, не удовлетворяют вышеописанным требованиям. Во-первых, корректно работающие компьютеры не совершают ошибок в вычислениях, отсутствуют и случайные изменения битов (а именно эти изменения, в общем-то, и лежат в основе замысла авторов «Tierra»). Если же компьютерам разрешить делать вышеназванные ошибки, то накапливающиеся случайные изменения очень быстро приведут к краху операционной системы. Во-вторых, операционные системы современных компьютеров могут порождать дополнительные (дочерние) процессы, но уничтожение процессов осуществляется по другим критериям, нежели их «возраст».

Предположим, однако, что названные трудности были преодолены на современном обычном компьютере, и удалось «запустить» процесс эволюции. В случае (довольно маловероятном), если в памяти компьютера возникнет жизнеспособный вид цифровой жизни, существует опасность того, что из-за небрежности, или по каким-либо другим причинам, «цифровые микроорганизмы» могут быть занесены на другой компьютер, а следовательно, существует опасность их бесконтрольного распространения и развития на других компьютерах (по крайней мере, такого же типа, как и первоначальный компьютер, на котором начинался эволюционный процесс) подобно компьютерным вирусам.

(Следует сделать одно небольшое отступление — компьютерные вирусы, о которых, наверное, наслышано большинство людей, отличаются от описываемых форм «цифровой жизни». Компьютерные вирусы — это программы, которые могут исполняться на современных компьютерах. Они написаны программистами с той или иной целью и обладают способностью самовоспроизводиться. В то же время, насколько нам известно на данный момент, они не могут «мутировать» и, соответственно, эволюционировать. Именно по известному виду компьютерных вирусов можно осуществлять борьбу с ними. Именно на этом принципе (поиск известных фрагментов компьютерного кода) осуществляется работа антивирусных программ. По всей видимости, день, когда появятся компьютерные вирусы, способные к видоизменениям, конкуренции и естественному отбору, начнет новую эру (несколько более печальную) в истории использования компьютеров. Остается надеяться, что это произойдет как можно позже.) Таким образом, из всего вышеизложенного следует, что необходимо создать специальный компьютер, работающий по иным принципам, нежели обычные компьютеры, для исследования эволюции «цифровой жизни». Однако существует и другая возможность, которая и была реализована авторами системы «Tierra»: ими был создан «виртуальный компьютер» — программа, которая может быть запущена на любом современном компьютере и которая моделирует (может быть, лучше сказать, симулирует) работу компьютера, удовлетворяющего эволюционным требованиям. Цифровая жизнь и эволюция возможна только «внутри» виртуального компьютера. Вне виртуального компьютера «цифровые организмы» существовать не могут — они представляют собой просто набор данных, которые также способны к самовоспроизводству, как и текстовые файлы, созданные каким-либо текстовым редактором.

Рекомендуем по этой теме:
6965
Внутренняя разработка в Computer Science

Остановимся теперь на видах цифровых организмов, появившихся в ходе эволюционного развития в системе «Tierra». Оказывается, что одной из первых открытых форм экологической адаптации при исследовании эволюционного процесса цифровой жизни, был паразитизм. Цифровой организм избавлялся почти от половины своего собственного кода (соответственно, почти в два раза уменьшаясь в размерах) за счет исполнения при размножении части похожего кода, который принадлежал цифровому существу другого вида («хозяину»). Понятно, что «паразит» мог почти в два раза быстрее воспроизводиться, нежели «хозяин», поскольку ему нужно было воспроизвести половину кода. В то же самое время, паразиты не могли полностью вытеснить цифровой вид своих «хозяев», поскольку они существенным образом зависели от информации, содержащейся в коде своих «хозяев». Вследствие этого, в ходе эволюционного развития могли возникать колебания численностей хозяев и паразитов с течением времени, подобные циклам Лотки—Вольтерра). Более того, поскольку хозяева также эволюционировали, то в ходе эволюционного развития им иногда удавалось выработать иммунитет от паразитов и освободиться от них. Вид защиты мог заключаться, например, в незначительной модификации структуры кода, в результате чего паразиты уже не могли использовать код хозяев для собственного размножения. Но и паразиты в ходе эволюционного развития могли «подобрать ключи» к средствам защиты бывших хозяев и вновь к ним вернуться.

Следующей удивительной формой экологической адаптации цифровых организмов является так называемый «гиперпаразитизм». В результате мутаций у некоторых хозяев вырабатывается способность «перехватывать» часть своего кода, воспроизводимого паразитом. Ситуация очень похожа на упоминаемую в русской поговорке «Вор у вора дубинку украл». В то время как паразит воспроизводит необходимую ему часть кода «хозяина», «хозяин», оказывающийся гиперпаразитом, перехватывает воспроизведенный фрагмент кода, достраивая к нему оставшуюся часть с тем, чтобы «породить» дочерний организм. Естественно, организму-паразиту не удается в таком случае воспроизвести дочерний организм, а следовательно, паразиты могут очень быстро вымереть, если не сумеют приспособиться к новым условиям существования.

Помимо отношений «хозяин — паразит» могут проявляться и кооперативные (совместные) механизмы развития. Оказывается, эти механизмы могут проявляться в том случае, когда цифровые организмы какого-либо одного типа полностью доминируют в оперативной памяти компьютера. Такое может случиться, например, когда гиперпаразиты полностью вытесняют тип паразитов. В этом случае гиперпаразиты не могут далее существовать, поскольку их механизм самовоспроизводства был ориентирован на «захват» частей кода, воспроизводимого отсутствующими теперь паразитами. Однако в результате мутаций могут появиться видоизмененные организмы, которые хотя и не способны породить дочерний организм в изоляции, но совместно друг с другом, когда их существует в памяти несколько, они могут воспроизвести новый организм благодаря кооперативной комбинации нескольких частей кода, каждый из которых воспроизведен одним из организмов. Однако и здесь могут появиться организмы, захватывающие для воспроизводства себе подобных части кода, создаваемые другими организмами в процессе кооперативного взаимодействия.

Таким образом, в виртуальной машине «Tierra» идет процесс эволюции, во время которого появляются и гибнут цифровые виды. Цифровые организмы, оказывающиеся наиболее приспособленными к условиям существования, начинают вытеснять менее приспособленные виды, захватывая все большее и большее пространство оперативной памяти. Однако появляющиеся в результате мутаций новые виды цифровых организмов могут со временем вытеснить доминирующий вид и т. п.

Следует, однако, заметить, что, хотя до сих пор описывались механизмы эволюционного развития, возникающие при взаимодействии различных организмов друг с другом, существует и другой тип адаптации, когда в результате мутаций появляются организмы, более приспособленные к существованию не за счет «притеснения» других видов, а за счет своего более оптимального «строения». Одним из таких механизмов является компактный код — в результате мутаций появляются цифровые организмы, размер которых оказывается существенно меньше, но не за счет паразитизма, а за счет упрощения алгоритма воспроизводства. Самый «компактный» цифровой организм, существование которого было отмечено в виртуальной машине, имел размер двадцать два байта (вместо первоначальных восьмидесяти) — он был почти в четыре раза коро- че, а скорость его воспроизводства в шесть (!) раз превышала скорость воспроизводства цифровых организмов других видов.

Однако оптимизация строения вовсе не означает упрощения и сокращения кода цифрового организма. В ходе эволюции были, например, отмечены цифровые организмы, которые при самовоспроизводстве копировали в оперативную память не только полностью свой код, но и еще один (или несколько) байтов своего организма. Таким образом, организм, имевший размер в 23 байта, копировал при своем воспроизводстве еще один дополнительный байт, а следовательно, после того, как код этого организма был выполнен 23 раза, в оперативной памяти появлялся еще один дополнительный организм этого типа.

Для описания процесса эволюционного развития можно ввести количественную характеристику того, насколько эффективен алгоритм воспроизводства того или иного организма. Этой характеристикой является отношение числа машинных инструкций, выполняемых при воспроизводстве, к числу байтов, из которых состоит организм. Фактически эта величина характеризует число машинных инструкций, необходимых для копирования одного байта. Исследования показывают, что с течением эволюционного процесса эффективность алгоритма воспроизводства цифровых существ увеличивается. Полученные результаты оказываются весьма любопытными, но возникает весьма резонный вопрос: «А что же дальше?» Каковы дальнейшие направления возможных исследований? Возможна ли дальнейшая эволюция цифровых организмов и существует ли хотя бы гипотетическая возможность использования полученных результатов в практической деятельности человеческого общества?

Рекомендуем по этой теме:
20014
Искусственный интеллект

Одним из наиболее интересных вопросов является вопрос о возможности существования сложных цифровых организмов. В свое время биологическая жизнь на Земле прошла этап развития от одноклеточных организмов к сложным многоклеточным, причем разнообразие возможных сложных форм биологической жизни оказалось на удивление велико. Если продолжать проводить аналогии, то вышеописанная цифровая эволюция аналогична биологической эволюции отдельных биологических клеток, а каждое цифровое существо представляет собой, по сути дела, цифровую «клетку». Тогда следующим шагом на пути эволюционного развития должно быть возникновение «многоклеточных» цифровых организмов. Стоит отметить следующую особенность — многоклеточный организм может состоять из большого числа как одинаковых клеток, развивающихся по одинаковым правилам (хотя, может быть, и не синхронно), так и разных, развивающихся по разным правилам и выполняющим различные функции. Понятно, что современные биологические организмы сочетают в себе обе возможности. А что можно сказать про цифровые организмы? Понятно, что раз речь идет об одновременном (параллель- ном) существовании большого числа цифровых «клеток», то сколь-нибудь сложный цифровой организм может возникнуть в «компьютерной среде», состоящей из большого числа компьютеров, где одновременно центральными процессорами различных компьютеров выполняется множество параллельных задач. И здесь также возможны два вида одновременно выполняющихся задач — одинаковые задачи (фактически каждый процессор выполняет одну и ту же задачу, но за счет большого числа параллельно работающих процессоров вся совокупность задач выполняется быстрее, нежели она была бы выполнена одним процессором) и разные задачи (каждый процессор выполняет свою уникальную задачу). Ряд современных компьютерных программ допускает «распараллеливание», т. е. выполнение их несколькими процессорами, но это распараллеливание относится к первому типу, когда все процессоры выполняют одну и ту же задачу. Понятно, что программное обеспечение, которое бы было способно работать на нескольких процессорах по алгоритму второго типа (каждый процессор выполняет свою задачу), разработать неимоверно труднее.

Таким образом, следующим логичным этапом исследования цифровой эволюции является соединение виртуальных машин «Tierra», работающих на различных компьютерах, в единую сеть. Возможным красивым способом решения этой задачи было бы выполнение в фоновом режиме (т. е. когда на компьютере выполняется какая-либо другая программа, виртуальная машина «Tierra» находится в режиме ожидания, а когда ресурсы машины свободны, «Tierra» вновь начинает работать) работы виртуальных машин на компьютерах, подключенных к сети Интернет. Здесь вступают в игру новые аспекты — распределенность пространства оперативной памяти, различные размеры локальных пространств оперативной памяти, различное число машинных команд, выполняемых в единицу реального времени различными процессорами (это может быть связано как с различными типами процессоров, так и с различной степенью их загруженности). Все это может привести как к возникновению «многоклеточных» цифровых существ, так и проявлению у них различных «поведенческих инстинктов» (например, суточная миграция по виртуальным машинам «Tierra», работающим на компьютерах, подключенных к сети Интернет; понятно, что на компьютерах, расположенных в ночной зоне Земли, меньше загрузка, а следовательно, больше ресурсов будет отдано виртуальным машинам «Tierra» и, в конечном счете, цифровым организмам).

Рекомендуем по этой теме:
6504
Общество и робототехника

Наконец, еще один вопрос, связанный с цифровой эволюцией, — вопрос о возможности возникновения «цифрового интеллекта» (или, может быть, лучше сказать «цифрового разума»). Эта тема является благодатной почвой для научно-фантастических произведений. В настоящее время трудно сказать по этому поводу что-либо определенное, но если возникновение «цифрового разума» и возможно, то, по всей вероятности, он может существенно отличаться от разума «биологического», поскольку ход эволюционного развития цифровой жизни происходит по другим законам, нежели развитие биологической жизни. С другой стороны, возможно существование общих закономерностей эволюционного развития, свойственных самым различным формам жизни, а следовательно, и «цифровой разум» (конечно, если его возникновение возможно) может быть похож на разум биологический. Но пока все это остается лишь на уровне гипотез, и дать ответы на поставленные вопросы может лишь время (отдаленное от нас, а может быть и не очень).

Наконец, в завершение кратко остановимся на вопросе о том, что могут дать человечеству исследования в области искусственной жизни. С одной стороны, эти исследования могут служить ключом к пониманию наиболее общих закономерностей эволюционного развития. С другой стороны, если люди научатся понимать эти закономерности, то, вмешиваясь в естественный ход эволюции цифровой жизни, внося изменения в структуру организмов, проводя селекцию организмов с нужными свойствами, может быть, удастся «вырастить» программные продукты (например, операционные системы, которые управляют работой компьютеров) с такими возможностями, которые сегодня даже трудно себе и представить. Понимание же наиболее общих закономерностей эволюционного развития может быть использовано и при селекции новых биологических видов. Но, еще раз подчеркнем, что все это дело отдаленного будущего (хотя, может быть, мы и ошибаемся).