web-dev-qa-db-fra.com

Existe-t-il un algorithme parfait pour les échecs?

J'étais récemment dans une discussion avec une personne non-codeur sur les possibilités des ordinateurs d'échecs. Je ne connais pas bien la théorie, mais je pense en savoir assez.

J'ai soutenu qu'il ne pouvait exister une machine déterministe de Turing qui a toujours gagné ou bloqué aux échecs. Je pense que, même si vous recherchez tout l'espace de toutes les combinaisons de mouvements du joueur 1/2, le seul mouvement que l'ordinateur décide à chaque étape est basé sur une heuristique. Étant basé sur une heuristique, il ne bat pas nécessairement TOUS les mouvements que l'adversaire pourrait faire.

Mon ami pensait, au contraire, qu'un ordinateur gagnerait ou égalerait toujours s'il ne faisait jamais un mouvement "d'erreur" (comment le définissez-vous?). Cependant, étant un programmeur qui a pris CS, je sais que même vos bons choix - étant donné un adversaire sage - peuvent vous forcer à faire des mouvements "d'erreur" à la fin. Même si vous savez tout, votre prochain mouvement est gourmand en faisant correspondre une heuristique.

La plupart des ordinateurs d'échecs essaient de faire correspondre une éventuelle fin de partie au jeu en cours, qui est essentiellement un traçage de programmation dynamique. Encore une fois, la fin de partie en question est cependant évitable.

Edit: Hmm ... on dirait que j'ai ébouriffé quelques plumes ici. C'est bon.

En y repensant, il semble qu'il n'y ait pas de problème théorique à résoudre un jeu fini comme les échecs. Je dirais que les échecs sont un peu plus compliqués que les dames dans la mesure où une victoire n'est pas nécessairement par épuisement numérique des pièces, mais par un partenaire. Mon affirmation originale est probablement fausse, mais là encore, je pense avoir souligné quelque chose qui n'est pas encore prouvé de manière satisfaisante (officiellement).

Je suppose que mon expérience de pensée était que chaque fois qu'une branche de l'arbre est prise, l'algorithme (ou les chemins mémorisés) doit trouver un chemin vers un partenaire (sans être accouplé) pour toute branche possible sur les mouvements de l'adversaire. Après la discussion, j'achèterai que, étant donné plus de mémoire que ce dont nous pouvons rêver, tous ces chemins pourraient être trouvés.

107
Overflown

"J'ai soutenu qu'il ne pouvait exister une machine déterministe de Turing qui a toujours gagné ou bloqué aux échecs."

Tu n'as pas tout à fait raison. Il peut y avoir une telle machine. Le problème est l'immensité de l'espace d'état qu'il devra rechercher. C'est fini, c'est juste VRAIMENT gros.

C'est pourquoi les échecs se rabattent sur l'heuristique - l'espace d'état est trop immense (mais fini). Énumérer même - et encore moins rechercher chaque mouvement parfait le long de chaque cours de chaque jeu possible - serait un très, très gros problème de recherche.

Les ouvertures sont programmées pour vous amener à un milieu de partie qui vous donne une position "forte". Pas un résultat connu. Même les parties de fin - quand il y a moins de pièces - sont difficiles à énumérer pour déterminer le meilleur coup suivant. Techniquement, ils sont finis. Mais le nombre d'alternatives est énorme. Même un roi 2 tours + a quelque chose comme 22 prochains coups possibles. Et s'il faut 6 mouvements pour s'accoupler, vous envisagez 12 855 002 631 049 216 mouvements.

Faites le calcul lors des mouvements d'ouverture. Bien qu'il n'y ait qu'une vingtaine de coups d'ouverture, il y en a environ 30, donc au troisième coup, nous examinons 360 000 états de jeu alternatifs.

Mais les parties d'échecs sont (techniquement) finies. Énorme, mais fini. Il y a des informations parfaites. Il y a des états de début et de fin définis, Il n'y a pas de lancer de pièces ni de lancers de dés.

103
S.Lott

Je ne sais pratiquement rien de ce qui a été découvert sur les échecs. Mais en tant que mathématicien, voici mon raisonnement:

D'abord, nous devons nous rappeler que White doit passer en premier et peut-être que cela lui donne un avantage; peut-être que cela donne un avantage aux noirs.

