Y a-t-il un moteur d'échecs qui peut montrer si un côté a un tirage forcé?

11

Existe-t-il un moteur d'échecs doté d'un mode d'analyse qui peut indiquer si une position est un tirage forcé de chaque côté?

Il est courant que les moteurs produisent des évaluations de 0,0 lorsqu'ils détectent un tirage. Mais une évaluation de 0,0 peut signifier beaucoup de choses. Par exemple, en supposant qu'il est blanc pour se déplacer, une évaluation de 0,0 peut signifier:

  • Le jeu est certainement un match nul quelle que soit la façon dont l'un ou l'autre joueur joue (par exemple, un matériel insuffisant).
  • Les deux joueurs peuvent forcer un match nul. Aucun joueur ne peut espérer gagner si son adversaire joue parfaitement.
  • Peu importe le mouvement des blancs, l'ordinateur est sûr à 100% que le noir peut forcer un tirage s'il le souhaite. Les blancs ne peuvent pas espérer gagner si les noirs jouent parfaitement. Un match nul est le résultat le plus probable, mais une recherche plus approfondie pourrait montrer que le noir peut forcer une victoire.
  • L'ordinateur est sûr à 100% que le blanc peut forcer un tirage s'il le souhaite. Les noirs ne peuvent pas espérer gagner si les blancs jouent parfaitement. Un match nul est le résultat le plus probable, mais une recherche plus approfondie pourrait montrer que les blancs peuvent forcer une victoire.
  • L'ordinateur n'a pas trouvé de tirage forcé pour l'un ou l'autre côté, mais l'évaluation jusqu'à présent est exactement de niveau. Un match nul est le résultat le plus probable, mais une recherche plus approfondie peut plus tard montrer un avantage pour un côté.

Juste pour donner un exemple de quand cela pourrait être utile, si les blancs n'ont pas besoin de gagner et veulent juste être aussi sûrs que possible d'obtenir un match nul, ils pourraient préférer jouer un coup avec une évaluation +0.0 et un tirage forcé connu même si un autre mouvement avec une évaluation plus élevée est disponible.

Un autre exemple est que si vous avez besoin d' une victoire (c'est-à-dire qu'un match nul est aussi mauvais qu'une perte), vous voudrez peut-être jouer un coup avec une légère évaluation négative pour éviter de donner à votre adversaire la possibilité de forcer un match nul. Même si cela augmente vos chances de perdre, cela augmente également vos chances de gagner.

Évidemment, il y a des positions où il est difficile, voire impossible, de savoir si un tirage forcé est disponible ou non. Mais si le moteur annonce un tirage forcé, il doit être possible de forcer un tirage. Les faux négatifs sont acceptables mais il ne devrait pas y avoir de faux positifs.

Donc en résumé, j'aimerais savoir pour une position spécifique si un (ou les deux joueurs) ont un tirage forcé à leur disposition. Le calcul de l'évaluation numérique de la position n'est pas nécessaire, mais s'il fournit également cela en même temps, c'est un bonus.

Mark Byers
la source
N'est-ce pas connaître cette partie du point des tables de fin de partie à 6 pièces?
Tony Ennis
2
Les bases de table aident, car alors vous savez qu'un score de 0,0 est à coup sûr un tirage forcé avec un jeu optimal. Mais j'aimerais que le moteur me dise s'il trouve un tirage forcé à partir de n'importe quelle position de départ arbitraire, y compris (surtout) lorsqu'il y a plus de 6 pièces. Par exemple, si les blancs se retrouvent dans une position où ils peuvent forcer le contrôle perpétuel, j'aimerais que le moteur me le dise, même si ce n'est pas nécessairement le meilleur mouvement des blancs selon la fonction d'évaluation.
Mark Byers
Je suis curieux de savoir quand vous pourrez réellement profiter de ce type de calcul dans la pratique. Ce serait une fonctionnalité intéressante. Dans le stockfish, j'utilise la fonction d'analyse "variation multiple" de l'UCI, qui trie les mouvements dans l'ordre de leur score d'évaluation. Les tirages forcés apparaissent assez clairement dans la liste lorsqu'ils sont des contrôles perpétuels ou des impasses, mais parfois c'est moins clair, et comme vous le dites, si vous allez plus loin, ce ne sera peut-être pas un tirage.
Eve Freeman
1
Mais à quel point est-il forcé? Je pense que dans de nombreux cas de soi-disant tirages forcés, l'adversaire peut encore dévier mais au prix d'une position nettement pire. Une position dans laquelle le blanc peut forcer un tirage ou un tour complet ne serait pas un tirage forcé, ce qui limiterait l'utilité.
RemcoGerlich
Si le blanc peut forcer un match nul au lieu de monter une tour, je voudrais le savoir.
Mark Byers

