Skip to content

Алгоритмы : симуляция эволюции (естественный отбор).

License

Notifications You must be signed in to change notification settings

egorov-m/alg-Simulation-Evolution

Repository files navigation

Алгоритмы : симуляция эволюции (естественный отбор).

Описание того, как устроен естественный отбор в программе и как им можно управлять.

Устройство мира и организмов

Организмы

  1. Обычные организмы — способны передвигаться по полю, могут насыщаться только пищей.
  2. Хищные организмы — способны передвигаться по полю, могут насыщаться пищей и другими организмами.
  3. Пища — не может передвигаться, служит основным способом насыщения.

Параметры организмов (1, 2)

  • Размер (радиус) — начальное значение для добавляемых организмов задаётся пользователем.
  • Скорость — выделяется 6 классов скоростей, начальное значение для добавляемых организмов задаётся пользователем.
  • Лимит размера деления — значение размера организмов, при котором произойдёт отпочковывание, начальное значение задаётся пользователем (не может быть меньше 30).

Классы скоростей

  1. speed <= 5 единиц — #5DE5DA (бирюзовый).
  2. 5 < speed <= 15 единиц — #7160E8 (фиолетовый).
  3. 15 < speed <= 20 единиц — #C8A4E8 (светло-пурпурный).
  4. 20 < speed <= 30 единиц — #C8956D (светло-оранжевый).
  5. 30 < speed <= 40 единиц — #DF763A (оранжевый).
  6. speed > 40 единиц — #FF3535 (красный).

Отпочковывание организма

После превышения заданного лимита размера организма происходит появление нового организма, причём параметры нового и старого орагизма будут следующими: размер тела уменьшен в 2 раза, скорость увеличина в 1.5 раз, лимит размера остаётся для обоих организмов прежним.

Правила мира организмов

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

Насыщение от пищи

  1. Обыкновенная пища — добавляет к размеру 1/4 от своего размера, скорость соответственно уменьшается.
  2. Живые организмы — добавляет к размеру 1/4 от размера поглощенного организма, скорость соответственно уменьшается.

Управлене эволюцией

Пользователь может по своему усмотрению собирать состав выборки организмов для демонстрации естественного отбора.

Можно собирать выборку (указыая количество):

  • Добавить набор организмов со случайным составом
  • Добавить обычные организмы
  • Добавить хищников
  • Добавить пищу
  • Осуществить сброс составленной выборки

Указывать параметры

Доступны поля ввода размера, скорости и лимита размера деления для добавляемых организмов.

Переключение режимов наполнения мира (по умолчанию: вручную)

Есть два режима наполнения:

  1. Вручную — пользователь добавляет организмы путём нажатия кнопок.
  2. Автоматически — организмы будут добавляться автоматически с заданным промежутком времени в миллисекундах, в соответствии с заданными параметрами.

Запуск / остановка эволюционного процесса (по умолчанию: приостановлено)

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

Статистика

На основе текущего состояния поля, где протикает эволюция будет строиться два графика.

График количества организмов по их скоростям

Отрисовка в реальном времени графика изменения количеества организмов на поле относящихся к разным классам скоростей. Цвет лини графика соответствует цвету организма на поле.

График количества организмов по категории хищник / обычный

Отрисовка в реальном времени графика изменения количества организмов, относящихся к обычным (питаются только обычной пищей), и хищников (могут поедать живых организмов). Красная линия на графике — хищники, белая — обычные организмы.