Sto cercando di creare un IA mcts per l'algoritmo di connessione 5. Tuttavia, sono confuso nel progettare l'albero. Ecco una breve descrizione dell'algoritmo:
Lo stato iniziale, S0 è lo stato della scheda in cui l'intelligenza artificiale pone la pietra o, in altre parole, il turno dell'IA. È corretto che ogni nodo debba essere il turno dell'IA, non gli umani?
Nella fase di espansione, è necessario "creare nodi figlio". Nel mio gioco, i nodi figli sarebbero entrambi un luogo in cui un'intelligenza artificiale può fare una mossa. Tuttavia, se voglio selezionare la prossima mossa AI disponibile , ho bisogno di sapere dove il nemico, o l'umano, pone la pietra prima della prossima mossa AI disponibile. Ho improvvisato rendendolo a 2 strati: per ogni mossa umana disponibile, aggiungi tutte le mosse di IA disponibili dopo i giochi umani. È questo il modo corretto per farlo?
Questa è la mia attuale struttura ad albero in un Esempio: ogni stato ha informazioni su dove sono posizionate le "pietre" in bianco e nero. l'intelligenza artificiale gioca in bianco e Human gioca in nero. Il nero gioca per primo lo stato S0 sarebbe la prima mossa del gioco.
S0(black stones:[(2,2)],
white stones:[])
/ \
/ \
S1(black stones:[(2,2)], S2(black stones:[(2,2)],
white stones:[(1,1)]) white stones:[(1,2)])
/ \
/ \
S3(black stones:[(2,2),(2,1)], S4(black stones:[(2,2),(2,3)],
white stones:[(1,1)]) white stones:[(1,2)])