Réponses:

9

La réponse courte à votre question est non , il n'y a pas de moteur d'échecs qui puisse montrer de manière fiable si un côté a un tirage forcé. Par exemple, cette position verrouillée est clairement un attrait pour l'œil humain:

Position verrouillée, tirage désespéré

Cependant, notez que l'évaluation est de 0,17 et non de 0,00 . Houdini donne également 0,05 - très légèrement bon pour le blanc. C'est très important. Cela suggère que l'évaluation de 0,00 est réservée par ces programmes pour une raison spécifique, et c'est effectivement le cas. Fondamentalement, même dans une position «égale», l'ordinateur ne dira jamais que le score est de 0,00 , mais il donnera un bord minute à l'un ou l'autre côté.

Alors avec ce fond, passons aux détails! Premièrement, si le jeu est juste un match nul en raison de la position (c.-à-d. Impasse, matériel insuffisant, etc.), la plupart des GUI afficheront un message qui dit "Game Drawn", ou quelque chose dans ce sens. Cela laisse les cas les plus compliqués que vous avez mentionnés dans votre question. Afin de couvrir la plupart d'entre eux, je vais introduire une autre position. Ceci est tiré de Morphy-NN 1-0, New Orleans Blindfold Simul:

Morphy - NN 1-0, La Nouvelle-Orléans Les yeux bandés Simul

Notez que Morphy a actuellement un compagnon en 6 commençant par 18.b4+!. Cependant, si Morphy a raté d'une manière ou d'une autre que c'était un compagnon, il avait toujours un tirage forcé par répétition, ce que l'ordinateur voit rapidement. En augmentant le nombre de variations que l'ordinateur affiche, il est possible de voir qu'après que le blanc a joué un coup 18.Qxc3+?, le blanc peut toujours forcer un tirage, même s'il est en baisse d'une tour et d'un morceau. L'évaluation de 0,00 nous indique à nouveau qu'il s'agit d'une position particulière dans la mesure où l'ordinateur peut calculer un contrôle perpétuel. Si les mouvements 18.Qxc3+? Kxd5sont effectués sur le plateau, l'évaluation sera alors de 0,00 , indiquant que la meilleure continuation du blanc est de forcer un nul. Ne pas le faire entraînera la perte du jeu avec le meilleur jeu.


Donc, pour résumer, aucun moteur existant ne peut dire avec une certitude exacte qu'une position est nulle. Cependant, l'évaluation de 0,00 est spéciale, et si cela apparaît soit comme le score principal, soit comme le score d'une variation, cela signifie qu'un tirage est probablement forcé sur cette ligne spécifique. La façon la plus simple de vérifier est appelée de manière ludique "analyse de la barre d'espace" - lorsque l'utilisateur frappe la barre d'espace encore et encore pour forcer l'ordinateur à jouer le coup recommandé. Finalement, vous arriverez à une position qui est évidente pour l'homme et la machine.


Et enfin, pour répondre à votre point sur le «mépris»

Un autre exemple est que si vous avez besoin d'une victoire (c'est-à-dire qu'un match nul est aussi mauvais qu'une perte), vous voudrez peut-être jouer un coup avec une légère évaluation négative pour éviter de donner à votre adversaire la possibilité de forcer un match nul. Même si cela augmente vos chances de perdre, cela augmente également vos chances de gagner.

