Je viens de terminer l'écriture de la personnalisation d'un moteur d'échecs en ajoutant essentiellement un bitboard au moteur tscp disponible gratuitement. Maintenant, je le teste dans Winboard et je remarque que souvent les deux machines joueront le même jeu plusieurs fois dans un match. J'aimerais ajouter une certaine variété aux jeux en lui faisant au moins choisir des mouvements égaux au hasard. J'utilise simplement la recherche alpha-bêta avec un ordre de déplacement simple. Je pense simplement à ajouter un petit nombre aléatoire aux nœuds feuilles pour rompre les liens, mais je n'aime pas vraiment cette solution car certains des petits bonus que la fonction d'évaluation utilise sont de 3 à 5 centipawns. Je n'ai donc pas assez de "place" pour que le nombre aléatoire brise les liens.
mon autre pensée était d'avoir le moteur choisir aléatoirement qui se déplacerait pour garder quand il trouverait une évaluation == alpha. Je n'aime pas vraiment cela parce que je soupçonne que cela favorise les mouvements commandés en dernier dans la recherche.
La question est de savoir comment puis-je choisir au hasard parmi les nœuds foliaires à score égal? et aussi uniformément?