Reti neurali vs algoritmi genetici in giochi come Tic Tac Toe?


9

Attualmente sto realizzando un progetto sulla creazione di un'intelligenza artificiale per giocare a Gomoku (è come un tic tac toe, ma ha giocato su una tavola 15 * 15 e richiede 5 di fila per vincere). Ho già implementato con successo un AI tic tac toe perfetto usando Q learning e avendo stati / azioni di gioco memorizzati in un tavolo, ma per una scheda 15 * 15 i possibili stati di gioco diventano troppo grandi per implementare questo progetto.

La mia domanda è: dovrei usare reti neurali o algoritmi genetici per questo problema? E più specificamente, come dovrei implementarlo?


2
Benvenuto in AI! Ottima domanda imho.
DukeZhou

Risposte:


7

Per il gomoku, sembra un po 'eccessivo usare le reti neurali o l'algoritmo genetico poiché entrambi impiegano un po' di tempo e il più delle volte, non andare come vuoi. L'albero di gioco del gomoku è piuttosto grande, ma puoi ottenere un'intelligenza artificiale decente da minimax, potatura dell'albero di gioco e una buona funzione euristica (che include il conteggio della metà e dell'intero 2s, 3s, 4s, ... ecc.) Rispetto alla mappatura fuori tutto lo spazio.

Se non si ha familiarità con la potatura alfa beta e minimax, consultare https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm

Se vuoi davvero usare reti neurali o algoritmi genetici puoi farlo per l'esperienza di apprendimento. Per quanto riguarda le reti neurali, un modo per farlo è il seguente:

  • Definire una funzione euristica che riceve un input dello stato della scheda (sequenza di 0,1,2 per vuoto, nero, bianco) e genera un valore di "bontà" dello stato della scheda. La rete neurale è la nostra funzione euristica.
  • Supponendo che le mosse in questo gioco siano ottimali, allenati dalla differenza tra la mossa attualmente migliore (in base ai tuoi parametri attuali) e quale mossa i tuoi dati dicono sia la migliore. Ecco come definiamo la nostra funzione di errore! Quindi stai minimizzando questa differenza in modo che ciò che muove la tua rete neurale sia il più forte sia idealmente ciò che i tuoi dati di gioco dicono essere il più forte (L'ottimizzazione di questa funzione di errore può essere fatta tramite backpropagation o algoritmo genetico).
  • Idealmente, a questo punto ora puoi utilizzare la tua ("forte") funzione di valutazione basata sulla rete neurale per le valutazioni delle mosse dell'albero del tuo gioco invece dell'euristica codificata.

Naturalmente questo è solo un modo e dovresti prima trovare i dati di gioco.

Una nota a margine, l'applicazione dell'algoritmo genetico può verificarsi in alcuni modi, come l'ottimizzazione dei parametri in una rete neurale come menzionato sopra o la ricerca dell'albero del gioco, quindi assicurati di essere chiaro su come definire l'impostazione del problema con esso! Lo stesso vale per modi alternativi di applicare una rete neurale.

Infine, è utile sapere che gomuku è stato risolto. Vedi /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe per i pensieri e le idee degli altri.


2
Bel punto sul gomoku come gioco risolto. Ciò semplifica la convalida della forza dell'intelligenza artificiale (ovvero risolve il gioco ed esprime un gioco perfetto, oppure è solo giocare in modo più ottimale di un avversario, come nel caso di AlphaGo.)
DukeZhou
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.