Автор работы: Пользователь скрыл имя, 06 Октября 2013 в 12:41, лабораторная работа
Искусственная жизнь (Artifical life) - это понятие, введенное Крисом Лангтоном
(Chris Langton) для обозначения множества компьютерных механизмов, которые
используются для моделирования естественных систем. Искусственная жизнь применяется для моделирования процессов в экономике, поведения животных и насекомых, а также взаимодействия различных объектов.
Искусственная жизнь представляет собой целую науку с множеством
аспектов. Мы рассматривали одно из ее направлений - синтетическая наука о по-
ведении (Synthetic ethology). Ее очень четко описывает
Министерство образования и науки Российской Федерации
Иркутский Государственный Технический Университет
Факультет технологии и компьютеризации машиностроения
Кафедра технологии машиностроения
Отчет
по лабораторной работе
по курсу «Интеллектуальные информационные системы»
на тему: «Искусственная жизнь»
Работу выполнили:
студенты группы ИСМ-06-2
Гогенко Н.С.
Пискунов Д.Ю.
Санников П.Г.
Качура Д.С.
Проверил:
Куцый Н.Н.
Иркутск 2009 г.
Содержание
Искусственная жизнь (Artifical life) - это понятие, введенное Крисом Лангтоном
(Chris Langton) для обозначения множества компьютерных механизмов, которые
используются для
Искусственная жизнь представляет собой целую науку с множеством
аспектов. Мы рассматривали одно из ее направлений - синтетическая наука о по-
ведении (Synthetic ethology). Ее очень четко описывает
Брюс МакЛеннан (BruceMacLennan):
«Синтетическая наука о поведении - это подход к изучению поведения животных, при котором простые синтетические организмы определенным образом действуют в синтетическом мире. Так как и мир, и организмы являются синтетическими, они могут быть сконструированы для особых целей, а именно для проверки определенных гипотез».
Искусственная жизнь может быть описана как теория и практика моделирования биологических систем. Разработчики, которые ведут исследования в данной сфере, надеются, что путем моделирования биологических систем мы сможем лучше понять, почему и как они работают. С помощью моделей разработчики могут управлять созданной средой, проверять различные гипотезы и наблюдать, как системы и среда реагируют на изменения.
Пищевая цепочка описывает иерархию живых организмов в
экосистеме. Например, рассмотрим очень простую абстрактную
пищевую цепочку, которая состоит из трех особей (Рис. 1).
В нижней части цепочки находятся растения. Они получают
энергию из окружающей среды (дождя, почвы и солнца).
Следующий уровень занимают травоядные животные, - для
выживания они поедают растения. На верхней ступени находятся
хищники. В этой модели хищники поедают травоядных
животных, чтобы выжить. Если проигнорировать присутствие в среде мертвых травоядных и хищников, то цепочка будет выглядеть так, как показано на Рис. 1.
Если рассматривать Рис. 1 как график зависимости, видно, что между особями существует четко выраженный баланс. Что произойдет, если вдруг в результате засухи или по другой причине исчезнут все растения? При этом нарушится баланс выживания травоядных животных в среде, что приведет к сокращению их популяции. Это отразится на всей цепочке и повлияет на популяцию хищников. Данный баланс может моделироваться и изучаться в сфере искусственной жизни и науки о поведении.
Чтобы смоделировать простую пищевую цепочку, необходимо определить некоторые параметры: окружающую среду (физическое пространство, в котором взаимодействуют агенты), самих агентов (а также их восприятие и поведение в среде) и группу правил, которые определяют, как и когда происходит взаимодействие. Эти элементы будут описаны в следующих разделах.
Как и описывалось выше, создаваемая модель будет состоять из среды и трех типов особей. Растения представляют собой неподвижный источник еды для травоядных животных. Травоядные животные являются мигрирующими агентами, которые определенным образом воспринимают окружающую среду и едят растения. Другими мигрирующими агентами в среде являются хищники, поедающие травоядных животных. Хищники могут есть только травоядных, а травоядные могут есть только растения. Если какой-либо агент живет в среде определенное время и не получает еды, он сам погибает от голода. Когда агент поглощает достаточное количество пищи, он может размножаться. Таким образом, в среде создается новый агент определенного типа. Происходит эволюция, при которой мутирует мозг агента (простая нейронная сеть).
Важно отметить, что агенты изначально не знают, как нужно выживать в среде. Они не знают, что поедание пищи позволит им прожить дольше. Также они не знают, что должны избегать тех, кто их ест. Агенты должны освоить все эти знания посредством эволюции.
Далее подробно рассматриваются элементы модели.
Агенты живут в мире, построенном по принципу сетки, грани которой соединены по аналогии с тороидом. Если агент перемещается за грань в определенном направлении, он появляется на другой стороне (рис. 2).
Растения занимают уникальные ячейки в среде, однако несколько агентов могут занимать одну и ту же ячейку (травоядное животное и/или хищник).
|
| ||
Рис. 2. Мир в виде сетки, построенной по принципу тороида,
который будет использоваться для моделирования пищевой цепочки
Агент является генетической особью. Он может быть только определенного типа (травоядным или хищником), но метод изучения окружающей среды и образ действий для всех агентов одинаковы (рис. 3). Агента можно рассматривать как простую систему с набором входов (его ощущением мира), реакцией на окружающий мир (его мозгом) и действий.
Вход Обработка Выход
Окружающая среда Агент
Рис. 3. Модель систем с агентами
Как показано на рис. 3, агент состоит из трех отдельных частей. Это сенсоры, ощущение (определение того, какое действие выбрать) и действие. Следует обратить внимание, что модель агента реагирует на окружающую среду. Агенты не могут планировать и обучаться. Даже в такой простой модели обучение происходит по принципу, который называется эволюцией Ламарка. При воспроизводстве характеристики родителя передаются потомству.
Агенты могут чувствовать, что. происходит вокруг них в среде. Однако агент
не видит всю среду, он реагирует только на группу ячеек вокруг него (рис. 4). Локальная среда, которую может чувствовать агент, разделена на четыре отдельные области. Самая ближняя к агенту область называется областью близости, и это та область, в которой агент может действовать (скажем, съесть другой объект). Область впереди агента (5 ячеек) именуется фронт, а две ячейки слева и справа — слева и справа.
Агент может определять вид объектов в поле зрения: Поэтому для четырех
областей предлагаются три числа,
которые позволяют
имеющихся объектов (растения, травоядные и хищники), то есть всего двенадцать входов.
|
Фр |
Фр |
Фр |
Фр |
Фр |
|
Сл |
Бл |
Бл |
Бл |
Спр |
||
Сл |
Бл |
Агент |
Бл |
Спр |
||
Фр – фронт
Сл – слева
Спр – справа
Бл - близость
Рис. 4. Область предчувствия агента. Агент «смотрит» на север
Агент может выполнять ограниченное число действий в среде: перейти на
одну ячейку (в заданном направлении), повернуться налево или направо или съесть объект, который находится в области «близости». Действие, которое производит агент, определяется его мозгом при оценке входов, полученных на уровне сенсоров.
Мозг агента может быть одной из многочисленных компьютерных конструкций. Существующие симуляции искусственной жизни используют принцип конечных автоматов, системы классификации или нейронные сети. Чтобы сохранить аналогию с биологической мотивацией, в данном случае при моделировании используется простая нейронная сеть, построенная по принципу «победитель получает все», в качестве системы поведения агента. На рис. 5 показана полная сеть.
Вспомните, что входы сенсоров отображают количество агентов, которые находятся в поле зрения в определенной области. После того как все входы были получены из среды, программа «продвигает» их через сеть к выходам. Это делается
с помощью уравнения (1):
(1)
Другими словами, для каждой входной ячейки ( ) сети суммируются результаты входных ячеек ( ), которые умножаются на веса соединений от входных ячеек
к выходным ( ), Также добавляется смешение для выходной ячейки. В результате
в выходных ячейках будет получен набор значений, которые затем используются элементом действия агента.
Начальные веса нейронной сети агента выбираются случайным образом.
В результате воспроизведения веса должны быть настроены для выживания в среде.
Травоядное
на переднем
плане
Хищник
на переднем
плане
Растение
на переднем
плане
Травоядное
слева Повернуть
налево
Хищник
слева
Растение Повернуть
слева направо
Травоядное
справа
Хищник
справа
Съесть
Растение
справа
Близость Нейронная сеть по принципу
травоядного «победитель получает все»
Близость
хищника
Близость
растения
Рис. 5. «Победитель получает все»: нейронная сеть в качестве «мозга» агента
Вспомните, что агент может выполнять одно действие из четырех возможных,
как указано выходными ячейками нейронной сети. Процесс выбора действия заключается в поиске выходной ячейки с наибольшим значением и выполнении соответствующего действия. Это и есть принцип «победитель получает все» применительно к сети. После выполнения действия окружающая среда изменяется (если на нее воздействовали),
и процесс продолжается.
Чтобы выжить в окружающей среде, агентам нужна адекватная энергия. Если
внутренняя энергия агента становится равна нулю, агент умирает. Агенты создают энергию, съедая другие объекты в среде. Агент может съесть только тот объект, который допускается пищевой цепочкой. Хищники могут есть только травоядных, а травоядные - только растения. Агенты также обладают метаболизмом, то есть коэффициентом поглощения энергии, который позволяет им сохранить жизнь. За каждую единицу времени хищники поглощают одну единицу энергии, а травоядные - две единицы. Это значит, что для сохранения жизни травоядным нужно съедать в два раза больше пищи, чем хищникам. Хотя хищникам не требуется так много еды, им еще нужно ее найти. Травоядные имеют преимущество, которое заключается в том, что их пища не перемещается по среде. Тем не менее им все равно нужно отыскать свою пищу.
Если агент поглощает
Воспроизведение имеет последствия: родитель и ребенок разделяют имеющуюся энергию родителя (энергия родителя делится пополам). При этом агент не
сможет непрерывно воспроизводить себя.
Агент может умереть двумя способами: либо он не сможет найти пищу и умрет от голода, либо его съест агент, который стоит выше в пищевой цепочке. В любом случае мертвый агент удаляется из модели.
Во время симуляции происходит своеобразное соревнование. Хищники постепенно разрабатывают нейронные сети, которые подходят для обнаружения и поедания травоядных животных. В то же время травоядные совершенствуют нейронные сети, которые помогают находить растения в среде и избегать хищников. Хотя эти стратегии видны при изучении симуляции, анализ изменений в нейронных сетях позволяет сделать интересные выводы.