Я написал игровую программу для соревнования, которая опирается на 16 «констант» с плавающей точкой. Изменение константы может и будет иметь драматическое влияние на стиль игры и уровень успеха.
Я также написал простой генетический алгоритм для генерации оптимальных значений для констант. Однако алгоритм не генерирует «оптимальные» константы.
Возможные причины:
- В алгоритме есть ошибки (пока это исключено!)
- Население малое
- Высокий уровень мутаций
- показатель спаривания мог бы быть лучше
Алгоритм выглядит так:
- Сначала создается начальная популяция
- Присвоены начальные константы для каждого члена (на основе моего смещения, умноженного на случайный коэффициент от 0,75 до 1,25)
- Для каждого поколения члены населения объединены в пару для игрового матча
- Победитель клонируется дважды, если вничью оба клонируются один раз
- Клонирование мутирует один ген, если random () меньше частоты мутаций
- Мутация умножает случайную константу со случайным коэффициентом между 0,75 и 1,25
- С фиксированными интервалами, в зависимости от скорости спаривания, члены спарены и гены смешаны
Мои текущие настройки:
- Население: 40 (до низкого уровня)
- Уровень мутаций 0,10 (10%)
- Скорость матов 0,20 (каждые 5 поколений)
Каковы были бы лучшие значения для численности населения, коэффициента мутаций и коэффициента спаривания?
Предположения приветствуются, точные значения не ожидаются!
Кроме того, если у вас есть понимание схожих генетических алгоритмов, вы хотели бы поделиться, пожалуйста, сделайте это.
P.S .: Игровое соревнование под вопросом, если кому-то интересно: http://ai -contest.com /