Pourquoi les moteurs d'échecs manquent-ils parfois de bons coups (ou prennent-ils une éternité à repérer)?

17

Ce n'est pas la première fois que je trouve un mouvement bien supérieur à celui du moteur d'échecs, il leur faut même un certain temps pour comprendre ces mouvements après les avoir faits.

Par exemple, le déplacement 15 ... Bf2dans le jeu ci-dessous:

NN - NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

Le mouvement reste inaperçu par le moteur pendant un certain temps, ce n'est que lorsque je bouge qu'il commence à voir le reste de l'iceberg.

Je sais que tout dépend du temps que vous leur accordez pour analyser, mais il est inacceptable que parfois les humains parviennent à trouver ces mouvements en moins de temps que les ordinateurs.

  • Pourquoi les moteurs d'échecs ne parviennent-ils pas à repérer les bons coups dans certaines positions? (J'ai lu une fois quelque chose sur un «effet d'horizon», peut-être que c'est lié?)
  • Y a-t-il d'autres exemples notables? (Par exemple, ce fameux puzzle , il faut du temps aux ordinateurs pour le résoudre)

Ces questions contiennent des informations utiles pour expliquer partiellement certains facteurs qui pourraient être à l'origine de cette anomalie: Quels algorithmes et heuristiques sont populaires dans les échecs informatiques? , Lorsque vous jouez contre un adversaire informatique, quelles situations dois-je créer pour me donner une meilleure chance de gagner? , Évaluations informatiques: sont-elles fiables?

Remarques: Le piège est connu sous le nom de Fishing Pole , je sais que j'ai raté un compagnon en 3 (et un compagnon en 7) :(, la limite de temps par coup était de jours (correspondance par échecs) mais cela m'a pris environ 5-10 minutes pour finir de tout calculer.

ajax333221
la source
1
Très intéressant. Stockfish sur mon PC de force moyenne n'a pas trouvé 15... Bf2du tout après 5 minutes.
Tony Ennis
... et il a fallu plus de 7 minutes pour trouver un compagnon en 7 similaire au prochain coup.
Tony Ennis
20 d3 est une erreur. essayez 20 d4.
dcaswell
1
Pourquoi utilisez-vous le langage «inacceptable» pour qu'un humain trouve un mouvement en moins de temps qu'un ordinateur? Pouvez-vous décompresser vos pensées à ce sujet?
Xonatron
Il a raté beaucoup de meilleurs mouvements. Pourquoi choisir celui-là spécifiquement?
yobamamama

Réponses:

33

Pourquoi les moteurs d'échecs ne parviennent-ils pas à repérer les bons coups dans certaines positions?

La raison en est appelée techniques d'élagage avant (voir http://chessprogramming.wikispaces.com/Pruning ) avec ProbCut en première ligne.

Le coup 15 ... Bf2 est taillé sur des profondeurs peu profondes car il inclut le sacrifice 16.Rxf1 sans retrouver quelque chose de concret avec des preuves immédiatement après. Le matenet est également difficile à voir, car il comprend d'autres mouvements `` silencieux '' comme par exemple 17 ... Ke7, et oui aussi les moteurs, non seulement les humains ont des difficultés à voir les mouvements silencieux à distance car ils sont souvent taillés.

Dans ce cas concret on ne peut même pas dire que les moteurs ne parviennent pas à repérer les bons coups, car aussi la suite 15 ... Rh3h1 est un très bon coup et conduit à une position absolument gagnée.

Enfin, vous devez vous rappeler que la force d'un moteur est toujours mesurée en termes d'élasticité et non en fonction de la capacité à trouver le chemin le plus court pour gagner. Peu importe, si un moteur gagne en 8 coups ou en 25 coups. Chercher trop pour la victoire la plus courte signifierait une perte de temps, car la plupart du temps, il n'existe pas du tout un bon coup secret. Et la perte de temps nuirait aux moteurs ELO-Rating.

user1411977
la source
1
Belle réponse, bienvenue sur le site!
Andrew
+1 pour avoir mentionné le compromis entre l'élagage et la recherche complète. Je ne suis pas du tout surpris qu'une combinaison 13+ PLY ne soit pas trouvée rapidement. Le moteur a "de meilleures choses à faire" que de calculer toutes les possibilités à cette profondeur.
Daniel B
2
Belle réponse dans l'ensemble. +1 pour "Last but not least, vous devez vous rappeler, que la force d'un moteur est toujours mesurée en termes d'élo-force et non dans la capacité de trouver le chemin le plus court absolu pour gagner"
ferit
Excellente réponse.
Xonatron
12