Supposons maintenant qu'il n'y ait pas de stratégie parfaite pour les Noirs qui lui permette toujours de gagner/bloquer. Cela implique que peu importe ce que les Noirs font, il existe une stratégie que les Blancs peuvent suivre pour gagner. Attendez une minute - cela signifie qu'il est une stratégie parfaite pour les blancs!

Cela nous indique qu'au moins l'un des deux joueurs a une stratégie parfaite qui permet à ce joueur de toujours gagner ou tirer.

Il n'y a donc que trois possibilités:

  • Les blancs peuvent toujours gagner s'ils jouent parfaitement
  • Les noirs peuvent toujours gagner s'ils jouent parfaitement
  • Un joueur peut gagner ou dessiner s'il joue parfaitement (et si les deux joueurs jouent parfaitement alors ils bloquent toujours)

Mais lequel d'entre eux est réellement correct, nous ne le saurons peut-être jamais.

La réponse à la question est oui: il doit y avoir un algorithme parfait pour les échecs, au moins pour l'un des deux joueurs.

72
Artelius

Il a été prouvé pour le jeu de dames qu'un programme peut toujours gagner ou égaler la partie. C'est-à-dire qu'il n'y a pas de choix de mouvements qu'un joueur puisse faire qui oblige l'autre joueur à perdre.

Les chercheurs ont passé près de deux décennies à parcourir les 500 milliards de milliards de postes de contrôleurs possibles, ce qui est encore une fraction infinitésimale du nombre de positions d'échecs, par le façon. Les vérificateurs ont inclus les meilleurs joueurs, qui ont aidé l'équipe de recherche à programmer les règles de base des vérificateurs dans un logiciel qui classait les mouvements comme réussis ou non. Ensuite, les chercheurs ont laissé le programme fonctionner, sur une moyenne de 50 ordinateurs par jour. Certains jours, le programme fonctionnait sur 200 machines. Alors que les chercheurs ont suivi les progrès et peaufiné le programme en conséquence. En fait, Chinook a battu les humains pour remporter le championnat du monde des dames en 1994.

Oui, vous pouvez résoudre les échecs, non, vous ne le ferez pas de sitôt.

30
BCS

Ce n'est pas une question sur les ordinateurs mais seulement sur le jeu d'échecs.

La question est, existe-t-il une stratégie de sécurité pour ne jamais perdre le jeu? Si une telle stratégie existe, alors un ordinateur qui sait tout peut toujours l'utiliser et ce n'est plus une heuristique.

Par exemple, le jeu tic-tac-toe se joue normalement sur la base d'heuristiques. Mais, il existe une stratégie de sécurité intégrée. Quels que soient les mouvements de l'adversaire, vous trouverez toujours un moyen d'éviter de perdre la partie, si vous le faites dès le départ.

Vous devrez donc prouver qu'une telle stratégie existe ou non pour les échecs également. C'est fondamentalement la même chose, juste l'espace des mouvements possibles est beaucoup plus grand.

14
ypnos

J'arrive à ce fil très tard, et que vous avez déjà réalisé certains des problèmes. Mais en tant qu'ancien maître et ex-programmeur d'échecs professionnel, j'ai pensé pouvoir ajouter quelques faits et chiffres utiles. Il existe plusieurs façons de mesurer la complexité des échecs :

  • Le nombre total de parties d'échecs est d'environ 10 ^ (10 ^ 50). Ce nombre est incroyablement élevé.
  • Le nombre de parties d'échecs de 40 coups ou moins est d'environ 10 ^ 40. C'est toujours un nombre incroyablement élevé.
  • Le nombre de positions d'échecs possibles est d'environ 10 ^ 46.
  • L'arbre complet de recherche d'échecs (nombre de Shannon) est d'environ 10 ^ 123, basé sur un facteur de branchement moyen de 35 et une durée moyenne de jeu de 80.
  • À titre de comparaison, le nombre d'atomes dans l'univers observable est généralement estimé à environ 10 ^ 80.
  • Toutes les parties finales de 6 pièces ou moins ont été assemblées et résolues .

Ma conclusion: bien que les échecs soient théoriquement résolubles, nous n'aurons jamais l'argent, la motivation, la puissance de calcul ou le stockage pour le faire.

13
RoadWarrior

