Методика независимого моделирования
Мое письмо Hans Schultze весной 2016:.
Сравнение версий 1.6 и 1.5
Ошибка в симметричной передаче координат в положениях слева и справа ринга:
1.6 – есть, несимметричное поведение, выделен левый верхний угол, ущербная версия
1.5 – нет, симметричное поведение, нормальная версия (проверенные несимметричные в версии 1.6 экземпляры в версии 1.5 вели себя симметрично)
Лопающиеся амебы:
1.6 – есть
1.5 – ?
Малое разнообразие первоначальных нулевых амеб
1.6 – есть, много независимых выведений молодых амеб с одной породой
1.5 – ?
Наличие редактора популяций:
1.6 – есть
1.5 – есть
Возможность автоматического проведения соревнований и тестирования силы:
1.6 – раньше сайт, сейчас фактически ничего
1.5 – т.к. поведение симметрично слева и справа ринга, скрипт Андре Мариоля «амеба против всех амеб в папке» выполняет роль кругового соревнования в N кругов, что открывает возможность личных тестов, но нет общей площадки для сравнения амеб разных авторов
Зависимость от личных качеств Админа:
1.6 – зависимость, т.к. на руках нет скрипта проведения независимых соревнований-тестов
1.5 – независимость, т.к. есть скрипт Андре Мариоля
Предельный объем генома:
1.6 - маленький, набор “массы” оканчивается в районе 100Кб.
1.5 - ?
Замер силы амеб в популяции по итогам боев в одном поколении:
1.6 – по единственному худшему результату, что вносит множество искажений и при разных настройках делает неестественным отбор сильнейших или превращает его в антиотбор
1.5 – по среднему результату всех боев, нормальный отбор сильнейших
Многообразие стилей, множественность локальных максимумов:
1.6 – бедность стилей, вырождение поведения к «тентаклю», задача достижения максимума проста
1.5 – богатство стилей, задача достижения максимума сложна, возможно очень сложна или недостижима
Отсюда решение - попробовать перейти на версию 1.5. Если 1.5 оправдает надежды:
1. Это открывает перспективу моделирования эволюции в нормальном режиме, без багов (несимметричность поведения) и методических ошибок (расчет по единственному худшему результату).
2. Стилевое многообразие версии 1.5 открывает возможности выведения пород с разным типом поведения близкой силы. Эволюционная задача достижения максимума становится нетривиальной и возможно решается через получение не одной лучшей амебы, а группы амеб разных типов поведения. Т.е решение может быть коллективным, достигаемым через многообразие.
3. Имея на руках скрипт Андре Мариоля каждый становится самодостаточным в проведении личных тестов своих амеб и независимым от проявлений природы Админа.
4. Нет общей площадки для сравнительных тестов амеб разных авторов, но возможно это решится. Я не могу (не умею) это сделать, иначе бы сделал. <…> Мои потребности ограничиваются самой простой страничкой и возможностью общего сравнительного теста в одной номинации с периодичностью не чаще раза в месяц. Для меня совершенно неизвестны возможности версии 1.5 в смысле скорости усиления, поэтому ничего не могу сейчас сказать о полезности сравнительных тестов среди двойных и о пользе введения новых номинаций, например с 16 узлами среди одинарных и 16 узлами среди двойных. <…>
5. Все процессы в 1.6 у меня остановлены. Не имея независимого способа тестирования, вывожу этим себя из зависимости от глючного сайта и деструктива Админа.
6. Мне интересны исследование и получение эффективных моделей эволюции, и версия 1.5 кажется подходит для этого лучше версии 1.6. Удивительно, как я не видел этого раньше. Ты много времени бился над стилевых многообразием, недостижимым в версии 1.6, и также органичным для 1.5.
7. <…>
8. Первые месяцы возможно даже полезно если не будет сравнительных тестов. А возможно это в моем случае полезно на все время процесса, тогда это будет действительно независимое получение эффективных моделей, самостоятельный процесс достижения максимумов силы. Эта последняя мысль так притягательна, что необходимость общей площадки кажется уже вредной идеей 
Ясно одно, участие в соревнованиях и активность на сайте с версией 1.6 я прекратил. <…>
------------
Эксперименты показали, что в 1.5:
- идет снижение веса до 20Кб, а в микроскопическом геноме сложного поведения не развить, память о прошлом опыте также минимальна
- скрипт Андре Мариоля, позволяющий имитировать соревнования, не работает
Тогда обратил внимание на версию 1.4.
Там нет редактора популяций, но сейчас появился редактор Synthet'a, он компенсирует этот недостаток.
Также насколько помнил по старому форуму, в 1.4 размер ограничен 300кб, эксперименты показали, что нулевые амебы начинают набор массы со скоростью примерно 10Кб на 1000 поколений.
Версия 1.4 + редактор популяций Synthet'a
------------
Вопрос независимого рейтингования и проведения соревнований решил через организацию Системы Лиг
Система Лиг
Т.к. в 1.4 результат амебы считается как среднее по итогам всех боев, а результат виден как рейтинг (Игра->Новая игра->номер амебы в нужной популяции), мы можем собрать некое множество амеб в одну популяцию, многократно продублировать их в КГ, выставить число боев внутри популяции минимальным (1), выставить процент обновления минимальным (10%) и прокрутить 1 поколение, в течение которого каждая амеба из популяции встретится с каждой амебой в КГ, плюс еще проведет 2 боя внутри популяции рендомно с какими-нибудь амебами. После завершения обсчета одного поколения мы получим выстроенные в порядке убывания рейтинга амебы из первоначального множества. Скорость обсчета при этом выше чем на сайте.
Используя эту возможность организовал Систему Лиг численностью 50 особей каждая, собрав все имеющиеся у меня свои и чужие амебы и отрейтинговав их за пару итераций, получил выстроенные в порядке убывания силы несколько сотен амеб.
Вот как это происходит, когда вывелось достаточное количество новых особей и их нужно отрейтинговать:
1. В одной лиге 50 особей, выстроенных в порядке занятых мест в последнем тесте, где каждая проводит 2002 боя. (100 амеб соединенных двух лиг добавляются в КГ дублированием 20 раз, объем КГ - 2000 особей)
2. Затем, по мере выведения новых амеб в версии 1.4, когда их число достигнет 50, начинается их рейтингование:
3. Сначала они рейтингуются вместе с 50 особями последней лиги, например если их всего 5, то пятой. Получается список выстроенных по силе 100 особей, из которых новую текущую 5-ю лигу составляют первые 50, а следующие выбывают в небытие.
4. Затем, если в числе новой текущей 5-й лиги есть новички, она соединяется с 4-й для теста на более высоком уровне силы. Вновь, по итогам соревнования с 2002 боями на каждого, определяется уже окончательный в этой серии тестов состав 5-й лиги - последние 50 мест, первые 50 составляют текущую 4-ю лигу.
5. Если и в ней есть новички, все повторяется в соединении с 3-й лигой и т.д до самого верха.
Такая серия процедур позволяет проводить хорошо статистически достоверное ранжирование (2002 боя на особь) хорошо репрезентативной выборки особей (100 разных амеб) с близкими по силе соперниками (последовательное повышение уровня лиг).
Нужно добавить, что процесс требует некоторой “ловкости рук”, появляющейся с опытом.
Сначала в редакторе создаю пустые популяции. Затем наполняю популяцию А нужными 100 амебами, потом копированием из популяции А создаю КГ размером 2000 особей.
Т.к. в программе на первом поколении у меня не начинается обсчет с КГ, сначала переключаю галочку на популяцию В при отключенном КГ, прокручиваю два поколения, а на третьем поколение переключаю галочку на популяцию А и включаю КГ - на этом поколении будет проведено рейтингование.
Вот как выглядит верхушка Лиги 1 на сегодняшний день:
1. DOOM - 100%
2. Ndebele 18 - 88%
3. Ndebele 15 - 84%
4. Гагарин - 81%
5. Адмирал 25553 - 79%
6. Кузя - 74%
7. Ndebele 16 - 71%
8. amaNdebele - 67%
9. Толтек 02 - 67%
10. Ndebele 17 - 67%
11. Буся - 66%
12. StoneKing 15471 - 64%
Рейтингование показало, что великие породы прошлого не зря выделялись особо, т.к. именно они доминируют в физике версии 1.4.
Это Скорпионы (клещи), Фонтомы и боксеры (СССР).
Пока в Лигу 1 прошли всего несколько моих амеб, это породы Ваджра и Дзонг (продолжение Эректуса).
Новые Арки, которые полностью делаются с нуля в 1.4, еще не рейтинговались, и я начал выводить еще 5 новых пород, которых добавлю в Аркам в новой итерации Системы Лиг.
Время на обсчет 100 особей на КГ размером 2000 особей на моем компьютере составило 6-7 часов.
Физика версии 1.4 такова, что нет доминации какого-то одного стиля, как в 1.6 (тентакли), поэтому стилевое разнообразие и потенциально большой объем генома, делают селекцию чрезвычайно интересной.
------------
Настройки физики немного изменены с целью еще лучше уравнять потенциалы разных стилей:
Здоровье амебы - 500
Управляющая сила - 24
Количество узлов - 12
Запас пуль - 2
Повреждение от пуль - 125
Максимальное число ходов - 500
Время на раздумье - 500
1. Увеличение здоровья до 500 (и балансирующего увеличения повреждения от пули до 125) немного удлиняет длину боя и позволяет развить более сложное поведение.
2. Увеличение управляющей силы до 24 подравнивает потенциалы стилей, чуть повышая возможности силовых стилей, таких, например, как боксеры.
3. Увеличение максимума числа ходов практически не приводит к увеличение средней продолжительности боев, она остается меньше 200, но реабилитирует тактику зайцев, если какая-то порода решит на ней специализироваться.