Ceci est tout simplement appelé mépris chez les programmeurs d'échecs. La plupart des moteurs vous permettront de définir le niveau de mépris dans les paramètres. Un réglage de mépris positif (100 est généralement un niveau raisonnable pour l'analyse) indiquera au moteur d'essayer assez fort (la valeur d'un pion) pour éviter un match nul. Un réglage négatif amènera le moteur à rechercher un tirage forcé (c'est-à-dire un matériau insuffisant, une impasse ou perpétuel).

Andrew
la source
C'est à peu près la même idée que dans le commentaire de Wes Freeman à la question, et tout comme ce qu'il décrit nécessite une intervention humaine - "Les tirages forcés apparaissent dans la liste assez clairement [parfois], mais parfois c'est moins clair" - votre réponse a l '«analyse de la barre d'espace» humaine contribuant. C'est pourquoi je suggère de modifier la fonction d'évaluation dans ma réponse; nous faisons en sorte que le moteur lui-même recherche réellement les tirages forcés et nous fasse savoir quand ils sont définitivement présents. Cela semble être la seule différence de fond entre les approches.
ETD
@EdDean, je suis d'accord. Les tirages les plus difficiles à trouver sont ceux où une fin de partie ne peut pas être gagnée, mais un côté peut toujours réclamer la victoire. Séparément, changer la fonction d'évaluation des moteurs serait une approche, mais probablement pas quelque chose qui peut être fait dans un délai raisonnable. Il est possible de jouer avec les paramètres d'outrage actuellement, mais cela ne fait pas la même chose que de reprogrammer un moteur comme vous le suggérez non plus. Les paramètres modifiables par l'homme sont assez limités sur les moteurs actuels.
Andrew
Ce mépris est soigné - je ne l'avais pas remarqué.
Eve Freeman
2
Soit dit en passant, je ne pense pas que 0,00 indique toujours un tirage forcé, ce que vous sembliez impliquer. Je le vois parfois même tôt dans les ouvertures - je suppose que cela signifie simplement que compte tenu de la position et du matériel actuels, il est probablement égal, et l'évaluation se trouve être de 0,00.
Eve Freeman
3
Intéressant. Dans le stockfish, ce n'est certainement pas le cas. Le simple fait d'analyser la position d'ouverture pendant quelques secondes renverra de nombreux scores de 0,00.
Eve Freeman
4

Tout comme les moteurs peuvent, à certains moments, voir un compagnon forcé s'écarter d'un certain nombre de mouvements, car il y a suffisamment de lignes pour que le moteur puisse tout voir parfaitement dans la profondeur restante jusqu'au compagnon, il y a aussi des jonctions dans les parties d'échecs qui permettraient moteur pour voir un tirage forcé pour la même raison d'être en mesure d'examiner complètement les possibilités limitées en jeu.

De plus, il serait facile de modifier la fonction d'évaluation d'un moteur afin de le faire rechercher et préférer les mouvements qui conduisent à de tels tirages forcés: tout comme la réalisation de la contrainte est généralement donnée une valeur énorme qui éclipse tous les autres facteurs numériques que l'algorithme d'évaluation du moteur considère que pour guider le jeu du moteur vers l'objectif ultime, on pourrait plutôt donner une valeur numérique si énorme à la réalisation d'un des types de tirages que j'ai en tête.

Par exemple, évaluez automatiquement toute position dans laquelle l'adversaire n'a pas suffisamment de matériel pour s'accoupler avec +1000000. Ensuite, si le moteur se retrouve avec l'option de forcer autant de matériel de l'adversaire, il vous le fera savoir. De plus, ajustez l'algorithme d'évaluation pour évaluer toute répétition triple comme +1000000 au lieu du 0 habituel. Ensuite, s'il y a une répétition forcée (comme dans un scénario de vérification perpétuelle), le moteur l'aimera et vous en informera . De même, donnez +1000000 si l'on peut atteindre de force un tirage de base de table.

Vous pouvez également vous assurer que le moteur ne donnera ces évaluations que lorsqu'il y aura une certitude totale que les tirages sont vraiment forcés (car l'arbre entre ici et là a pu être entièrement vérifié), tout comme avec un moteur qui n'annonce pas de partenaire à moins qu'il ne est sûr. Ainsi, vous n'obtiendrez aucun faux positif, bien qu'il y ait bien sûr beaucoup de faux négatifs, que vous autorisez sensiblement / nécessairement dans votre question.

ETD
la source
Je ne pense pas qu'un moteur fonctionnera comme ceci "prêt à l'emploi" en raison de facteurs d'outrage et de la façon dont ils taillent. Fondamentalement, si un tirage était trouvé, toute ligne qui gagnerait du matériel serait exclue. Ainsi, par exemple, vérifier le roi serait préférable à la capture d'une tour gratuite. J'envisage de publier une réponse plus longue car il existe des moyens d'utiliser les moteurs actuels pour ce faire, mais je ne veux pas révéler trop de secrets de préparation. ;)
Andrew
Aucun moteur ne fonctionnera comme je l'ai décrit "hors de la boîte", c'est vrai, car ils sont conçus pour rechercher des victoires; pour la même raison, il faudrait faire quelques ajustements pour faire jouer un moteur normal, disons, des échecs suicides. Je nous ai déjà de modifier la fonction d'évaluation; tout facteur de mépris peut être modifié / désactivé avec ce que j'ai suggéré si besoin est, oui? Mon point principal est que je pense que les moteurs existants peuvent être réutilisés (d'une manière raisonnablement simple) pour fonctionner comme Mark le souhaite. Donc, pour le moment du moins, je vois toujours cela comme un moyen «d'utiliser les moteurs actuels». Mais mon esprit peut toujours être changé. :)
ETD