Approches alternatives à la programmation du moteur d'échecs

14

Autant que je sache, en gros, les moteurs d'échecs fonctionnent par:

  1. calculer toutes les variations possibles (arbre de jeu) jusqu'à une certaine profondeur
  2. évaluer la position finale en fonction de certains critères (matériau, activité de la pièce ...)
  3. sur la base de cette évaluation, décider du meilleur coup

Je comprends parfaitement que pour avoir un moteur efficace, il existe des moyens d'élaguer certaines lignes, de limiter la profondeur, etc. mais ce n'est pas ma question.

La question est: existe-t-il d'autres tentatives pour programmer un moteur d'échecs (pas nécessairement puissant, mais pas aléatoire non plus), qui ne suit pas ce schéma?

user1583209
la source
Botvinnik a essayé de tailler au coup racine en faisant rechercher par l'ordinateur uniquement le meilleur coup candidat. Il n'y a pas eu de tentative réussie, et les échecs sont meilleurs pour cela.
Fred Knight

Réponses:

13

Dans les premières années d'échecs informatiques, les gens ont en fait essayé d'enseigner les échecs informatiques de la même manière qu'avec les humains, expliquant des concepts stratégiques comme une structure de pion saine ou l'initiative. Ces tentatives ont été rapidement abandonnées car la méthode que vous décrivez a été beaucoup plus efficace.

Récemment, il y a eu une autre tentative pour laisser un moteur s'enseigner aux échecs via le Deep Learning (probablement encouragé par le succès de Go AI de Google ). Selon l'article auquel j'ai lié, ils ont assez bien réussi et ont réussi à atteindre la force de la messagerie instantanée.

Glorfindel
la source
1
Selon ma compréhension, Alpha Go fonctionne exactement comme l'OP décrit et seule la fonction eval de (2.) est basée sur / créée via Deep Learning. L'autre réponse semble un peu d'accord.
Hermann Döppes
According to the article I linked to, they were quite successful and managed to reach IM strengthmais si vous lisez l'article original, vous verrez que l'article a fortement exagéré le succès.
Salvador Dali
1
@ HermannDöppes Non, AlphaGo est basé sur la recherche d'arbre Monte-Carlo.
HelloWorld
3

@Glorfindel n'a pas tort, mais l'approche d'apprentissage en profondeur des échecs est vraiment un terme de fantaisie pour le réglage des paramètres dans la programmation des échecs.

L'apprentissage en profondeur permet à un moteur d'échecs d'apprendre une fonction d'évaluation, quelque chose généralement écrit à la main par un programmeur. Pendant une partie, cela fonctionne comme un moteur d'échecs normal.

Autres possibilités:

  • Programmation d'échecs GPU
  • Recherche d'arbres de Monte-Carlo
Bonjour le monde
la source
La majeure partie de votre réponse devrait être un commentaire sous [la réponse de Glorfindel] ( chess.stackexchange.com/a/16293/2789 . La partie qui répond réellement à la question ne comprend que sept mots, ce qui n'est pas suffisant pour une réponse. Aussi , La "programmation d'échecs GPU" est juste un moyen de paralléliser l'algorithme que vous utiliseriez autrement, donc je ne pense pas que ce soit vraiment une "approche" dans le sens où la question est à la recherche, mais plutôt une méthode d'implémentation.
David Richerby
-2

Certainement! SI vous voulez vraiment dire ... "en théorie, existe-t-il d'autres méthodes pour coder un moteur d'échecs?" ... Alors, oui !!

Par exemple ... on pourrait stocker une copie de toutes les positions possibles dans les échecs (un nombre énorme, je sais), et avoir une évaluation pour chacune. Ensuite, sa réponse à une question donnée (c'est-à-dire, "meilleur coup pour les blancs en position X"), sera immédiatement connue simplement en recherchant ce tableau. L'état actuel du matériel informatique est-il tel que cela aurait un sens? Non. Mais vous ne l'avez pas demandé.

Nick Lopez
la source