2017-10-06 3 views
-2

Comment concevoir un algorithme efficace pour le jeu hexadécimal en utilisant l'algorithme min max puisque son facteur de branchement est trop élevé. Le jeu de tic tac toe normal est fait en utilisant l'algorithme min max mais dans ce cas pour un jeu de plateau 11 * 11 nous avons 121 combinaisons donc pour réduire le nombre de combinaisons quelle est l'approche minmize cette combinaisonComment appliquer l'algorithme min max à un jeu hexadécimal

+0

Ceci est l'un des jeux les plus recherchés (même par Nash lui-même) et il y a beaucoup de matériel, y compris des documents de recherche. Voulez-vous nous dire que vous avez manqué l'étape de recherche? – sascha

+0

Ya j'ai essayé mais je n'ai pas eu l'idée comment procéder en faisant de lui. C'est pourquoi j'ai demandé ici pour avoir l'idée de base –

Répondre

0

arbre de mouvements pour un jeu ne peut être explorer pleinement pour des choses simples comme tic-tac-toe. D'autres jeux, comme les échecs, seront trop profonds et auront trop d'options à chaque mouvement (grand facteur de ramification).

Il existe des mesures pour lutter contre cette limitation, au niveau très général de votre question. Plus important encore, vous avez besoin d'une heuristique pour attribuer une valeur aux positions de jeu intermédiaires. Cela vous permet d'appliquer minimax même si l'analyse de tous les mouvements jusqu'à la fin du jeu n'est pas possible. Ces heuristiques peuvent être assez simples. Par exemple, dans les échecs, vous pouvez donner une valeur aux pièces (pion 1, chevalier 3, etc.) et simplement additionner. Vous pourriez le rendre un peu plus complexe compte tenu de la position au tableau et ainsi de suite, mais il y aura un compromis avec la performance ici. C'est la base de nombreux systèmes d'IA. Une amélioration classique est appelée alpha-beta pruning. Ceci est basé sur l'évaluation ordonnée des nœuds de l'arbre des mouvements, de sorte que les branches qui sont déjà garanties comme étant pires que d'autres peuvent être omises, ce qui améliore l'efficacité. (Considérez, par exemple, une branche où un joueur peut forcer un mouvement gagnant: les alternatives à ce mouvement dans cette branche ne sont pas importantes, puisque ce joueur forcera toujours le mouvement gagnant si le jeu va de cette façon).

D'autres algorithmes modifient la façon dont nous explorons l'arbre des mouvements. Monte-Carlo tree search est un exemple de ceci. L'idée de base ici est d'évaluer les nœuds et d'explorer l'arbre de manière coordonnée (par opposition à avant, où nous explorons d'abord l'arbre le plus profond possible et nous évaluons ensuite les feuilles). Nous avons ici un équilibre exploration-exploitation (vous devez décider si vous voulez développer des positions plus prometteuses, ou si vous voulez favoriser l'exploration de nouveaux mouvements, éventuellement décevants).

+0

Ok, j'ai eu l'idée que je vais essayer de faire quelque chose comme le plus court chemin que j'ai exploré sur internet. Au fait merci belle explication :) –