Я создаю игрока в тетрис, используя генетические алгоритмы, и сталкиваюсь с некоторыми проблемами. Я прочитал много связанных работ, но они не дают мне достаточно подробностей о GA.
Проблема в том, что мой агент, кажется, очень быстро застревает ... Я использую функцию оценки, беря покрывающие 4 характеристики: высоту, закрытые отверстия, плоскостность и количество очищенных строк. Я прочитал статью, в которой используется такая же оценка и которая может обрабатывать тысячи строк.
После 600 поколений с популяцией в 100 агентов лучший из них способен выполнять в среднем только 260 строк, это отстой. Все агенты разыгрывают одну и ту же последовательность фигур.
Подробная информация о моем GA:
поколения: 600 популяция: 100
гены: массив из 4 значений с плавающей запятой, от 0 до 1.
Равномерный кроссовер происходит с определенной вероятностью, и с определенной вероятностью происходит обмен генами между двумя родителями.
Мутация происходит с определенной вероятностью, здесь я попробовал 3 разных подхода: поменять местами гены, заменить ген на случайное значение или добавить к гену какое-то шумовое значение.
У меня элитный показатель 50%, и я заметил, что отбираются некоторые хорошие агенты и рождаются худшие агенты, заражающие население.
Выбор - это колесо рулетки ...
Если бы кто-нибудь мог дать мне подробную информацию о лучшем способе пересечения и мутации, я ценю!
Спасибо и извините за длинный пост!