Dans certains articles (historiques), les échecs ont été appelés la drosophile de l'intelligence artificielle. Bien que je suppose que dans la recherche actuelle, la simple application d'un algorithme de recherche est au mieux une science informatique avancée , je pense qu'il existe encore des domaines où appliquer (et pratiquer) les techniques d'IA.
Un exemple simple serait l' apprentissage du livre d'ouverture où l'on peut enseigner au programme s'il faut utiliser ou non certains mouvements dans l'ouverture parce que le programme n'est pas adapté à certains types de position. Nous pouvons utiliser une forme d'apprentissage par renforcement et automatiser ceci: je suppose que je pourrais jouer le programme contre lui-même et augmenter la probabilité de gagner des lignes et diminuer la probabilité de perdre des lignes.
L'exemple le plus complexe consiste à utiliser une fonction d' évaluation des apprentissages (par exemple, on pourrait modifier les valeurs des tableaux carrés ). Cependant, je pense:
- étant donné tout le bruit dû à l'énorme quantité de positions réalistes (par opposition à la quantité de lignes d'ouverture réalistes)
- et avec le coût (durée) d'une partie d'échecs sur ordinateur et la nécessité de jouer des charges.
Comment faire cela efficacement? (ou devrais-je regarder d'autres techniques, par exemple les réseaux de neurones.)
Réponses:
L'espace d'état entier pour les échecs est énorme - il peut être approximativement estimé à 10 43 (nombre Shannon (Shannon, 1950) , ( Wikipedia )).
L'idée que vous présentez - des agents d'apprentissage par renforcement jouant ensemble pour apprendre le jeu - a été appliquée avec succès à Backgammon - TD-Gammon (Tesauro, 1995) , ( chapitre sur l'apprentissage par renforcement de Sutton & Barto ). Il a également utilisé Neural Networks pour estimer la fonction de valeur du jeu. Ce problème est cependant beaucoup plus simple, car le nombre d'états dans Backgammon est significativement plus petit que dans les échecs, à savoir: 18,528,584,051,601,162,496 (thread Backgammon Forum Archive ).
Si toutefois vous mettiez fin au jeu après quelques mouvements initiaux et ne visiez qu'à apprendre de "bonnes ouvertures", vous pourriez réussir avec une approche analogue. Le principal problème serait d'évaluer le jeu après le match d'ouverture, ce qui semble difficile. Une simple mesure de similitude avec les positions établies après des ouvertures bien connues ne suffit pas, car la position peut être loin d'eux si l'adversaire fait un geste stupide (ce ne serait donc pas à cause de l'erreur de l'agent d'apprentissage, donc la position même si "incorrecte" "devrait être évalué comme un bon résultat).
Les références:
SHANNON, Claude E. "Programmation d'un ordinateur pour jouer aux échecs." Dans Philosophical Magazine, 7e série, 41, no. 314 (mars 1950): 256-75.
Gerald Tesauro. 1995. Apprentissage de la différence temporelle et TD-Gammon. Commun. ACM 38, 3 (mars 1995), 58-68
la source
Je suis à peu près sûr que toute méthode possible (ou bizarre) d'IA ou de ML dans les manuels a été essayée et a échoué à peu près par rapport à la simple force brute.
Mon point de vue personnel est que les échecs en soi ne sont plus d'aucun intérêt pour l'IA moderne ... Simplement, parce qu'ils sont résolus : en utilisant simplement un ordinateur moderne et la force brute. Donc, je ne pense pas qu'il soit nécessaire de créer un système "intelligent" pour le résoudre plus efficacement (fonctionne très bien sur mon téléphone portable), et je pense qu'il n'y a même pas besoin d'un inconnu et plus approche "intelligente" pour exister.
la source
Je pense qu'il convient de noter que pour déterminer comment résoudre un problème d'IA, vous devez le définir. Qu'il soit entièrement observable ou partiellement observable , et qu'il soit déterministe ou stochastique / chance.
Les échecs sont entièrement observables (contrairement au backgammon, au monopole ou au poker par exemple). Il est également déterministe (comme les dames et les go par exemple). Enfin, des adversaires existent et, pour cette raison, lors de la détermination du meilleur coup suivant, il est utile d'utiliser le type de recherche contradictoire. des algorithmes tels que MiniMax. La classification d'un problème peut nous aider à déterminer le type d'algorithme de recherche que nous souhaitons appliquer. Et en cas d'échecs, la recherche contradictoire conviendrait.
Minimax en particulier a un
Donc, en cas d'échecs, b serait 35 et m serait 100. Il existe des moyens de le contourner ou des stratégies pour le rendre plus efficace, comme la coupure alpha-bêta.
la source