Эволюция и искусственная жизнь
Сергей Бобровский
Искусственная жизнь (ИЖ, ALife) как отдельное научное направление выделилось из теории искусственного интеллекта (ИИ) в 80-х гг. прошлого века, когда состоялась первая Международная конференция ALife I (1989 г., Лос-Аламос). Вскоре за ней последовали Европейская конференция по искусственной жизни и Международная конференция по моделированию адаптивного поведения (обе –1991 г., Париж).
Тематика первых мероприятий затрагивала темы, как теперь выражаются, "мягкой" (soft) ИЖ – создание вычислительных систем и моделей, действующих на базе биологических и эволюционных принципов. В последние же годы, во многом в связи с развитием нанотехнологических дисциплин и молекулярной биологии, а также благодаря возросшему пониманию назначения отдельных генов и способов их взаимодействия и появлению средств манипуляции отдельными молекулами, существенное внимание стало уделяться новой концепции "влажной" (damp) ИЖ – созданию новых, искусственно синтезированных биологических форм, что требует философского обоснования ИЖ и, как минимум, определения понятия "жизнь" (что же вообще понимать под этим словом). В соответствии со спецификой нашего издания мы рассмотрим "мягкую" форму ИЖ.
(с) 2004 г. Художник П. П. Николаев
Одной из главных задач ИЖ считается создание искусственных существ, способных действовать не менее эффективно, нежели живые организмы[1]. Только способы достижения этой цели существенно отличаются от общепринятых в практике ИИ, где задействованы самые разные инженерные технологии и математические концепции (выбираемые фактически бессистемно), характеризующиеся тем не менее достаточно четкими и прозрачными причинно-следственными связями между исходными данными экспериментов и результирующим поведением моделируемых объектов. Так, чаще всего действия роботов основываются на системах логического вывода, выполняющих известные манипуляции с наборами фактов и правил. Нейронные сети, результат работы которых менее предсказуем, находятся на стыке ИИ и ИЖ и активно задействованы представителями каждого из этих направлений, а вот такая технология, как генетические алгоритмы, сегодня по праву считается полноценной вотчиной ИЖ. Общепринятые же традиционные подходы, базирующиеся на компьютерной архитектуре фон Неймана и вычислительной концепции Тьюринга (хранимые в памяти и не модифицируемые программы, выполняемые последовательно), в ИЖ особой популярностью не пользуются.
Пожалуй, главное отличие ИЖ от других сфер ИИ заключается в стремлении не просто добиться поведенческого сходства искусственных существ с биологическими, а достичь этого с помощью естественных, природных, эволюционных подходов. Тем самым не только достигается прагматический результат, но и появляется шанс познавать базовые принципы функционирования и развития живых существ "изнутри". На такой основе и намечается переход от "мягкой" сферы исследований к "влажной" – искусственному созданию биологической жизни эволюционным путем "снизу вверх". Поэтому закрытые решения, пусть и позволяющие добиться высокой эффективности действий робота или моделируемого объекта, в классических проектах ИЖ обычно не применяются и не представляют ценности, если не содержат информацию, помогающую познать реальный мир через познание самой модели.
Хотя, конечно, далеко не все исследователи, занимающиеся проблемами сферы ИЖ, стремятся к глубокому познанию реальности. Многих интересуют конкретные прикладные результаты, и хорошее соответствие действий искусственных и естественных существ уже само по себе может служить научным инструментом (за счет предсказания поведения). Поэтому значительная область ИЖ охватывает вопросы построения систем эволюционного, самоорганизующегося, масштабируемого, адаптивного поведения, основанных на биологических принципах. Ведь немалое число практических проблем невозможно решить точными математическими методами по самым разным причинам (неполнота исходных сведений, большое число конкурентов и противников, высокие размерность задачи и динамика действий в среде). Поэтому нередко проще смоделировать процесс развития некоторой ситуации, нежели пытаться сразу вычислить точный ответ.
Шахматы, например, характеризуются простыми правилами и ограниченными возможностями для маневра, но все сильные компьютерные программы просто моделируют развитие позиции на несколько ходов вперед и оценивают уже готовые расстановки фигур. Определить же последствия тех или иных действий математически, не перебирая варианты, пока никому не удается даже в такой внешне прозрачной и полностью формализованной игре.
Генетические алгоритмы – фундамент ИЖ
По этим причинам существенное внимание в ИЖ уделяется упомянутым генетическим алгоритмам (ГА), неплохо имитирующим эволюционные механизмы. Родоначальником ГА считается Джон Холланд, выпустивший в 1975 г. книгу "Адаптация в природных и искусственных системах"[2].
В теории ГА рассматриваются искусственные объекты (на практике это чаще всего компьютерные модели, используемые из-за простоты реализации), способные:
а) адаптироваться к меняющимся условиям внешней среды и конкурировать за ресурсы;
б) накапливать знания об этой среде и обмениваться ими, комбинируя выработанные способности по определенным схемам (например, получая готовые навыки по наследству в виде комбинации генов родителей);
в) мутировать под влиянием определенных воздействий или случайно (в генах происходят изменения).
Хромосомы (наборы генов) каждой виртуальной особи представляют собой определенный вариант решения поставленной задачи. Каждая хромосома может быть оценена некоторой функцией, с помощью которой вырабатывается степень соответствия варианта решения нуждам заказчика. Так, если решается задача многокритериальной оптимизации, то каждый ген хромосомы соответствует значению определенного критерия, и по набору этих значений выдается результат целевой функции[3].
Далее начинается процесс взаимодействия и развития объектов в среде: в процессе спаривания они порождают новых особей с другими комбинациями генов (значений критериев); более приспособленные (с большим значением функции оценки) продолжают существование, у некоторых из них хромосомы случайно меняются (мутируют – изменяется вариант решения), а менее приспособленные погибают. Такое взаимодействие продолжается сотни и тысячи поколений[4], и развившиеся в процессе эволюции особи обычно определяют весьма успешные варианты решения исходной задачи (точность найденного решения достигает в среднем 80–90% от теоретически возможного). Чаще всего ГА дают эффект в неопределенных ситуациях, где существует несколько достаточно хороших, хотя и неочевидных решений, а другие методы поиска ответов оказываются непригодны или малоэффективны. Помимо этого, такие алгоритмы неплохо формируют шаблоны успешного поведения, так как хромосомы выживших в процессе эволюции созданий хранят, по сути, коллективный опыт многих поколений.
Ну и, конечно, ГА не гарантируют ответ, а предложенный вариант сильно зависит от мастерства постановщика задачи (насколько корректно ему удалось закодировать форму решения в терминах ГА, описать ее в виде виртуальных хромосом). А если функция оценки не учитывает, скажем, степень допустимого риска, то ГА, при оптимизации, например, стратегии игры на бирже в конечном итоге может просто предложить сохранить исходный капитал, ничего не делая и ничем не рискуя. Поэтому растет востребованность средств динамического контроля за ходом эволюции и эффективной передачи важных знаний, пока практически не проработанных.
Кроме того, генетические алгоритмы обычно требуют немалых ресурсов, поэтому предпринимаются попытки переноса ГА в распределенную вычислительную среду, благо генетические модели это позволяют.
Хороши же ГА прежде всего тем, что их можно быстро применить к произвольной предметной области и даже при наличии ограниченных вычислительных и интеллектуальных ресурсов получить хорошие результаты, недостижимые другими способами.
Так, в январе 2005 г. программист Джейк Мойланен разработал библиотеку (kerneltrap.org/node/4493/) настройки ядра Linux 2.6.9, оптимизирующую деятельность планировщиков ввода-вывода и загрузки процессора и позволяющую достичь максимально возможной производительности ОС. Для этого он использовал ГА, с помощью которых планировщики совершенствуют сами себя. А ученые Университетского колледжа Лондона в 2004 г. успешно применяли генетические алгоритмы для совершенствования гоночных машин "Формулы 1". Хромосомы компьютерных моделей автомобилей насчитывали 68 генов, и модели, развиваясь в процессе искусственной эволюции, скрещиваясь и мутируя, постоянно проходили испытания на двух виртуальных маршрутах, пока лучшая "особь" не побила рекорды трасс. ГА также оказались полезны при выработке стратегий ведения гонок и проектирования отдельных компонентов машин.
Другие технологии ИЖ
Большое внимание в ИЖ уделяется клеточным автоматам (общеизвестна игра "Жизнь" Джона Конвея, профессора Принстонского университета, и ее многочисленные модификации[5], с помощью которых удается, используя набор небольшого числа простых правил, моделировать крайне сложное и разнообразное поведение. Автоматы составляются дискретными комбинациями нескольких клеток (чаще всего на плоскости, хотя существуют и многомерные варианты; каждая клетка может находиться в нескольких состояниях). Взаимодействие (размножение и гибель) соседних клеток задается определенными законами, обычно в зависимости от ближайшего окружения, после чего клеточные конфигурации начинают развиваться, а каждое поколение формируется на основе предыдущей комбинации. Применяются клеточные автоматы при исследовании процессов движения жидкостей и газов, состоящих из простейших однородных частиц, в системах распознавания образов, в самых разных задачах моделирования.
(с) 2004 г. Художник П. П. Николаев
Конечно, и нейронные сети, в определенной степени, видимо, соответствующие принципам работы мозга, пользуются у исследователей ИЖ заслуженной и неизменной популярностью, причем интересны не только результаты их работы, но и принципы внутреннего развития таких сетей.
Занимаясь исследованиями генетических алгоритмов, клеточных автоматов, автономных агентов, эволюционных механизмов развития, ученые рассчитывают лучше понять принципы мышления и реагирования человека и животных. Возможно, появится детальное понимание процесса развития одноклеточных организмов в многоклеточные, способа организации нейронов в сложные структуры мозга, а главное, есть вероятность того, что удастся создать устойчиво работающие распределенные самоорганизующиеся системы. Не исключено, что важные результаты в этой области принесет закрытый проект Autonomous Cognitive Model (ACM) фирмы Artificial Development (ad.com). Летом 2004 г. она приступила к работам по созданию искусственной личности Kjell, в ходе которых будет смоделирована деятельность подкорки и ряда периферийных систем человеческого мозга (в первую очередь областей, ответственных за анализ и понимание изображения и звука). Пока Kjell обучается текстовому общению через консоль с помощью классических методов стимул–реакция. В будущем подготовленные ACM-системы смогут применяться в задачах анализа данных, интеллектуального поиска информации, обработки естественных языков.
В проекте задействован ориентированный на нейронное моделирование Linux-кластер CCortex, составленный из 1000 процессоров, ОЗУ объемом 1 Тб и жесткого диска емкостью 200 Тб. Kjell насчитывает 20 млрд. нейронов, между которыми установлено 20 трлн. связей – такая сеть в 10 тыс. раз крупнее существующих нейронных моделей.
В последние годы на международных конференциях все чаще обсуждаются вопросы конструирования масштабных адаптивных решений, а на системах интеллектуальных агентов успешно отрабатываются социальные концепции и методы управления большими группами людей. Австралийские ученые выяснили, например, что социальное взаимодействие в современном мире хорошо описывается моделями поведения насекомых, выполняющих несложный набор определенных функций и стремящихся к удовлетворению известных потребностей. А их коллеги из английского Университета Лидс, исследуя принципы имитационного обучения ("делай как я"), установили, что внешнее подражание поведению "лидера" далеко не всегда дает эффект, если не учитываются индивидуальные особенности конкретного существа и влияние его окружения. Гораздо более результативны принципы так называемого социального обучения, когда каждый ученик рассматривается с учетом всех его связей с окружающим миром.
На базе большого числа успешных практических решений и проектов ИЖ выработано понимание и ограничений классических положений эволюционной теории, концепция генотипа и фенотипа (статичности и изменчивости) в которой урезана уровнем биологических систем. Однако эволюция не сводится только к генетическим манипуляциям и мутациям отдельных индивидуумов и вершится, как предполагается, на более глобальных уровнях. Надо понимать и учитывать связь и различие эволюции как физических тел, так и психической, нервной, а также коллективной деятельности. Возможно, что такие феномены, как эффект Болдуина[6], будут с помощью достижений ИЖ со временем обобщены и распространены на социальное поведение.
Другое дело, что сама по себе эволюция вряд ли имеет определенную цель (так как никем и ничем не управляется и представляет скорее универсальный процесс и закон развития) и не ведет напрямую к усилению конкуренции или избирательности отдельных особей и видов: повышение выживаемости живых существ – лишь побочный эффект единого глобального процесса развития, принципы которого и пытаются познать специалисты по ИЖ. Поэтому если в ходе теоретических обсуждений и практических экспериментов удастся выработать серьезный философский фундамент[7] эволюционной идеи, то выводы и следствия из него будут очень занимательными.
Ведь ученые давно пытаются понять, как сложные системы развивают сами себя, переходя на более высокий функциональный уровень[8]. Интересно, что путь к более развитому состоянию чаще всего начинается не из режима повышенной стабильности, а с границы между порядком и хаосом[9]. Возможно, в понимании подобных процессов и кроется тайна эволюции, которая не обязательно совершается плавно, постепенно. Так, хотя Дарвин и выдвигал тезисы в защиту эволюционного появления в ходе естественного отбора таких сложных органов, как глаз, но все же признавал, что их постепенная эволюция маловероятна, потому что организмы с недоразвитыми "промежуточными" глазами, своеобразной обузой, быстро бы погибали[10]. Впрочем, далее будет показано, как даже несложные правила коллективного развития могут приводить к феноменальному возникновению новых упорядоченных сущностей более высоких и сложных смысловых порядков, причем фактически "революционным", резким путем, за считанные поколения.
Конференции: интересно все
Наиболее популярные международные конференции по вопросам ИЖ – это International Conference on Artificial Life, проходящая раз в два года (очередная, юбилейная ALife X пройдет в 2006 г.; см. alife.org), и организуемая с такой же частотой ее европейская сестра – European Conference on Artificial Life (состоится в сентябре нынешнего года).
Тематика этих конференций уже много лет остается весьма пестрой. Специалисты обсуждают все, что прямо или косвенно имеет отношение к эволюционному развитию и может быть реализовано искусственно: эволюция и самовосстановление аппаратных систем, оптимизация группового поведения роботов, самовоспроизведение в дискретных и непрерывных системах, тенденции развития естественных языков и социумов и т. п. Постоянно обсуждаются и всевозможные прикладные исследовательские проекты – создание средств многомерного анализа информации с помощью самообучающихся агентов, моделирование поведения рыб, функционирования магазинов и развития паники в зданиях (для оптимизации схем эвакуации) или, например, применение технологий выявления характерных признаков деятельности планетарной биосферы для поиска иных цивилизаций и обнаружения искусственно сгенерированных сигналов из космоса.
(с) 2004 г. Художник П. П. Николаев
Однако профессиональный глубокий научный анализ эволюции живых систем подразумевает прежде всего выработку способов формального описания соответствующих задач, семантики и правил взаимодействия элементов ИЖ, определения минимальных требований для успешного развития биологической системы, универсальных и стандартизованных средств и методов моделирования. Сфера ИЖ постепенно приближается к новому этапу развития, стремясь к согласованному принятию единых правил и стандартов и тем самым оптимизируя и упорядочивая собственную деятельность[11].
Так, Еврокомиссия, финансирующая европейскую сеть социально-информационных проектов IST Programme (http://www.cordis.lu/ist/), открывает весной новое направление – моделирование феноменов слияния в комплексных системах (http://www.cordis.lu/ist/fet/co.htm). Оно охватит вопросы моделирования жизни (деятельность клеток на молекулярном уровне) и социальных систем (где взаимодействие автономных агентов стало модным осуществлять через обмен символическими сообщениями на естественных языках), а также способы применения этих моделей в задачах проектирования и управления. Ученым придется выработать методы создания и проверки качества моделей для прикладных научно-технических и социальных проектов, определить средства измерения их эффективности, а также подготовить соответствующие стандарты. Так как модель сложной системы обычно представляет собой иерархию подсистем, каждая из которых в свою очередь может реализовываться достаточно масштабной моделью, а все они взаимодействуют друг с другом на компьютере, рекомендовано построить универсальную математическую модель аппаратной и операционной исполнительной среды, чтобы учитывать ее ограничения и вносимые погрешности.
Предпринимаются усилия по формализации процессов слияния разрозненных направлений ИЖ (благо сегодня уже не представляют редкость, например, нейронные сети, контролирующие эволюцию автономных агентов), на стыке которых возникают подчас самые удивительные феномены[12]. Технологии создания виртуальной реальности, цифровые игрушки нового поколения, способные развиваться и "жить" (общеизвестна популярность японских тамагочи) – отдельная сфера ИЖ, заслуживающая особого рассмотрения. Не остаются без внимания на конференциях социальные и этические аспекты ИЖ[13].
Продолжается оптимизация уже хорошо известных технологий ИЖ (в частности, классического пакета Tierra), уточнение и развитие отдельных методологий, поиск подходящих прикладных сфер применения наработанных исследований, решение возникающих в практических проектах проблем. Так, хорошо известны сложности взаимодействия исполнителя и слабо знакомого с ИТ заказчика и трудность в объяснении компьютеру терминологии прикладной области, ее перевода на язык машины. Эта проблема выявилась при попытках задействовать алгоритмы автоматической сборки многоуровневых иерархических структур в проектах автоматизированного строительства современных зданий, когда потребовалось объяснить компьютеру тысячи строительных норм и правил. К решению подобных задач планируется привлечь создателей моделей развития естественных языков, которые на коллективах виртуальных существ изучают, каким образом децентрализованно, в случайных попытках обмена знаниями зарождаются методы полноценного общения между особями, как формируется семантика и грамматика естественных языков, как вырабатывается понимание смысла посланий.
Но основное внимание на конференциях уделяется, конечно, вопросам эволюционного развития, самоорганизации, моделирования групповой активности. Растет интерес к моделированию функций связи в системах коллективного поведения, что открывает новые возможности оптимизации глобальных телекоммуникационных комплексов. Тема самоконструирования стимулирует появление нетрадиционных концепций программирования, когда исходный код автоматически модифицируется и подстраивается под требования проекта, которые могут со временем изменяться, а самообучающаяся система при этом автоматически накапливает и обобщает проектный опыт.
На конференциях "отпочковываются" тематические группы, обсуждающие эффективные способы эксплуатации датчиков автономных устройств, ведь чем миниатюрнее электронные компоненты, тем большее их число можно устанавливать на роботах. Бортовая аппаратура – единственный способ познания мира автономными устройствами, поэтому им необходимо учиться результативно и целенаправленно использовать возможности датчиков, формирующих всё большие объемы "сырых" данных, ведь быстро разобраться в них совсем не просто. Повышенное внимание в таких группах уделяется молекулярным датчикам, способным определять вещество, из которого состоят окружающие предметы, и тем самым более точно понимать структуру внешнего мира.
Правда, датчики – вещь хотя и полезная, но не самая необходимая. Исследователи университета Сассекса (г. Брайтон, Великобритания), экспериментируя с искусственной эволюцией нейронных сетей, ставили роботов в исходно усложненные ситуации, оборудуя их только инфракрасными датчиками, и тем не менее аппараты научились рациональному групповому поведению и организованному передвижению[14]. Схожих результатов добились и специалисты Швейцарского института системной инженерии. Они снабдили крохотных роботов, каждый из которых умещается на десяти квадратных сантиметрах, дешевыми микропроцессорами, минимальным объемом ОЗУ и слабым источником энергии, научив их подходам ИЖ, и те уверенно выбираются из запутанных лабиринтов. Поэтому аппаратные ресурсы – важная, но отнюдь не самая главная составляющая успешного поведения.
Отдельная крупная область ИЖ – так называемая искусственная (синтетическая, эволюционная) химия, возникшая, по всей видимости, в ответ на потребности нанотехнологов. Она занимается вопросами молекулярной сборки самоорганизующихся, самособирающихся, самовоспроизводящихся и самовосстанавливающихся устройств, построением биологических ДНК-машин, исследованием биохимии клеток, стыковкой наноустройств с цифровой аппаратурой и т. д. Кстати, среди разработчиков ИЖ не прекращаются споры о возможности построения интеллектуальных объектов, которые смогут конструировать системы более сложные, чем они сами (не по готовому алгоритму, а самостоятельно, как выдающиеся инженеры делают изобретения и открытия).
К этой же области синтетической химии относится теория аморфных вычислений (использование сетей химических реакторов как вычислителей, где аналоговый результат формируется в ходе взаимодействия химических процессов) и другие приложения нетрадиционной логики и нелинейных цифровых автоматов. Интересно, что химики-эволюционисты активно интересуются приемами построения механических вычислителей – устройств, создававшихся десятки и сотни лет назад. После того как на смену таким машинкам пришла цифровая техника, они оказались полностью забыты, однако неожиданное на первый взгляд второе рождение простейшим счетным устройствам дали нанотехнологии. Появилась возможность использовать молекулы как элементы счетных устройств, а взаимодействие между ними можно с определенной долей условности считать механическим или аналоговым. Поэтому конструирование из молекул аппаратов наподобие арифмометров может оказаться крайне продуктивным решением при создании молекулярных компьютеров.
Инструментальные средства создания и исследования систем ИЖ
В Сети можно найти самое разное ПО, интересное и полезное исследователям ИЖ. Правда, почти все такие программы, отличаясь хорошими функциональными возможностями, предлагают бедные и невыразительные средства визуализации процесса моделирования и отображения результатов, отличаются запутанным пользовательским интерфейсом и сложностью настроек. Кроме того, вследствие определенного консерватизма научных кругов, опасающихся проводить серьезные эксперименты на малоизученных приложениях, в десятках проектов уже много лет эксплуатируются старые программы с интерфейсом командной строки и выдачей результатов в виде текстового файла. А современные 3D-системы, представляющие процесс эволюции на экране в виде трехмерных сцен приличного качества, пока очень слабо задействованы в реальных исследованиях.
Одна из наиболее популярных у специалистов по ИЖ систем – это Tierra (http://www.his.atr.jp/~ray/tierra/; доступны исходные тексты на Си), последняя версия которой 6.02 вышла в марте 2004 г. Она была разработана Томасом Рэем из Оклахомского университета и представляет собой виртуальный компьютер, исполняющий программы, написанные на условном ассемблере. Код программы считается ее своеобразным генотипом. Программы в ходе функционирования взаимодействуют друг с другом, размножаются и эволюционируют – части кода программы могут изменяться случайно (мутировать), а некоторые его элементы могут быть заменены на другие, взятые у "коллег". Таким несложным образом удается смоделировать и затем изучить самые разные особенности процесса эволюции. Возможно, что успеху Tierra послужило наличие встроенных функций статистического анализа, позволяющих подробно исследовать результаты моделирования.
Было создано несколько клонов и аналогов Tierra, отличавшихся весьма выразительными средствами представления процесса эволюции (например, Helix, necrobones.com/alife/helix.htm), однако и по сей день Tierra остается самым проверенным решением для желающих экспериментировать с взаимодействием самовоспроизводящихся программ. Заложенные в нее идеи были существенно развиты и дополнены в системе Avida (dllab.caltech.edu/avida/), которая применяется в задачах эволюционной динамики и теоретической биологии и отличается более удобным графическим интерфейсом.
Немало сильных сторон Tierra воплощено в мощной Java-системе Archis: An Extendable Platform for Artificial Life Simulation (http://www.generalnegentropics.com/archis/), свободно доступной в исходных текстах, которая также моделирует взаимодействие компьютерных программ. Она выполнена в открытой и гибкой серверной архитектуре, масштабируемой на 64-разрядные кластеры, и позволяет наращивать функциональность через подключаемые модули. Ее автор, Адам Иерейменко, ухитрялся, например, отлаживать и совершенствовать Archis эволюционным путем с помощью ее собственных предварительных версий, и добился интересных следствий. Так, некоторые ошибки в Archis приводили к появлению в моделях неконтролируемых и неисчерпаемых источников энергии и пищи, и оказалось, что при наличии таких источников практически любая экосистема очень быстро превращается в однородную массу виртуальных существ с одинаковыми характеристиками, равномерно заполняющих все доступное пространство (здесь прослеживается сходство с нанотехнологической концепцией "серой слизи"[15]). Другими словами, в обществе реального изобилия развитие вообще становится невозможным.
Эволюция с помощью Fluidiom
Еще одна широко известная система ИЖ называется SWARM (wiki.swarm.org). Она была создана в центре изучения комплексных систем Мичиганского университета, последняя версия 2.1.1 обновлялась в 2000 г. SWARM позволяет моделировать поведение сложных систем, состоящих из множества автономных агентов с разнообразными характеристиками. В качестве сценарного языка, задающего схему реагирования агентов, применяется Лисп.
Типичные примеры, входящие в поставку SWARM, объясняют как быстро создать мир, в котором функционируют существа, потребляющие и выделяющие тепло, и как они оптимизируют свое поведение, собираясь в группы и делясь теплом друг с другом (Heatbug), или как построить пространство заряженных мячиками триггеров, срабатывание любого из которых вызывает цепную реакцию (Mousetrap).
На базе SWARM были реализованы десятки прикладных исследовательских работ из самых разных областей. Известны проекты моделирования экосистем Gecko, роста бактерий и их популяций BacSim и Metabolizing Agents, поведения насекомых на базе нейронных сетей Bugverse и т. д. На ежегодных SWARM-фестивалях заслушиваются доклады по экономике, политике, географии, военным приложениям и экологии. Интересно, что с помощью SWARM неоднократно показывалась схожесть биологических и социальных систем, которые развиваются по одинаковым законам и характеризуются близким адаптивным поведением. А на фестивале SwarmFest 2004 демонстрировалась модель террористической деятельности, которую можно понять и изучить не на уровне поведения отдельной личности, а на уровне группы преступников как целого, в виде комплексного социального феномена.
Сети интеллектуальных агентов наподобие SWARM, как показывает практика, дают неплохой результат в ситуациях, когда детальная информация по нужному вопросу отсутствует, а поведение отдельной структуры на первый взгляд хаотично. Классические системы анализа по типу "что, если" в таких случаях не срабатывают, а вот эволюционные модели приносят заметную пользу.
Инструментальные средства создания и исследования систем ИЖ
На схожих с SWARM принципах строится система Bayesian Inspired Brain and Artefacts (BIBA, www-biba.imag.fr) французского Института информатики и математических приложений. Средства нейронного самообучения позволяют по результатам экспериментов добиться рационального (близкого к оптимальному) поведения роботов в различных ситуациях реального мира при наличии ограниченной и неполной информации. Если, например, заяц пересекает поле, то ему необходимо уметь предсказывать вероятные события и оценивать, не прячется ли в траве хищник и стоит ли рисковать, забираясь в дальний огород за более вкусной капустой. Животные в условиях минимума информации делают это достаточно хорошо – значит, по силам подобные задачи и компьютерам. С помощью BIBA французы уже научили робота действовать в незнакомом помещении по принципам обычных муравьев, помечая маршруты возвращения искусственными метками, только вместо используемого насекомыми запаха робот оставляет на полу фишки.
Миг, когда из хаоса внезапно рождаются упорядоченные структуры
BIBA-программы хорошо обучаются поведению человека-партнера, и еще одно приложение проекта – создание сильных искусственных соперников в компьютерных играх. Авторы BIBA заявляют, что могут быстро, за один день научить систему самым разным принципам поведения – например, способу быстрой ловли собаками жертвы, а затем созданную модель задействовать для организации охраны реальных объектов. В перспективе ученые рассчитывают спроектировать автомобили с заложенными в них наборами инстинктов (автоматический объезд препятствий, сохранение безопасного расстояния и т. п.), что будет гарантировать их безаварийное передвижение. А в следующем десятилетии, полагают французские исследователи, наибольший эффект при создании разумных устройств дадут подходы, основанные на вероятностном логическом выводе.
В декабре 2004 г. снова заработал популярный проект PolyWorld (http://www.beanblossom.in.us/larryy/PolyWorld.html), представляющий собой трехмерную систему вычислительной экологии. Виртуальные организмы с нейронной сетью могут размножаться, охотиться, поедать друг друга и искать пищу, которая растет по своим законам. В ходе этой деятельности компьютерным животным приходится вырабатывать различные поведенческие стратегии, как индивидуальные, так и групповые, а пользователь может в любой момент эволюции занять позицию какого-либо существа и смотреть на виртуальный "мир" его глазами.
Подобное сочетание науки и развлекательных элементов в ИЖ не редкость. На сайте проекта цифровой биологии (http://www.biota.org/) можно полюбоваться картинками виртуальных существ, созданных с помощью самых разных технологий ИЖ, и поучаствовать в проектах типа Darwin@Home по объединению ресурсов простаивающих клиентских машин в сеть, рассчитывающую эволюцию сложных образований. На рисунках показано несколько примеров заложенной в основу проекта общедоступной программы Fluidiom, которой можно пользоваться и в одиночку (см. сайт fluidiom.sourceforge.net).
Одно из красивейших приложений, демонстрирующих эстетические возможности ИЖ, – программа GenePool3, виртуальный аквариум (http://www.ventrella.com/GenePool/gene_pool.html), в котором размножаются и эволюционируют причудливые создания, а если он поработает подольше, то в ходе развития и скрещивания могут возникнуть совсем удивительные существа.
Немало всевозможных искусственных зверюшек (птичек, медвежат), которые будут жить и развиваться на вашем ПК, а также приложения ИЖ для создания красивых изображений, комбинирующие технологии клеточных автоматов, фракталов, генетического развития и т. п., можно найти на сайте http://www.ventrella.com/.
Другие известные системы и проекты ИЖ приведены в таблице.
Ресурсы искусственной жизни
Название | Сайт, авторы | Описание |
---|---|---|
Agent-Based Computational Economics (ACE) | Факультет экономики университета Айова, США | Проект изучения моделей экономического развития как формы динамического взаимодействия интеллектуальных агентов. Обновлен в январе 2005 г. |
Ascape | Центр исследования социальных и экономических явлений, институт Брукинса, США | Java-среда моделирования и анализа поведения групп автономных агентов. Обновлялась в 2000 г. |
Ecolab | Департамент высокопроизводительных вычислений университета Нового Южного Уэльса, Австралия | Система построения эволюционных моделей, которые создаются на С++, а поведение задается с помощью сценарного языка Tcl. Обновлена в ноябре 2004 г. |
DDLab | Андрей Вьюнш, компания Discrete Dynamics Lab | Система создания клеточных автоматов с многомерной логикой, использующая технологию случайных логических сетей. Обновлена в декабре 2004 г. |
gLife | Али Абдин, Американский университет в Кайро, Египет | Попытка применения технологий клеточных автоматов к социальным феноменам и антропологии. В дополнение к наборам правил развития в каждой модели можно задавать особенности местности, на которой происходит эволюция, и такие характеристики автоматов, как возраст, пол, культурные особенности и т. д. Обновлено в 2000 г. |
Framsticks | Группа польских энтузиастов | Мощная система трехмерного моделирования, имитирующая эволюцию особей в мире, напоминающем земной. При этом корректно реализованы понятия генотипа, физического организма, мозга и нервной системы (нейронные модели), цепочки восприятия (среда – рецепторы – мозг – эффекторы – среда) и общей экосистемы. Обновлена в августе 2004 г. |
Ant Farm, Ant World | Роберто Матурана, Испания; Бен Бланделл, Великобритания | Симуляторы поведения муравьев Ant Farm – один из лучших в этом классе по наглядности. Его коллега AntWorld более сложный и менее красивый, но содержит немало настроечных параметров и средств анализа |
Evolutionz | Дмитрий Маринакис, Филипп Канзл, Канада | Трехмерная модель среды, в которой искусственные насекомые, управляемые нейронными сетями, конкурируют за пищевые ресурсы. Позволяет проводить эксперименты по созданию стабильной экосистемы путем манипулирования различным параметрами. За счет сложности среды каждый сеанс работы формирует уникальный мир и позволяет изучать оригинальные стратегии выживания. |
Много интересных ссылок на алгоритмы и программы по тематике ИЖ можно также найти на следующих сайтах:
- международного сообщества исследователей ИЖ – alife.org;
- zooland.alife.org с подборкой проектов ИЖ;
- школы компьютерных наук Брандайского университета – http://www.cs.brandeis.edu/~zippy/alife-library.html;
- лаборатории искусственных нейронных сетей японского института передовых научно-технологических исследований AIST – staff.aist.go.jp/utsugi-a/Lab/Links.html;
- экономического факультета университета Айовы – http://www.econ.iastate.edu/tesfatsi/acecode.htm.
Три лучших проекта
При подготовке этой статьи я просмотрел несколько десятков различных приложений по созданию моделей ИЖ, и особенно хочется выделить три следующих проекта.
1. ISAAC/EINSTein. Интересующихся приложением идей ИЖ к теории игр отсылаю к разработке ISAAC/EINSTein (http://www.cna.org/isaac/), развиваемой при поддержке некоммерческой организации CNА (http://www.cna.org/), спонсирующей высокотехнологичные проекты, и департамента морских исследований Пентагона (http://www.onr.navy.mil/). Эта внушительная система представляет собой полноценный симулятор наземных сражений, в основу которого заложены достижения теории комплексных адаптивных систем.
Отличие данной программы от существующих моделей сражения заключается в оригинальном подходе к пониманию процесса взаимодействия на поле боя (не командное управление "сверху вниз", а эволюционное взаимодействие "снизу вверх"), так как важный феномен самоорганизации солдат известен давно, а вот в компьютерных моделях учитывается редко. Ведь боец на поле сражения не получает приказы непрерывно, поэтому боевое пространство в экстремальных условиях конфликта ближе к децентрализованной экологической системе, где каждому участнику приходится постоянно принимать множество критически важных решений, связанных с выживанием.
Модели роботов играют в футбол
EINSTein наглядно демонстрирует, как в ходе сражения его отдельные рядовые участники самоорганизуются в динамические структуры с эффективным поведением и самоуправлением, хаотические наборы тактических приказов постепенно выстраиваются в единую упорядоченную стратегию, а армии начинают самостоятельно адаптироваться к меняющимся условиям боя. В системе задействованы генетические алгоритмы, нейронные сети, технологии самообучения автономных агентов и распознавания поведенческих шаблонов, встроены средства двух- и трехмерной визуализации и анализа собранных данных, имеется редактор простых и трехмерных ландшафтов, на которых разворачивается бой. Пользователю доступно множество настроек, задающих особенности конкретного сражения, возможности используемого оружия, нюансы поведения бойцов и т. д., а описание каждой модели конфликта хранится, что особенно удобно, в текстовом виде.
2. Webots. Из коммерческих систем стоит отметить пакет "Веботы" (http://www.cyberbotics.com/products/webots/index.html) фирмы Cyberbotics (дочерняя организация швейцарского федерального технологического института EPFL в Луизиане), используемый 200 научными центрами по всему миру. Он предназначен для проектирования роботов и обучения робототехнике, компьютерному моделированию, программированию систем искусственного интеллекта, машинного зрения и т. д. Этот пакет стоимостью около 2 тыс. евро включает все необходимые средства создания моделей мобильных роботов, программирования их логики (как индивидуальной, так и групповой), изучения поведения в трехмерных средах и последующего переноса на аппаратную платформу. Можно установить на виртуальной модели разнообразные датчики и манипуляторы, провести все необходимые испытания на компьютере с возможностью ускорения процесса в сотни раз или отладки по шагам и потом загрузить наработки в бортовую систему конкретного робота.
В пакете поддерживается большое число стандартных периферийных устройств – инфракрасные, ультразвуковые, лазерные, световые, сенсорные датчики, GPS-приемники, компасы, видеокамеры, средства позиционирования, управления колесами, двигателем, сервомоторами рук, ног, клешней, устройствами радиосвязи, индикаторами, лампочками и т. д. С помощью пакета создавалась модель шагающего робота AIBO, а также различные аппараты на базе платформ Hemisson, Lego, Mindstorms, Khepera, Koala и др. В поставке есть примеры проектов ИЖ на основе моделей роботов.
Разработчику доступен редактор виртуальных пространств (на платформе OpenGL), средства проектирования и программирования группового поведения (при желании управляемого централизованно через супервизор) с поддержкой локальной и глобальной связи по протоколу TCP/IP. Процесс моделирования можно сохранить в мультимедийном формате (анимационные ролики, сценарии VRML97), что позволяет делать красивые презентации.
Программирование поведения созданных в пакете "веботов" осуществляется на Си или Java, причем довольно легко – достаточно нескольких десятков строк кода для задания весьма сложного поведения (Этот процесс не многим сложнее, например, программирования виртуальных боевых роботов в играх типа "C Robots" (http://www.gamerz.net/c++robots/)). При желании с помощью данного продукта можно написать собственный кросс-компилятор для полностью оригинального в аппаратном и программном планах робота – колесного, шагающего, летающего. Допускается подключение приложений и на других языках, например Лиспе, а также созданных с применением внешних пакетов MatLab, LabView и т. д.
Доступная на сайте демо-версия представляет собой полнофункциональный вариант веботов, в ней только заблокированы средства загрузки полученных моделей в физические аппараты.
3. Cafun. Лучшей же по наглядности и простоте из всех свободно доступных программ данного направления мне показалась Cafun (http://www.cafun.de/), позволяющая на базе технологий ИЖ разрабатывать модели сложных систем. С помощью цифровых автоматов имитируется поведение живых созданий, социальных групп, коммерческих фирм, химических структур, природных явлений и физических процессов.
Все модели Cafun базируются на трех принципах: композиция системы из множества элементов с индивидуальными характеристиками (клеток, молекул); децентрализованное развитие, когда свойства и поведение каждого элемента зависят только от его локального окружения и собственной истории (ограниченного объема информации); параллельное функционирование модели, когда все взаимодействия между всеми элементами исполняются одновременно, за один такт. А результирующее поведение такой системы наглядно демонстрирует постулат: "Целое есть нечто большее, нежели просто сумма всех его частей". Cafun удобна при изучении принципов самоорганизации, понимания, что для этого необходимо и какими будут результаты подобного процесса.
В отличие от классических методов построения клеточных автоматов заложенные в Cafun идеи гораздо мощнее. Каждый элемент характеризуется оригинальным, отличным от других набором состояний (своего рода индивидуальностью, что позволяет, в частности, создавать модели конфликтов с несколькими противоборствующими сторонами) и может развиваться не только по общим и универсальным правилам, но и по своим собственным законам. Причем любой элемент способен со временем менять как эти правила (мутация), так и местонахождение в пространстве (диффузия). Кроме того, Cafun расширена вероятностными параметрами взаимодействия с окружением и перехода между состояниями, а также выбором в зависимости от контекста разных наборов правил для каждого элемента.
Структура модели описывается так называемым геномом, который хранится в текстовом XML-виде и может редактироваться, например, в специализированном Cafun-редакторе, где он представлен в виде дерева.
Cafun целиком написана на Java и отличается приятным дизайном и удобными средствами сбора статистики, хотя управление ею не совсем очевидно: набор небольших квадратиков без подписей на главной панели, на первый взгляд воспринимающихся как декоративные элементы, оказался серией основных кнопок запуска и пошагового выполнения модели и вызова редактора и настроек.
В поставку программы включено немало экспериментальных структур (геномов), демонстрирующих возможности системы в моделировании биологических систем (от одноклеточных микроорганизмов до лесов), природных и физических явлений, химических реакций, потоков частиц, распространения пожаров и др.
Например, модель Ameoba объясняет, как естественным путем происходит рост и размножение амеб, а примеры Threads, Cork, Chipset показывают, как хаотический и случайный набор элементов за несколько сотен поколений самоорганизуется, а затем происходит когда постепенное, а когда и революционное изменение, и подчас за считанные такты (иногда, правда, и за десятки тысяч поколений) модель превращается в гармоничную упорядоченную структуру, состоящую из элементов более высокого концептуального уровня.
Данная система Cafun будет, без сомнения, интересна любому исследователю ИЖ.
Статья опубликована в PC Week/RE №3 от 01.02.2005 г., стр. 26; №4 от 08.02.2005 г., с. 32; №5 от 15.02.2005 г., стр. 34.
Примечания
1. С первых дней своего официального существования участники ИЖ-проектов в существенной степени (гораздо активнее, нежели классические исследователи ИИ) ориентировались на робототехнику. Однако со временем их интерес переместился к моделям коллективного поведения.
2. На русском языке теме ГА посвящен, например, сайт qai.narod.ru.
3. По этой причине эффективность генетических моделей сильно зависит от алгоритмов оценки хромосом, которые выбираются довольно субъективно.
4. Процесс такой эволюции красив сам по себе, если суметь представить виртуальный мир в графическом виде, а хромосомы отдельных существ использовать как элементы различных цветов. Мир развивается естественным путем, а его создатель ожидает результат за чашкой чая, наслаждаясь причудливой эволюционной игрой.
5. См., например, http://www.math.com/students/wonders/life/life.html.
6. Эффект, описанный американским биологом Джеймсом Болдуином в статье “Новый фактор эволюции” в 1896 г. и заключающийся в том, что искусственный навык, полностью выработанный в ходе эволюции, в дальнейшем закрепляется на генетическом уровне и начинает передаваться по наследству.
7. На недавно прошедшей 15-й австралийской конференции по искусственному интеллекту обсуждался вопрос построения кибернетического футболиста-философа, рассуждающего перед каждым своим действием. Оказалось, что для эффективной игры ему достаточно руководствоваться тремя простыми правилами: следить за мячом; определять варианты своих дальнейших действий; оценивать, какой вариант лучше всего поможет команде, и выполнять его.
8. По этой теме можно порекомендовать книгу “Феномен науки” (доступна в электронном виде на сайте http://www.refal.net/) известного ученого Валентина Турчина, создателя языка метапрограммирования и метакомпиляции РЕФАЛ. Кстати, заложенные в РЕФАЛ еще в 60–70-е гг. прошлого века системные идеи опережают время и по сей день!
9. Теория хаоса, изучающая принципы возникновения упорядоченных систем из беспорядка, очень тесно пересекается с ИЖ; подробности см. на сайте http://www.xaoc.ru/.
10. Что не исключает возможности плавного зарождения простейших “глаз”, которые сначала будут реагировать лишь на наличие света, а затем постепенно развиваясь и усложняясь, научатся распознавать интенсивность света, оттенки серого, потом 4, 16, 256 цветов :) и т. д.
11. ИЖ применительно к самой исследовательской области ИЖ.
12. На одной из конференций прозвучало красивое высказывание: “Жизнь – это рекурсивное, фрактальное самовоспроизведение”, связывающее ИЖ с математикой, кибернетикой, философией и искусством.
13. О том, к чему могут привести достижения технологий ИЖ в безответственном обществе, замечательно поведал московский фантаст Леонид Каганов (lleo.aha.ru) в грустном рассказе “Хомка”, получившем несколько премий на конкурсах фантастики.
14. А в ходе опытов этой же группы ученых с эволюционным “выращиванием” аппаратных схем программно-аппаратная среда вместо заданного ей в качестве цели осциллятора неожиданно самостоятельно построила радиоприемник, который не генерировал собственный сигнал, а принимал его с соседнего ПК и затем транслировал во внешний мир!
15. Или моделью мира, созданной агентом Смитом в “Матрице”.