© Сергей Яковлев, 2009

Использование этой информации в коммерческих целях запрещенно. Но Вы можете копировать и перерабатывать данную статью в научных и образовательных целях, с последующим предоставлением результата на тех же правах. Для подробной информации см. Авторское право.



Постановка задачи

Итак, задача у нас следующая: так модифицировать Microsoft Terrarium 2.0 чтобы он стал средой для задачи "Двухуровневого целеполагания", т.е. чтобы в этой среде могли выживать только интеллектуальные алгоритмы, а простые алгоритмы прямого программирования были бы не выгодны в этой среде.

Чем Microsoft Terrarium 2.0 для этой цели не подходит ? В принципе по логике игры почти всем. Но в качестве графической приставки, т.е. для отображения происходящего в среде - очень хороший движок с открытым кодом. Далее, нам нужна не игра сама по себе, с ее сложностями и азартом, а эксперементальная площадка для исследований. Для этого логика игры Террариум слишком сложна и динамична, но в то же время ни сколько не побуждает писать интеллектуальных агентов.

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

Во-вторых, мы усложним именно интеллектуальную часть правил. А для этого нужно будет развить идею о наличии ДНК в организмах. Именно это позволит превратит Террариум из одноцелевой игры (выжить кушая и размножаясь) в игру с двумя уровнями целей. Т.е. скушать растение будет мало, нужно будет скушать правильный набор растений - выработать так сказать рацион. Дело в том, что растения будут отличаться по разным ДНК (пока только три группы), и чтобы получить эволюционные преимущества нужно будет набрать редкую группу Q определенного ДНК, другие группы будут полезны для получения пищи и преобретения возможности перемещаться на большие растояния (т.е. не все организмы смогут двигаться куда угодно). Таким образом появится необходимость выработать сложное (достаточно интеллектуальное) поведение - с одной стороны не забывать кушать и размножаться, с другой искать новые ресурсы для чего нужно преобрести способность лучше двигаться. И все это для накопления ДНК группы Q, которая особых преимуществ сразу не дает, но именно по ней будет подсчитываться исход игры. И все это за ограниченный промежуток времени, что не дает стратегии планомерной колонизации - никаких преймуществ. Т.к. нужно действовать целенаправлено и интеллектуально - взвешивая, чем лучше сейчас занятся имеющейся популяции, согласовывая действия отдельных организмов.

Уточненная интерпретация задачи Двухуровневого целеполагания в модифицированной среде Microsoft Terrarium

Это все будет еще не раз уточнятся - здесь рабочий набросок.

Модельная среда представляет собой экологическую нишу, размером 960х960 пикселя (или 120х120 квадратов, размер квадрата 8х8, взрослая особь может занимать 4х4 квадрата, детеныш в два раза меньше). Пищей в ней служит молодое (2х2 квадрата) статическое растение. Число растений = 500, случайно разпросаны по карте, но с сильным заполнением. Энергетическая емкость статична = 1000. Растение не размножается. Все растения живут фиксированный отрезок времени = 10000 тактов. После этого пища пропадает и игра заканчивается.

Но растения отличаются структурой ДНК.

Различают три вида ресурсов – ДНК для создания мужской особи (ДНК-X), ДНК для создания женской особи (ДНК-Y), прочие биоматериалы (новые фрагменты ДНК, РНК).

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

Сделав свой выбор, особь начинает питаться из одного выбранного источника - растения (гнездо), и больше не перемещается после этого. Размножаясь самка производит на свет двух разных особей - молодого самца (самцы для упрощения не взрослеют и не управляются в дальнейшем игроком, в дальшейших версия предполагается, что самцы будут защитниками гнезда при нападениях других особей хищников) и взрослой самки (опять же для упрощения этап ее взросления пропущен). Молодые самцы рождаются и размещаются вокруг гнезда до 8 особей от одной матери. Они находят первое любое растение и начинают его кушать, незначительно перемещаясь. Съеденные молодыми самцами ресурсы прибавляются в счет ресурсов самки.

