Existe-t-il un moteur qui trouve le meilleur mouvement «pratique»?

25

Un moteur d'échecs standard trouvera le coup qu'il considère le mieux en supposant le meilleur jeu des deux côtés. Mais ce mouvement pourrait conduire à un avantage insignifiant ou à une ligne délicate qui peut facilement entraîner des erreurs pour un joueur humain d'une capacité spécifique. Existe-t-il un programme qui trouve le meilleur coup "pratique", par exemple pour les joueurs intermédiaires? Par exemple, il pourrait choisir un coup qui mène à une position d'attaque très forte où l'adversaire commettra très probablement une erreur, même s'il peut être défendu avec un jeu parfait.

Ari
la source
5
Question très intéressante, mais je pense que la mise en œuvre de quelque chose comme ça pourrait être difficile car "pratique", pourrait être très différent selon la situation. Par exemple, le même coup serait-il également pratique contre un adversaire 200 points au-dessus et 200 points au-dessous? Qu'en est-il du jeu classique contre le jeu blitz?
Akavall
Vous semblez vouloir quelque chose de plus proche de minimim que de minimax?
Mehrdad
Cela me rappelle le poker. Je pense que la plupart des pokerbots jouent toujours des coups pratiques au lieu de supposer un équilibre de Nash et d'essayer de jouer les meilleurs coups théoriques.
Paul
Une façon de penser à cela est que vous cherchez à quantifier une fonction objective différente. Lorsque vous perdez, vous ne voulez pas seulement minimiser combien vous perdez (peu importe si vous perdez par un centipawn ou une reine). Au lieu de cela, vous voulez minimiser combien vous perdez, à condition qu'il y ait toujours une ligne pour laquelle votre adversaire pourrait raisonnablement tomber. Vous pouvez quantifier «tomber raisonnablement pour» en comptant «seulement» les coups ou les situations où seul le coup supérieur (ou deux) continue son avantage, mais d'autres coups vous amènent à avoir l'avantage.
ddunn801
Par analogie, dans le football américain, vous avez un coup de pied de côté parce que cela vous donne une occasion (mince) de marquer rapidement même si le résultat attendu vous mettrait plus mal.
ddunn801

Réponses:

22

Vous décrivez quelque chose qui ressemble beaucoup au mépris . L'idée avec mépris est que si vous maintenez plus de dynamisme dans la position, un adversaire plus faible est plus susceptible de commettre des erreurs que vous pouvez ensuite exploiter. Par conséquent, étant donné deux mouvements qui produisent des évolutions similaires, un moteur avec un score de mépris élevé choisira celui qui conserve le plus de dynamisme dans la position. Les moteurs traditionnels les plus puissants actuellement ont tous mis en œuvre le mépris (par exemple pour Komodo ).

Le danger du mépris est que, contre un adversaire fort, un mépris élevé peut vous faire tuer - vous forcez après tout le moteur à jouer un coup plus faible juste pour maintenir le jeu en vie.

Séduire
la source
1
Merci, c'est similaire à ce que je recherche, mais ma question s'adresse même aux joueurs de la même capacité. Par exemple, un coup peut conduire à une victoire 9/10 fois compte tenu des coups probables que l'adversaire fera.
Ari
3
@Ari, c'est similaire. Prenez deux coups, dont l'un mènera à un match nul et l'autre pourrait entraîner une victoire dans 90% des cas et une perte dans les 10% restants. Un moteur avec un niveau de mépris très élevé pourrait choisir ce dernier (et perdre contre une défense parfaite).
Allure
1
Sans mépris, les moteurs tireraient probablement la plupart des matchs contre des adversaires inférieurs en n'excluant à aucun moment les répétitions forcées.
Ignorance inertielle
1
Peut être très bon si l'autre joueur manque de temps sur son horloge.
Ian Ringrose
@Ari Si votre adversaire est au même niveau que vous, alors si vous pouvez faire une méta-analyse d'une ligne (c'est-à-dire non seulement décider s'il gagne, mais aussi estimer la probabilité que votre adversaire voit qu'il gagne), alors ils serai probablement en mesure d'en faire une analyse.
Accumulation
6

J'ai réalisé que cette question s'applique principalement aux moteurs d'échecs standard qui utilisent des fonctions minimax pour évaluer les mouvements. Cependant, les moteurs d'échecs comme alphazero utilisent la recherche d'arbres de Monte Carlo pour simuler de nombreux jeux différents afin qu'ils ne recherchent pas seulement les meilleurs mouvements possibles. Il est possible qu'ils soient déjà utilisés pour trouver le meilleur coup "pratique", ou qu'ils puissent être adaptés à cette fin. Par exemple, l'algorithme de recherche de monte carlo pourrait être mis à jour pour examiner les mouvements "raisonnables" et simuler ce qui se passe.

Ari
la source
Mais alors vous devez programmer "raisonnable" dans l'algorithme.
Ignorance inertielle
1

Pas vraiment.

Les bases de données sont utiles car elles peuvent vous dire souvent qu'un coup est joué et quel est le résultat, mais elles ne sont pas parfaites pour diverses raisons.

Fritz 12 (pas sûr des versions ultérieures) dispose d'un compteur "hotness" qui vous indique la complexité d'une variation.

Bottom line. c'est une combinaison de choses. Vous recherchez des mouvements où les mouvements les plus importants se révèlent mauvais. Aucun moteur ne peut vous le dire.

Savage47
la source