Question

J'essaie de faire jouer mes joueurs d'échecs miniax AI.

J'étais un peu confus à propos d'un détail de mise en œuvre.

Appelons black Mon premier joueur d'échecs miniax AI qui joue en premier.

white est l'autre Minimax AI qui est en deuxième position.

Ma question est sur le tour. Devrait black maximiser et white minimiser OU Devraient-ils simplement essayer de maximiser quand à leurs virages respectifs, la fonction d'évaluation est retournée?

J'ai pensé à deux façons de procéder à ce sujet. J'ai le sentiment qu'ils font la même chose, mais je ne savais pas si j'avais raison ou que les deux solutions font en fait quelque chose de différent.

Première solution:

Instancier un objet minimaxai pour black et white séparément. Sois sûr que blackLa fonction d'évaluation est l'opposé de white. Pour un exemple simple, l'objet blackLa fonction d'évaluation est
number of black pieces on board - number of whites on board.

La white L'objet aura une fonction d'évaluation opposée number of white pieces on board - number of blacks on board.

Maintenant, lorsque chaque objet se retire pour appeler la même chose get_next_move Méthode, ils seront tous les deux le maximizing player de l'algorithme minimax.

Deuxième solution:

Instancier un objet Minimax AI ai à utiliser par les deux black et le white Au fur et à mesure qu'ils alternent des virages. black et white aura la même fonction d'évaluation
number of white pieces on board - number of blacks on board

En supposant white va toujours en premier dans les échecs, quand white appels ai.get_next_move Avec un numéro de virage égal, il recevra le maximizing player rôle. D'un autre côté, quand black appels ai.get_next_move Avec un numéro de virage étrange, il recevra le minimizing player rôle.

(c'est ce que j'ai jusqu'à présent)

Je pense que les deux devraient entraîner le même comportement, mais c'est plus un sentiment qu'une opinion éduquée. Veuillez me faire savoir si mon sentiment est réellement correct ou non. Un processus de raisonnement semi-formel sera le bienvenu!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top