Monday, June 8, 2015

Моделирование формирования видов в процессе эволюции

Копия Шиманчик_курсач_141222
РЕЗЮМЕ
Тема курсовой работы:“Моделирование формирования видов в процессе эволюции”
Работа содержит 21 страницу, 4 изображения.
Ключевые слова: моделирование, биология, эволюция, простейшие.

Содержание

Содержание…………………………………………………………………..2
Введение……………………………………………………………………...4
Глава 1. Объект модели……………………………………………………...5
1.1 Свойства и состояния энималов…………………………………….5
1.2 Действия энималов…………………………………………………...8
1.2.1 Существование (exist)................................................................8
1.2.2 Передвижение (move)................................................................8
1.2.3 Атаковать\Есть (attack\eat).........................................................8
1.2.4 Размножение (reproduction).....................................................10
Глава 2. Настройка констант……………………………………………….11

Перечень условных обозначений, сокращений, символов и терминов

Энимал
Абстракция живого существа в созданной модели

Введение

Одним из видов изучения явлений и процессов является компьютерное моделирование, т.е. создание системы с определенными законами и изучения ее поведения в интересующих нас условиях. В моем случае изучение реального явления “формирования видов” не является первоочередной целью создания ее модели. Причиной же ее создания является использование полученного результата для исследования еще более волнующего и интригующего явления как формирование психики. В процессе объяснения работы созданной модели, можно будет заметить влияние данной цели на некоторые решения.
Кроме того, придумывание и реализация модели еще не самое страшное, с чем я столкнулся в этой работе. Наибольшие трудности возникли именно с настройкой параметров ее работы, а так как их было довольно много, пришлось прибегать к математическому анализу некоторых образовавшихся зависимостей. И даже вооружившись формулами и статистикой из полученной системы подобрать нужные параметры вручную было неописуемо сложно. Поэтому был использован “алгоритм имитации отжига” для их подбора. Выбор данного инструмента был весьма субъективным и я не могу настаивать на его уместности, но, как бы то ни было, свои плоды он дал.

Глава 1. Объект модели

Единственным объектом данной модели является абстракция живого существа, названная “энималом”. Создать данный объект я старался как можно более абстрактным, чтобы через него можно было выразить любой вид, хоть слона, хоть моську.

1.1 Свойства и состояния энималов

Свойства - это параметры энимала, которые не меняются на протяжении жизни. С состояниями дело обстоит наоборот.
Свойства:
  • Размер (size)
  • Скорость передвижения (movement speed)
  • Количество потомства (progeny count)
  • Продолжительность жизни (life long)
Так же энимал агрегирует в себе следующие объекты с соответствующими свойствами :
  • Батарея (battery)
  • размер (size) *
  • Желудок (stomach)
  • размер (size) *
  • метаболизм (metabolism)
  • Память (memory)
  • Множество сенсоров (sensors)
* Размер батареи и размер желудка строго зависят от размера самого энимала.
Как я упоминал ранее, в этом описании присутствуют избыточные элементы, которые пригодятся впоследствии: память и множество сенсоров. Их рассматривать я не буду.
При описании данных свойств упор делался на то, что нельзя конкретно сказать какая крайность отдельного свойства лучше или хуже. Например, нельзя сказать: “чем больше свойство size, тем лучше для энимала”. Конечно, большее его значение влияет на сравнение сил во время боя, на размер желудка и батареи, но чем больше размер - тем больше энергии нужно тратить на поддержание жизнедеятельности и передвижение.
Давайте рассмотрим каждое свойство в отдельности:
свойство
малое значение
большое значение
size
меньше потребляемой энергии на существование и передвижение
больший размер желудка и батареи. Большая сила в бою
movement speed
меньше потребляемой энергии на передвижение
преимущество в поиске пищи и партнера для размножения
progeny count
меньше потребляемой энергии при рождении потомства
большее количество потомства. больше свойств (генов) оставленных в мире
life long
вид быстрее адаптируется к изменяющимся условиям в окружающем мире
Большее количество партнеров сможет оплодотворить - большее количество потомства оставит после себя
metabolism
медленное переваривание пищи, как следствие ее хватает дольше
быстрое переваривание пищи дает больше энергии
А наиболее значимыми состояниями являются:
  • здоровье (health)
  • логическое значение alive, отвечающее на вопрос, живой ли энимал
  • возраст (age)
  • наполненность желудка (stomach.fullness)
  • наполненность батареи (battery.fullness)
Их названия говорящие, так что я не буду описывать их. Однако следует особо отметить состояние alive. Если здоровье особи падает до нуля, то энимал становиться мертвым и является едой для живых особей.

1.2 Действия энималов

1.2.1 Существование (exist)

Существование - процесс поддержания жизнедеятельности энимала. Это действие происходит каждый момент времени и на него расходуется энергия:
       (1)
 где
EFESP (Energy For Exist Size Power),
EFEF (Energy For Exist Factor) - некоторые константы мира.
Так же во время этого действия, происходит переваривание пищи и регенерация здоровья, в зависимости от метаболизма энимала. Если же пища в желудке отсутствует, то здоровью наносится вред.

1.2.2 Передвижение (move)

Дальность передвижения (length) за один момент времени не может быть больше чем move speed.
Энергия, расходуемая на передвижение вычисляется по формуле:
  (2)
 где