Certains jeux ont en fait été résolus. Tic-Tac-Toe est très facile pour construire une IA qui gagnera ou égalera toujours. Récemment, Connect 4 a également été résolu (et s'est avéré injuste pour le deuxième joueur, car un jeu parfait lui fera perdre).

Les échecs, cependant, n'ont pas été résolus, et je ne pense pas qu'il y ait de preuve que ce soit un jeu équitable (c'est-à-dire si le jeu parfait entraîne un match nul). Parlant strictement d'un point de vue théorique, Chess a un nombre fini de configurations de pièces possibles. Par conséquent, l'espace de recherche est fini (bien qu'incroyablement grand). Par conséquent, il existe une machine de Turing déterministe qui pourrait parfaitement jouer. Cependant, la construction d'un bâtiment est une autre affaire.

9
Cybis

Le bureau moyen de 1 000 $ sera en mesure de résoudre les vérificateurs en seulement 5 secondes d'ici 2040 (calculs 5x10 ^ 20).

Même à cette vitesse, il faudrait encore à 100 de ces ordinateurs environ 6,34 x 10 ^ 19 années pour résoudre les échecs. Toujours pas faisable. Pas même près.

Vers 2080, nos bureaux moyens auront environ 10 ^ 45 calculs par seconde. Un seul ordinateur aura la puissance de calcul nécessaire pour résoudre les échecs en 27,7 heures environ. Cela sera certainement fait d'ici 2080 tant que la puissance de calcul continuera de croître comme elle l'a fait au cours des 30 dernières années.

D'ici 2090, une puissance de calcul suffisante existera sur un bureau de 1000 $ pour résoudre les échecs en environ 1 seconde ... donc à cette date, ce sera complètement trivial.

Étant donné que les pions ont été résolus en 2007, et que la puissance de calcul pour le résoudre en 1 seconde sera en retard d'environ 33 à 35 ans, nous pouvons probablement à peu près estimer que les échecs seront résolus quelque part entre 2055-2057. Probablement plus tôt, car lorsque davantage de puissance de calcul est disponible (ce qui sera le cas dans 45 ans), davantage peut être consacré à des projets comme celui-ci. Cependant, je dirais 2050 au plus tôt et 2060 au plus tard.

En 2060, il faudrait 100 ordinateurs de bureau en moyenne 3,17 x 10 ^ 10 ans pour résoudre les échecs. Sachez que j'utilise un ordinateur à 1 000 $ comme référence, alors que des systèmes et des superordinateurs plus gros seront probablement disponibles car leur rapport prix/performances s'améliore également. De plus, leur ordre de grandeur de puissance de calcul augmente à un rythme plus rapide. Imaginons qu'un supercalculateur puisse désormais effectuer 2,33 x 10 ^ 15 calculs par seconde, et un ordinateur de 1 000 $ environ 2 x 10 ^ 9. En comparaison, il y a 10 ans, la différence était de 10 ^ 5 au lieu de 10 ^ 6. D'ici 2060, la différence d'ordre de grandeur sera probablement de 10 ^ 12, et même cela pourrait augmenter plus rapidement que prévu.

Cela dépend en grande partie du fait que nous, en tant qu'êtres humains, ayons la volonté de résoudre les échecs, mais la puissance de calcul le rendra réalisable à cette époque (tant que notre rythme continuera).

Sur une autre note, le jeu de Tic-Tac-Toe, qui est beaucoup, beaucoup plus simple, a 2 653 002 calculs possibles (avec un tableau ouvert). La puissance de calcul nécessaire pour résoudre le Tic-Tac-Toe en environ 2,5 (1 million de calculs par seconde) secondes a été atteinte en 1990.

En reculant, en 1955, un ordinateur avait le pouvoir de résoudre Tic-Tac-Toe en environ 1 mois (1 calcul par seconde). Encore une fois, cela est basé sur ce que 1000 $ vous procureraient si vous pouviez le regrouper dans un ordinateur (un bureau de 1000 $ n'existait évidemment pas en 1955), et cet ordinateur aurait été consacré à la résolution de Tic-Tac -Toe .... ce qui n'était tout simplement pas le cas en 1955. Le calcul était coûteux et n'aurait pas été utilisé à cette fin, bien que je ne pense pas qu'il y ait de date où Tic-Tac-Toe a été jugé "résolu" par un ordinateur, mais je suis sûr qu'il est en retard sur la puissance de calcul réelle.

En outre, prendre en compte 1000 $ en 45 ans vaudra environ 4 fois moins qu'aujourd'hui, donc beaucoup plus d'argent peut être investi dans des projets comme celui-ci, tandis que la puissance de calcul continuera à être moins chère.

8
Frank

En fait, c'est possible pour les deux joueurs d'avoir des stratégies gagnantes dans des jeux infinis sans bon ordre; cependant, les échecs sont bien ordonnés. En fait, en raison de la règle des 50 coups , il y a une limite supérieure au nombre de coups qu'une partie peut avoir, et donc il n'y a qu'un nombre fini de parties d'échecs possibles (qui peut être énuméré pour résoudre exactement .. théoriquement, au moins:)

Votre fin d'argument est soutenue par la façon dont les programmes d'échecs modernes fonctionnent maintenant . Ils fonctionnent de cette façon parce que c'est beaucoup trop de ressources pour coder un programme d'échecs pour fonctionner de manière déterministe. Ils ne fonctionneront pas nécessairement toujours de cette façon. Il est possible que les échecs soient un jour résolus , et si cela se produit, ils seront probablement résolus par un ordinateur.

6
Bill the Lizard

D'après la théorie des jeux, sur laquelle porte cette question, la réponse est oui. Les échecs peuvent être parfaitement joués. L'espace de jeu est connu/prévisible et oui, si vous aviez les ordinateurs quantiques de vos petits-enfants, vous pourriez probablement éliminer toutes les heuristiques.

Vous pouvez écrire une machine à tic-tac-toe parfaite de nos jours dans n'importe quel langage de script et elle fonctionnerait parfaitement en temps réel.

Othello est un autre jeu auquel les ordinateurs actuels peuvent facilement jouer parfaitement, mais la mémoire et le processeur de la machine auront besoin d'un peu d'aide

Les échecs sont théoriquement possibles mais pas pratiquement possibles (en 2008)

i-Go est délicat, son espace de possibilités dépasse la quantité d'atomes dans l'univers, donc cela pourrait nous prendre un certain temps pour fabriquer une machine i-Go parfaite.

5
Robert Gould

Les échecs sont un exemple de jeu matriciel qui, par définition, a un résultat optimal (pensez à l'équilibre de Nash). Si les joueurs 1 et 2 prennent chacun des coups optimaux, un certain résultat sera TOUJOURS atteint (que ce soit une victoire-égalité-perte est encore inconnue).

5
Jon Smock

En tant que programmeur d'échecs des années 1970, j'ai définitivement une opinion là-dessus. Ce que j'ai écrit il y a environ 10 ans est toujours vrai aujourd'hui:

"Travail inachevé et défis pour les programmeurs d'échecs"

À l'époque, je pensais que nous pourrions résoudre les échecs de manière conventionnelle, si cela était fait correctement.

Checkers a été résolu récemment (Yay, Université de l'Alberta, Canada !!!) mais cela a été effectivement fait Brute Force. Pour faire des échecs de façon conventionnelle, vous devrez être plus intelligent.

À moins, bien sûr, que Quantum Computing ne devienne une réalité. Si c'est le cas, les échecs seront résolus aussi facilement que Tic-Tac-Toe.

Au début des années 1970 dans Scientific American, une courte parodie a retenu mon attention. C'était une annonce que le jeu d'échecs a été résolu par un ordinateur d'échecs russe. Il avait déterminé qu'il y avait un coup parfait pour les blancs qui assurerait une victoire avec un jeu parfait des deux côtés, et ce coup est: 1. a4!

5
lkessler

Pour mémoire, il y a des ordinateurs qui peuvent gagner ou égaliser à checkers . Je ne sais pas si la même chose pourrait être faite pour les échecs. Le nombre de coups est beaucoup plus élevé. De plus, les choses changent parce que les pièces peuvent se déplacer dans n'importe quelle direction, pas seulement vers l'avant et vers l'arrière. Je pense que même si je ne suis pas sûr, que les échecs sont déterministes, mais qu'il y a bien trop de mouvements possibles pour qu'un ordinateur puisse actuellement déterminer tous les mouvements dans un laps de temps raisonnable.

5
Kibbee

Je pense que tu es mort. Des machines comme Deep Blue et Deep Thought sont programmées avec un certain nombre de jeux prédéfinis et des algorithmes intelligents pour analyser les arbres jusqu'aux extrémités de ces jeux. Il s'agit, bien sûr, d'une simplification excessive dramatique. Il y a toujours une chance de "battre" l'ordinateur au cours d'une partie. J'entends par là faire un mouvement qui oblige l'ordinateur à faire un mouvement qui n'est pas optimal (quel qu'il soit). Si l'ordinateur ne parvient pas à trouver le meilleur chemin avant la date limite du déplacement, il peut très bien se tromper en choisissant l'un des chemins les moins souhaitables.

Il existe une autre classe de programmes d'échecs qui utilise un véritable apprentissage automatique ou des algorithmes de programmation/évolution génétique. Certains programmes ont évolué et utilisent des réseaux de neurones, et al, pour prendre des décisions. Dans ce type de cas, j'imagine que l'ordinateur pourrait faire des "erreurs", mais aboutir à une victoire.

Il y a un livre fascinant sur ce type de GP appelé Blondie24 que vous pourriez lire. Il s'agit de dames, mais cela pourrait s'appliquer aux échecs.

5
Jason Jackson

Beaucoup de réponses ici font les points importants de la théorie du jeu:

  1. Les échecs sont un jeu fini et déterministe avec des informations complètes sur l'état du jeu
  2. Vous pouvez résoudre un jeu fini et identifier une stratégie parfaite
  3. Les échecs sont cependant assez gros pour que vous ne puissiez pas le résoudre complètement avec une méthode de force brute

Cependant, ces observations manquent un point pratique important: il n'est pas nécessaire de résoudre parfaitement le jeu complet pour créer une machine imbattable .

Il est en fait très probable que vous puissiez créer une machine d'échecs imbattable (c'est-à-dire que vous ne perdrez jamais et forcerez toujours une victoire ou un tirage) sans chercher même une infime fraction de l'espace d'état possible.

Les techniques suivantes, par exemple, réduisent toutes massivement l'espace de recherche requis:

  • Les techniques d'élagage des arbres comme Alpha/Beta ou MTD-f réduisent déjà massivement l'espace de recherche
  • Position gagnante prouvable. De nombreuses fins se retrouvent dans cette catégorie: vous n'avez pas besoin de rechercher KR vs K par exemple, c'est une victoire éprouvée. Avec un peu de travail, il est possible de prouver beaucoup plus de victoires garanties.
  • Presque certaines victoires - pour jouer "assez bien" sans aucune erreur stupide (disons à propos d'ELO 2200+?), De nombreuses positions d'échecs sont presque certaines victoires, par exemple un avantage matériel décent (par exemple un chevalier supplémentaire) sans avantage positionnel compensateur. Si votre programme peut forcer une telle position et possède une bonne heuristique suffisante pour détecter un avantage positionnel, il peut sans risque supposer qu'il gagnera ou au moins tirera avec une probabilité de 100%.
  • Heuristique de recherche dans les arbres - avec une reconnaissance des formes suffisamment bonne, vous pouvez rapidement vous concentrer sur le sous-ensemble pertinent de mouvements "intéressants". C'est ainsi que jouent les grands maîtres humains, donc ce n'est clairement pas une mauvaise stratégie ..... et nos algorithmes de reconnaissance de formes s'améliorent constamment
  • Évaluation des risques - une meilleure conception du "risque" d'une position permettra une recherche beaucoup plus efficace en concentrant la puissance de calcul sur des situations où le résultat est plus incertain (il s'agit d'une extension naturelle de Quiescence Search )

Avec la bonne combinaison des techniques ci-dessus, je serais à l'aise d'affirmer qu'il est possible de créer une machine à jouer aux échecs "imbattable". Nous ne sommes probablement pas trop loin de la technologie actuelle.

Notez qu'il est presque certainement plus difficile de prouver que cette machine ne puisse pas être battue. Ce serait probablement quelque chose comme l'hypothèse de Reimann - nous serions presque sûrs qu'elle joue parfaitement et aurait des résultats empiriques montrant qu'elle n'a jamais perdu (y compris quelques milliards de tirages consécutifs contre elle-même), mais nous n'aurions pas réellement la capacité de prouve le.

Remarque supplémentaire concernant la "perfection":

Je fais attention à ne pas décrire la machine comme "parfaite" au sens théorique du jeu car cela implique des conditions supplémentaires inhabituellement fortes, telles que:

  • Toujours gagner dans toutes les situations où il est possible de forcer une victoire, quelle que soit la complexité de la combinaison gagnante. Il y aura des situations à la frontière entre victoire/match nul où cela est extrêmement difficile à calculer parfaitement.
  • Exploiter toutes les informations disponibles sur l'imperfection potentielle dans le jeu de votre adversaire, par exemple en déduisant que votre adversaire pourrait être trop gourmand et jouer délibérément une ligne légèrement plus faible que d'habitude au motif qu'il a un plus grand potentiel pour tenter votre adversaire de faire une erreur. Contre des adversaires imparfaits, il peut en fait être optimal de faire un perdre si vous estimez que votre adversaire ne repérera probablement pas la victoire forcée et que cela vous donne une plus grande probabilité de gagner vous-même.

La perfection (en particulier face à des adversaires imparfaits et inconnus) est un problème beaucoup plus difficile que d'être simplement imbattable.

3
mikera

"Existe-t-il un algorithme parfait pour les échecs?"

Oui il y a. C'est peut-être pour les Blancs de toujours gagner. C'est peut-être pour les Noirs de toujours gagner. C'est peut-être pour les deux de toujours se lier au moins. Nous ne savons pas lequel et nous ne le saurons jamais, mais cela existe certainement.

Voir également

2

C'est parfaitement résoluble.

Il y a 10 ^ 50 positions impaires. Chaque position, à mon avis, nécessite un minimum de 64 octets ronds pour stocker (chaque carré a: 2 bits d'affiliation, 3 bits de morceau). Une fois qu'ils sont rassemblés, les postes qui sont des compagnons de contrôle peuvent être identifiés et les postes peuvent être comparés pour former une relation, montrant quels postes mènent à d'autres postes dans un grand arbre de résultats.

Ensuite, le programme n'a besoin que de trouver les racines d'un seul échec et mat le plus bas, si une telle chose existe. En tout cas, les échecs ont été résolus assez simplement à la fin du premier paragraphe.

2
Solomon

si vous recherchez dans tout l'espace de toutes les combinaisons de mouvements du joueur 1/2, le seul mouvement que l'ordinateur décide à chaque étape est basé sur une heuristique.

Il y a là deux idées concurrentes. L'un est que vous recherchez chaque mouvement possible, et l'autre est que vous décidez en fonction d'une heuristique. Une heuristique est un système permettant de faire une bonne supposition. Si vous recherchez tous les mouvements possibles, vous ne devinez plus.

2
Joel Coehoorn

J'ai trouvé ceci article de John MacQuarrie qui fait référence au travail du "père de la théorie des jeux" Ernst Friedrich Ferdinand Zermelo . Il tire la conclusion suivante:

Aux échecs, le blanc peut forcer une victoire, ou le noir peut forcer une victoire, ou les deux côtés peuvent forcer au moins un match nul.

La logique me semble saine.

2
Ben Gartner

Il y a deux erreurs dans votre expérience de pensée:

  1. Si votre machine Turing n'est pas "limitée" (en mémoire, vitesse, ...) vous n'avez pas besoin d'utiliser d'heuristique mais vous pouvez calculer évaluer les états finaux (victoire, perte, tirage). Pour trouver le jeu parfait, il vous suffirait alors d'utiliser l'algorithme Minimax (voir http://en.wikipedia.org/wiki/Minimax ) pour calculer les mouvements optimaux pour chaque joueur, ce qui conduirait à un ou plusieurs jeux optimaux.

  2. Il n'y a pas non plus de limite sur la complexité de l'heuristique utilisée. Si vous pouvez calculer un jeu parfait, il existe également un moyen de calculer une heuristique parfaite à partir de celui-ci. Si nécessaire, c'est juste une fonction qui cartographie les positions des échecs de la manière "Si je suis dans cette situation S, mon meilleur coup est M".

Comme d'autres l'ont déjà souligné, cela se terminera par 3 résultats possibles: les blancs peuvent forcer une victoire, les noirs peuvent forcer une victoire, l'un d'eux peut forcer un match nul.

Le résultat d'un jeu de dames parfait a déjà été "calculé". Si l'humanité ne se détruit pas auparavant, il y aura aussi un calcul pour les échecs un jour, lorsque les ordinateurs auront suffisamment évolué pour avoir suffisamment de mémoire et de vitesse. Ou nous avons des ordinateurs quantiques ... Ou jusqu'à ce que quelqu'un (chercheur, experts en échecs, génie) trouve des algorithmes qui réduisent considérablement la complexité du jeu. Pour donner un exemple: Quelle est la somme de tous les nombres entre 1 et 1000? Vous pouvez soit calculer 1 + 2 + 3 + 4 + 5 ... + 999 + 1000, soit simplement calculer: N * (N + 1)/2 avec N = 1000; result = 500500. Maintenant, imaginez que vous ne connaissez pas cette formule, vous ne connaissez pas l'induction mathématique, vous ne savez même pas comment multiplier ou ajouter des nombres, ... Donc, il peut être possible qu'il y ait actuellement algorithme inconnu qui réduit finalement la complexité de ce jeu et il faudrait juste 5 minutes pour calculer le meilleur coup avec un ordinateur actuel. Il serait peut-être même possible de l'estimer en tant qu'humain avec un stylo et du papier, ou même dans votre esprit, avec un peu plus de temps.

Donc, la réponse rapide est: si l'humanité survit assez longtemps, ce n'est qu'une question de temps!

1
SDwarfs

Je ne suis convaincu qu'à 99,9% par l'affirmation selon laquelle la taille de l'espace d'état ne permet pas d'espérer une solution.

Bien sûr, 10 ^ 50 est un nombre incroyablement élevé. Appelons la taille de l'espace d'état n.

Quelle est la limite du nombre de coups dans le jeu le plus long possible? Puisque tous les jeux se terminent par un nombre fini de coups, il existe une telle limite, appelons-la m.

À partir de l'état initial, ne pouvez-vous pas énumérer tous les n mouvements dans O(m) espace? Bien sûr, cela prend O(n) temps, mais les arguments de la taille de l'univers ne répondent pas directement à cela. O(m) l'espace peut même ne pas être très grand. Pour O(m) l'espace ne pouvait pas également vous permettre de suivre, au cours de cette traversée, si la poursuite d'un état le long du chemin que vous parcourez mène à EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin ou BlackMayWinOrForceDraw? annoter chaque état de l'histoire de votre traversée avec la rencontre en treillis.)

À moins que je manque quelque chose, c'est un O(n) temps/O(m) algorithme spatial pour déterminer dans laquelle des échecs les catégories possibles tombent). Wikipedia cite une estimation de l'âge de l'univers à environ 10 ^ 60e fois Planck. Sans entrer dans un argument de cosmologie, supposons qu'il reste encore beaucoup de temps avant la chaleur/le froid/quelle que soit la mort de l'univers. Cela nous laisse pour évaluer un coup toutes les 10 ^ 10e fois de Planck, ou toutes les 10 ^ -34 secondes. C'est un temps incroyablement court (environ 16 ordres de grandeur plus court que les temps les plus courts jamais observés). Disons avec optimisme qu'avec un super-duper-good mise en œuvre fonctionnant au-dessus de la technologie actuelle-ou-prévue-non-quantique-P-est-un-sous-ensemble-de-NP que nous pourrions espérer évaluer (faire un pas en avant, classer l'état résultant comme intermédiaire état ou l'un des trois états finaux) indique un taux de 100 MHz (une fois toutes les 10 ^ -8 secondes). Cet algorithme étant très parallélisable, cela nous laisse besoin de 10 ^ 26e de ces ordinateurs ou environ un pour chaque atom dans mon corps, ainsi que la possibilité de collecter leurs résultats.

Je suppose qu'il y a toujours un peu d'espoir pour une solution de force brute. Nous pourrions avoir de la chance et, en explorant un seul des mouvements d'ouverture possibles des blancs, choisissez-en un avec un fanout bien inférieur à la moyenne et un dans lequel les blancs gagnent ou gagnent ou tirent toujours.

Nous pourrions également espérer réduire quelque peu la définition des échecs et persuader tout le monde que c'est toujours moralement le même jeu. Avons-nous vraiment besoin d'exiger que les positions se répètent 3 fois avant un tirage? Avons-nous vraiment besoin de faire en sorte que la fugue démontre sa capacité à s'échapper pendant 50 coups? Est-ce que quelqu'un comprend même quel est le problème avec la règle en passant? ;) Plus sérieusement, avons-nous vraiment besoin de forcer un joueur à se déplacer (par opposition à tirer ou à perdre) lorsque son seul mouvement pour échapper à un échec ou une impasse est une capture en passant? Pourrions-nous limiter le choix des pièces pour lesquelles un pion peut être promu si la promotion non reine souhaitée ne conduit pas à un échec immédiat ou à un échec et mat?

Je ne sais pas non plus dans quelle mesure le fait d'autoriser chaque ordinateur à accéder à une grande base de données des états de fin de jeu et leurs résultats potentiels (qui pourraient être relativement réalisables sur le matériel existant et avec les bases de données de fin de jeu existantes) pourrait aider à élaguer la recherche plus tôt. Évidemment, vous ne pouvez pas mémoriser la fonction entière sans stockage O(n)), mais vous pouvez choisir un grand entier et mémoriser que de nombreuses finales énumèrent à l'envers de chaque possible (ou même pas facilement impossible à prouver, Je suppose) l'état final.

1
Doug McClean

Je sais que c'est un peu une bosse, mais je dois mettre mes 5 cents ici. Il est possible pour un ordinateur, ou une personne d'ailleurs, de mettre fin à chaque partie d'échecs à laquelle il participe, dans une victoire ou une impasse.

Pour y parvenir, cependant, vous devez connaître précisément tous les mouvements et réactions possibles et ainsi de suite, tout au long de chaque résultat de jeu possible, et pour visualiser cela, ou pour faire un moyen facile d'analyser ces informations, pensez à comme une carte mentale qui se ramifie constamment.

Le nœud central serait le début de la partie. Chaque branche de chaque nœud symboliserait un mouvement, chacun différent de ses mouvements bretheren. La présenter dans ce manoir prendrait beaucoup de ressources, surtout si vous faisiez cela sur papier. Sur un ordinateur, cela prendrait peut-être des centaines de Terrabytes de données, car vous auriez de nombreux mouvements répétitifs, à moins que vous ne fassiez revenir les branches.

Toutefois, la mémorisation de ces données serait invraisemblable, voire impossible. Faire en sorte qu'un ordinateur reconnaisse le mouvement le plus optimal pour éliminer les (tout au plus) 8 mouvements instantanément possibles, serait possible, mais pas plausible ... car cet ordinateur devrait être capable de traiter toutes les branches après ce mouvement, tout le chemin vers une conclusion, comptez toutes les conclusions qui entraînent une victoire ou une impasse, puis agissez sur ce nombre de conclusions gagnantes contre la perte de conclusions, et cela nécessiterait RAM capable de traiter les données dans les Terrabytes, ou plus! Et avec la technologie d'aujourd'hui, un ordinateur comme celui-ci nécessiterait plus que le solde bancaire des 5 hommes et/ou femmes les plus riches du monde!

Donc, après toute cette considération, cela pouvait être fait, mais personne ne pouvait le faire. Une telle tâche nécessiterait 30 des esprits les plus brillants vivants aujourd'hui, non seulement dans les échecs, mais dans la science et la technologie informatique, et une telle tâche ne pourrait être accomplie que sur (permet de le mettre entièrement dans une perspective de base) ... extrêmement ultime hyper ordinateur super-duper ... qui ne pourrait pas exister pendant au moins un siècle. Ça sera fait! Mais pas dans cette vie.

1
MrDeeJayy

Mathématiquement, les échecs ont été résolus par le algorithme Minimax , qui remonte aux années 1920 (trouvé par Borel ou von Neumann). Ainsi, une machine de turing peut en effet jouer aux échecs parfaits.

Cependant, la complexité de calcul des échecs le rend pratiquement impossible. Les moteurs actuels utilisent plusieurs améliorations et heuristiques. Les meilleurs moteurs d'aujourd'hui ont dépassé les meilleurs humains en termes de force de jeu, mais en raison de l'heuristique qu'ils utilisent, ils pourraient ne pas jouer parfaitement lorsqu'ils disposent d'un temps infini (par exemple, les collisions de hachage pourraient conduire à des résultats incorrects).

Les plus proches que nous avons actuellement en termes de jeu parfait sont bases de table de fin de partie . La technique typique pour les générer est appelée analyse rétrograde . Actuellement, toutes les positions avec jusqu'à six pièces ont été résolues.

0
Philipp Claßen

Cela pourrait être résoluble, mais quelque chose me dérange: même si l'arbre entier peut être traversé, il n'y a toujours aucun moyen de prédire le prochain mouvement de l'adversaire. Nous devons toujours baser notre prochain coup sur l'état de l'adversaire, et faire le "meilleur" coup disponible. Ensuite, en fonction de l'état suivant, nous le faisons à nouveau. Ainsi, notre mouvement optimal pourrait être optimal si l'adversaire se déplace d'une certaine manière. Pour certains mouvements de l'adversaire, notre dernier mouvement aurait pu être sous-optimal.

Je n'arrive pas à voir comment il pourrait y avoir un mouvement "parfait" à chaque étape.

Pour que ce soit le cas, il doit y avoir pour chaque état [dans le jeu en cours] un chemin dans l'arbre qui mène à la victoire, quel que soit le prochain coup de l'adversaire (comme dans le tic-tac-toe), et j'ai un dur le temps de comprendre cela.

0
E Dominique