Atualmente, estou desenvolvendo um projeto para criar uma IA para jogar o jogo Gomoku (é como um jogo da velha, mas joguei em um tabuleiro de 15 * 15 e requer 5 em sequência para vencer). Eu já implementei com sucesso uma IA do jogo da velha perfeita usando Q learning e tendo estados / ações de jogos armazenados em uma tabela, mas para um tabuleiro de 15 * 15, os possíveis estados de jogo se tornam grandes demais para implementar este projeto.
Minha pergunta é: devo usar redes neurais ou algoritmos genéticos para esse problema? E, mais especificamente, como devo implementar isso?
Respostas:
Para o gomoku, parece um pouco exagerado usar redes neurais ou o algoritmo genético, pois ambos demoram um pouco e, com mais frequência do que não, não vão como você deseja. A árvore do jogo gomoku é bastante grande, mas você pode obter uma IA decente do minimax, poda da árvore do jogo e uma boa função heurística (que inclui contar metade e 2s, 3s, 4s, etc. etc) em oposição ao mapeamento fora de todo o espaço.
Se você não estiver familiarizado com a poda alfa beta e o minimax, consulte https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm
Se você realmente deseja usar redes neurais ou algoritmos genéticos, pode usar a experiência de aprendizado. Em relação às redes neurais, uma maneira de fazer isso é a seguinte:
Claro que essa é apenas uma maneira, e você precisaria encontrar os dados do jogo primeiro.
Uma observação lateral: a aplicação do algoritmo genético pode ocorrer de várias maneiras, como otimização de parâmetros em uma rede neural, como mencionado acima, ou pesquisa em árvore de jogos, para garantir que você esteja claro como define a configuração do problema! O mesmo vale para formas alternativas de aplicar uma rede neural.
Finalmente, é útil saber que o gomuku está resolvido. Consulte /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe para obter os pensamentos e idéias de outras pessoas.
fonte