J'essaye ceci avec Houdini 1.5 (la version gratuite). Au début 15 ... Bf2 n'apparaît pas dans les 5 premiers mouvements, puis quand il atteint la profondeur 15, il apparaît, comme # 1. Prend environ 19 secondes sur mon ordinateur de quatre ans, pas si longtemps.

Il ne manque donc pas de le repérer, il le considère au contraire comme le meilleur mouvement une fois la profondeur 15 atteinte. Apparemment, tant qu'il ne semble profond que de 14 plis, les autres mouvements sont meilleurs (comme le 15 ... f5 + également gagnant).

Apparemment 15 ... Bf2 est un maté en 8, qui est de 15 plis (8 mouvements en noir, 7 en blanc). Mais au début, il le considère comme +10 environ, puis +20, puis s'accoupler en 10, puis s'accoupler en 8.

Le compagnon en 8 lignes est:

NN - NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rh4 + 17. Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. Nd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Clairement, lorsque Houdini 1.5 pense à 15 plis de profondeur, il ne prend pas en compte toutes les lignes possibles qui sont à 15 plis de profondeur, ou il verrait le compagnon en 8 au moment où il a terminé sa recherche à 15 plis de profondeur.

Je pense que c'est à cause de l' élagage , il arrête de regarder certaines lignes quand il pense qu'elles ne sont pas assez prometteuses. De cette façon, il peut passer plus de temps sur les lignes prometteuses et le programmeur pense que les avantages l'emportent sur les inconvénients. Mais je n'ai pas de réponse en ce moment sur ce qu'il décide de tailler ici (il prend probablement des millions de décisions de taille distinctes en profondeur 15).

Cela peut avoir à voir avec les mouvements silencieux ... Ke7 et ... Rah8, deux non-captures non-check dans une ligne où le noir est un morceau vers le bas. Il est probable qu'il décide quelque part qu'il n'est pas utile de continuer à chercher dans cette ligne. Ce n'est que plus tard, quand il continue la ligne et trouve le compagnon à la fin, que d'autres lignes qui prolongent le jeu (avec 18.Rh1 Rxh1 et ainsi de suite) apparaissent alors.

Quoi qu'il en soit, on sait que cela ne fonctionne pas si bien de laisser un ordinateur réfléchir pendant quelques secondes que si vous voulez aller au fond de quelque chose, quelques minutes, c'est mieux.

RemcoGerlich
la source
Ma conjecture quant à la raison pour laquelle il taille, est parce que 16. Rxf1 ne semble "heuristiquement" pas que le roi du grand-blanc est ouvert, mais il n'y a pas de mat échec immédiat et le noir est un chevalier pour un pion en matériau. Ce n'est qu'après une analyse plus approfondie (comme vous l'avez dit) que la valeur de ce "sacrifice" devient claire.
Joe K
Notez que "15 plis" signifie qu'il a regardé certains mouvements jusqu'à la profondeur 15, pas tous les mouvements . Cela prendrait waay plus de 4 secondes, même sur un super-ordinateur.
BlueRaja - Danny Pflughoeft
2

après avoir lu toutes les réponses et d'autres sources, je comprends maintenant qu'ils ne «manquent» pas ou choisissent de manquer ces mouvements, les humains les ont programmés de telle manière qu'ils suivent un schéma spécifique sur (où / comment / quand + à) rechercher et plus important encore quand suspendre la recherche et rechercher des lignes plus prometteuses afin d'économiser des ressources.

Mais avec suffisamment de temps, un ordinateur finira toutes les combinaisons possibles sur une certaine profondeur.

TL; DR

  • Q1: ils ne manquent jamais de mouvements, ils ne les ont tout simplement pas encore trouvés
  • Q2: ils prennent du temps car ils sont programmés pour économiser des ressources et ils donneront la priorité à certaines lignes par rapport à d'autres (par exemple celles qui n'ont pas de mouvements passifs ou ne récupèrent pas de matériel dans les prochains mouvements).
ajax333221
la source
-1

Je pense que tout le monde manque un compagnon beaucoup plus rapide. Lors de la vérification de la position avec Houdini 3, le noir a en fait un compagnon en 3 au coup 13. Au lieu de Bf1 +, le noir aurait dû jouer Bf2, et il se contente de 14. d3 bf1 + 15. Bh6 Rxh6 #. Donc, dans une réponse inhabituelle à votre question, certains moteurs n'ont peut-être pas vu votre mouvement tout de suite, mais, dans le cas de Houdini 3, il a trouvé un partenaire beaucoup plus rapide.

Excité
la source
5
Si vous lisez toute la question, vous verrez qu'il est au courant du compagnon en 3. Tous les moteurs raisonnablement nouveaux trouveront le compagnon en 3 immédiatement, et cela ne fait pas partie de ce qui est demandé ici.
Halvard