Гомоку кажется немного излишним использование нейронных сетей или генетического алгоритма, так как и то, и другое занимает много времени и чаще, не делайте так, как вы этого хотите. Дерево игры гомоку довольно большое, но вы можете получить приличный ИИ из минимакса, обрезки дерева игры и хорошей эвристической функции (которая включает в себя подсчет половины и полных 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 для мыслей и идей других людей.