Get jChecs at SourceForge.net. Fast, secure and Free Open Source software downloads
Conception
Intelligence artificielle

Le module d'intelligence artificielle d'un jeu d'échecs doit savoir remplir deux fonctions :

  • évaluer l'intérêt d'une position du jeu,
  • choisir parmi tous les mouvements possibles celui qui conduira à la meilleure position.

Les principes d'un moteur d'intelligence artificielle pour les échecs s'appliquent quasiment tels quels à de nombreux autres jeux : morpion, puissance 4, othello, dames, go, ...
Avec un module de règle adéquat, seule la fonction d'évaluation d'une position doit être modifiée dans le module d'intelligence artificielle pour qu'il corresponde à un autre de ces jeux.

Package UML I.A.

A partir d'un état du jeu, l'I.A. peut obtenir du module de règle la liste des mouvements, et donc des prochains états, possibles. Ce principe peut être appliqué récursivement à chacun des états obtenus afin de construire une arborescence des états de jeu atteignables demi-coup après demi-coup.

Arborescence

Après cela, l'I.A. n'a plus qu'à évaluer l'intérêt des différentes positions obtenues pour choisir la meilleure et indiquer le mouvement initial correspondant.

Les principes sont simples et pourtant le programme d'échecs ultime n'existe pas encore. Pourquoi ?

  • il est difficile d'attribuer une valeur indiscutable résumant l'intérêt d'une position aux échecs. Réduire à un simple nombre les possibilités tactiques, stratégiques, de bluff, etc... de ce jeu reste un exercice assez hasardeux.
  • le nombre de positions différentes est tellement énorme qu'il est impossible d'avoir une approche exhaustive. Le jeu possède au moins 2 x 1043 positions légales (l'âge de l'univers n'étant « que » d'environ 1018 secondes...), ce qui rend une approche systématique hors de portée d'une machine.

Des jeux commes le morpion ou puissance 4 peuvent être abordés avec une approche exhaustive...
Mais l'explosion du nombre de possibilités est encore plus monstreuse dans le cas du go !

Page précédente Encodage d'une position Evaluation d'une position Page suivante