Нейронные сети против генетических алгоритмов в играх, таких как Tic Tac Toe?

9

В настоящее время я делаю проект по созданию ИИ для игры Gomoku (это похоже на крестики-нолики, но играется на доске 15 * 15 и требует 5 подряд для победы). Я уже успешно реализовал идеальный искусственный интеллект, используя Q-обучение и сохраняя игровые состояния / действия в таблице, но для доски 15 * 15 возможные игровые состояния слишком велики, чтобы реализовать этот проект.

Мой вопрос, должен ли я использовать нейронные сети или генетические алгоритмы для этой проблемы? А конкретнее, как мне это реализовать?

Conway
источник
2
Добро пожаловать в AI! Отличный вопрос, имхо.
DukeZhou

Ответы:

7

Гомоку кажется немного излишним использование нейронных сетей или генетического алгоритма, так как и то, и другое занимает много времени и чаще, не делайте так, как вы этого хотите. Дерево игры гомоку довольно большое, но вы можете получить приличный ИИ из минимакса, обрезки дерева игры и хорошей эвристической функции (которая включает в себя подсчет половины и полных 2, 3, 4 и т. Д.), А не отображение. из полного пространства.

Если вы не знакомы с альфа-бета-обрезкой и минимаксом, см. Https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm

Если вы действительно хотите использовать нейронные сети или генетические алгоритмы, вы можете использовать их для обучения. Что касается нейронных сетей, один из способов сделать это заключается в следующем:

  • Определите эвристическую функцию, которая получает входной сигнал состояния платы (последовательность 0,1,2 для пустого, черного, белого) и выводит значение «добродетели» состояния платы. Нейронная сеть - наша эвристическая функция.
  • Предполагая, что ходы в этой игре оптимальны, потренируйтесь в разнице между лучшим на данный момент ходом (по вашим текущим параметрам) и тем, что, по вашим данным, считается лучшим. Вот как мы определяем нашу функцию ошибок! Таким образом, вы сводите к минимуму эту разницу, так что то, что говорит ваша нейронная сеть, является самым сильным, в идеале то, что ваши игровые данные говорят о том, что оно самое сильное (оптимизация этой функции ошибок может быть выполнена с помощью обратного распространения или генетического алгоритма).
  • В идеале к этому моменту вы теперь можете использовать свою («сильную») функцию оценки на основе нейронной сети для оценки перемещений дерева игр вместо жестко закодированной эвристики.

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

Дополнительное замечание: применение генетического алгоритма может происходить несколькими способами, такими как оптимизация параметров в нейронной сети, как упомянуто выше, или поиск по игровому дереву, поэтому убедитесь, что вы четко понимаете, как с ним определить постановку задачи! То же самое касается альтернативных способов применения нейронной сети.

Наконец, полезно знать, что гомоку решен. См. Https://stackoverflow.com/questions/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe для мыслей и идей других людей.

сма
источник
2
Хороший момент о гомоку как о решенной игре. Это облегчает проверку силы ИИ (то есть решает ли он игру и выражает ли она идеальную игру или просто играет более оптимально, чем противник, как в случае с AlphaGo.)
DukeZhou