EFMSP (Energy For Move Size Power),
EFMLP (Energy For Move Length Power),
EFMF (Energy For Move Factor) - некоторые константы мира.

1.2.3 Атаковать\Есть (attack\eat)

В действии attack\eat , как видно из названия, инкапсулировано два действия, в зависимости от состояния alive объекта на который она направлена. Если же объект мертв, то выполняется действие “есть”, иначе “атаковать”.
  • eat
С этим действием все просто. У мертвого объекта уменьшается размер, а у субъекта наполняется желудок.
  • attack
Весь процесс атаки одного энимала на другого я сделал растянутым во времени, т.е. не единовременным, чтобы в последствии у жертвы было время сообразить и начать убегать от своего обидчика.
Для боя используются вспомогательная величина fightPower, которая вычисляется по следующей формуле:
где FPSP (Fight Power Size Power), FPMP (Fight Power Metabolism Power) - некоторые константы мира,
У жертвы fightPower умножается на коэффициент защиты DEFENCE_POWER_RATIO, которая увеличивает ее fightPower.
Затем вычисляется отношение сил по формуле:
,
где power, enemyPower - fightPower охотника и жертвы соответственно.
И если эта величина больше константы RATIO_VALUE_TO_KILL, то жертва умирает, иначе здоровье жертвы изменяется на :

1.2.4 Размножение (reproduction)

Процесс размножения, как и положено в цивилизованном обществе, происходит по согласию обеих сторон и между одинаковыми видами.
Два энимала считаются принадлежными к одну и тому же виду, если для любого свойства удовлетворяет следующее условие
 
где property.maxValue - максимальное значение данного свойства, MPD (Maximum Property Difference) - некоторая константа.
 Что касается самого акта, то сначала первый энимал кидает запрос на размножение понравившемуся партнеру, а после другой дает свое согласие или несогласие. Но если они сошлись во мнении, то сначала они расходуют энергию на сие деяние, вычисляемую по формуле, для каждого из них:
 (3)
где EFBF (Energy For Birth Factor) - некоторая константа мира.
А затем создаются их дети, количеством равным среднему значению их свойств progeny count, такие что, их свойства являются случайными величинами, имеющими нормальное распределение, с мат. ожиданием, равным среднему значению свойства родителей, и дисперсией равной половине модуля разности родительских свойств, умноженной на коэффициент INHERITANCE_DISPERSION. Таким образом закладывается возможность мутации, при рождении новых особей, активность которой зависит от коэффициента.
Следует отметить интересную трудность в процессе реализации обратной функции Гауcсовского распределения. Для ее вычисления использовалась аппроксимационная формула, дающая результат с точностью до тысячных для N(0,1), что вполне меня устраивало.

Глава 2. Настройка констант

2.1 Начальная установка констант

Перед тем как подбирать более оптимальные константы, я провел некоторый анализ модели и выразил зависимости определенных явлений от параметров. Самым главным таким явлением был энергетический баланс. Ведь когда энималы совершают какие-либо действия, они расходуют энергию, но откуда они ее получают? Из пищи, а пищей являются умершие энималы. В свою очередь энималы появляются при рождении с начальным уровнем наполненности желудка и батареи, так же стоит учесть и потенциальную энергию от размера рожденного энимала, в том случае, если его съедят. Итак давайте проанализируем все места появления и траты энергии.
Энергия появляется при рождении нового энимала.
где initBatteryFullness, initStomachFullness - начальные уровни заполненности батареи и желудка соответственно,
 JIP (Joule in squared pixel) - количество енергии в еденице содержимого желудка.
MIS (Meet In Size) - отношение размера энимала и мяса, содержащегося в нем и попадающего в желудок, если его съесть.
С появлением разобрались, а сейчас посчитаем сколько и куда девается:
Энергия на существование (1) и энергия на передвижение (2) тратится каждый момент времени плюс энергия на рождение (3) траться при рождении. Кроме того, каждый раз при смерти энимала, даже когда его всего съедают, у него остается энергия в батареи и пища в желудке, которая так же теряется. И чтобы мир не лишился энергии, а следовательно энималы продолжали жить, нам нужно чтобы отношение появившейся энергии и потраченной было больше единицы, но не на много, потому что в ином случае будет переизбыток энергии и перенаселение мира. В таком случае можно вывести формулу:
где
ibf (isf) - initial battery (stomach) fullness - начальная заполненность батареи (желудка)
lbf (lsf) - last battery (stomach) fullness - среднее значение заполненности батареи (желудка) при смерти
sz - среднее значение размера
ms - среднее значение скорости передвижения
pc- среднее значение количества потомства
P(birth) - вероятность рождения в момент времениP(death) - вероятность смерти в момент времени
По которой можно оценивать влияние тех или иных параметров на баланс энергии.

2.2 Подбор констант

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

Глава 3. Оценка результата

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

Как видно, некоторый результат имеется, однако модель еще требует доработки и настройки результата, хотя бы в направлении стабилизации получаемого результата.

Заключение

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

Используемая литература

  1. Айвазян С. А. и др. Прикладная статистика: Основы моделирования и первичная обработка данных. Справочное изд. / С. А. Айвазян, И. С. Енюков, Л. Д. Мешалкин. — М.: Финансы и статистика, 1983. — 471 с
  2. Al Application Programming by M. Tim Jones ISBN:1584502789 Charles River Media© 2003

No comments:

Post a Comment