В зависимости от добытой ДНК-X – появляется новые молодые самцы (поэтому важно какие окрестности имеются вокруг гнезда), а при накоплении определенного количества ДНК-Y - появляется новая самка (и стоит задача выбора места для нового гнезда).

Количество необходимой еды для появления нового особи зависит от числа уже живущих особей в гнезде - чем более тесное жильё, тем большее количество пищи необходимо для прокормки. При одной особи нужно 20 ед. еды, при двух – 30 ед. и т.д. Количество материала необходимое для создания новой взрослой самки 250 ед.

Время жизни взрослой самки 500 тактов, а молодого самца 300 тактов. При чем самки, которые долго не могут выбрать место для гнезда - умирают от голода.

Конечная задача состоит в выборе стратегии при которой за N ходов можно добыть наибольшее количество прочих биоматериалов, имяя которые можно в дальшейшем эволюционировать.

Основные этапы модификации и их цели

Рабочие название расширяемой библиотеки (а так же проекта) TerrariumDNA. Так как основные модификации будут затрагивать учитывание ДНК, которое находится в растениях, и которое съедают и используют для эволюции травоядные.

Возможности игры, которые мы не будем использовать

  1. Режим игры по сети неиспользуем, играем только на локальном компьютере.
  2. Хищников в среде не создаем, соответственно травоядным нет необходимости ни от кого убегать или защищаться.

Технические модификации

  1. Отключаем контроль Security, трассировку можем писать в файл из любого места.
  2. В атрибуте OrganismClass можно вторым параметром указать SpeciesClassName. Позволяет управлять состоянием и правилами по которому живет организм.
  3. Из одной сборки можем загружать несколько организмов, т.е. указывать несколько атрибутов OrganismClass
  4. Шар телепортации убран. Так как он в локальном режиме только переносит в другое место организмы - мешат анализировать развитие организмов.

Модификации правил

  1. Растения вводятся в игру уже взрослыми и статичными, т.е. они не размножаются, не растут, не тратят энергию - являются только пищей для травоядных. Растениями заполнен практически весь мир с избытком, т.е. специально искать растения нет ни какой необходимости - они есть по всюду (другой вопрос на сколько они съедобны - см. далее).
  2. Организмы могут находится в одной клетке, т.е. бегать по растениям, рядом с другими особями не сталкиваясь. Таким образом, все вопросы препятствий обыгрывать не нужно (за исключением границ мира). Такие алгоритмы мало интересны для ИИ.
  3. Организмы разделяются на самок и самцов, последние, так же как и дети не размножаются.
  4. игра длится фиксированное количество тактов (=3000). В игре находятся только один вид травоядных (но с различными генными мутациями - см. далее)
  5. Игра начинается с введения одной взрослой самки.
  6. Потомство самки рождается рядом с самкой, а не в случайной позиции, как это было в оригинальной игре.
  7. Самка после того как нашла место для выведения потомства больше не перемещается.
  8. Самка может родить до 8 особей мужского пола, которые за время игры не становятся взрослыми, вследствии чего находятся только в окрестностях гнезда вокруг самки.
  9. Самка так же может родить неограниченное число особей женского пола, которые для упрощения логики игры сразу становятся взрослыми и могут покинуть гнездо.
  10. Растения имеют ДНК трех групп. Все растения отличаются количественным содержанием и пропорциями этого ДНК.
  11. При поедании растений травоядными они накапливают соответствующие количество разных групп ДНК. ДНК первой группы влияет на энергетическое содержание пищи и позволяет родить особей мужского пола, ДНК второй группы позволяет рождать особь женского пола, а по третьей групе ДНК (которое сравнительно редко распространено) происходит оценка успешности колонии, т.е. выйрыш используемого алгоритма.

См. также

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.