Contrairement aux programmes d'échecs qui ont commencé à rivaliser avec les meilleurs professionnels dès 1990, les programmes du jeu de go n'arrivent toujours pas à battre des joueurs professionnels ! Le problème du jeu de go est notamment que les combinaisons de jeu possibles sont bien plus nombreuses que pour les autres jeux.
Tous les commentaires (127)
Si on ramene le jeu de Go a une grille de 8x8 l'écart est déjà plus raisonnable.
A partir du moment ou l'un des joueurs fait un coup qui sort de la théorie de l'ouverture jouée alors ca se joue a la réflexion et au plan de jeu.
A mon niveau, (Nationale III) je peux t'assurer qu'il m'arrive très régulièrement de passer entre 1h et 2h a réfléchir sur un seul coup.
Concrètement, s'il n'y avait pas la pendule qui limite le temps (généralement les partie longues se jouent entre 2h30 et 4h par joueurs suivant les rêgles de la compet) et qui oblige donc a gérer son temps de réflexion alors je peux t'assurer que les meilleurs joueurs réfléchiraient plusieurs heures par coup.
Sur une partie d'échec, je dirais qu'il y a maximum entre 5 et 10 coups que tu vas jouer par automatisme et par connaissance de la théorie.
S'il n'existe pas de coup gagnant, ca veut dire que potentiellement, quoi que tu joues ton adversaire peut avoir une réponse qui contre ton coup. Sauf que lui ne pourra pas le savoir car son coup ne sera pas un coup gagnant et donc tu pourras avoir une réponse qui contre son coup et ainsi de suite.
En gros, ca fait passer le jeu de Go pour un jeu de hasard ou les gens jouent leurs coups sans trop savoir si c'est bien ou pas.
Je suis pas joueur de Go, mais je pense que tout comme aux échecs, il y a aucune part de chance et qu'un joueur qui connait la théorie et sait calculer un peu en avant sera bon.
De nombreux logiciels de jeu d'échecs (et notamment Deep Blue, qui a battu Kasparov en 97) sont basés sur l'algorithme Minimax (vraiment intéressant, et la base est très facile à coder), qui repose sur deux principes :
- à chaque état du jeu (une situation donnée) est attribué une "note", positive si l'état est favorable au joueur A, négative si il lui est défavorable
- à partir de l'état actuel (exemple : début de partie), l'algorithme "imagine" toutes les possibilités à N coups (tous les états qui peuvent être atteints en N coups) ce qui forme un arbre des possibilités (dont la racine est l'état actuel) et choisit dans cet arbre la branche qui minimise les pertes possibles, en supposant que l'adversaire joue toujours en maximisant ses gains (d'où le nom de l'algorithme).
Ceci n'est que la base de l'algo, beaucoup d'améliorations sont possibles, par exemple l'élagage alpha-beta, qui permet, comme son nom l'indique, de "couper" les branches qui semblent inutiles (car les pertes y sont trop grandes) de l'arbre des possibilités, afin de ne pas avoir besoin de les explorer et donc de gagner du temps de calcul.
Une des difficultés de programmation est la "note" attribuée : comment savoir si une situation est favorable à un joueur ? L'attribution de poids aux pièces (pion = 1, tour = 5...) est un début mais n'est pas très satisfaisant : en effet, on peut perdre sa reine pour ensuite faire un échec avec un pion. Et c'est une des raisons qui font que le jeu de go est difficile à coder suivant cet algo : comment noter un état alors que le but est de contrôler le plus grand territoire ?
La deuxième difficulté a été soulevée plusieurs fois dans les précédents commentires : je crois me souvenir qu'aux échecs, à chaque tour, environ 35 possibilités différentes de jouer sont offertes au joueur. Ainsi, un arbre des possibilités de profondeur N, non élagué, compte plus de 35^N états. Pour le joueur de go, chez qui le goban fait 19x19, on a plus de 350 possibilités au début ! Ce qui fait que l'arbre de profondeur N compte plus de 350^N états (en début de partie au moins, car le nombre de coups diminue). C'est juste impossible à exploiter par une machine. Et l'augmentation de capacité de calcul telle qu'on la connaît ne permettra jamais de supplanter efficacement ce problème : il faut donc raisonner différemment (chercher d'autres élagages ? changer complètement d'algo ? (j'imagine que les scientifiques/informaticiens ont déjà pas mal cherché)).
Je me demande d'ailleurs si l'excitation récente autour du machine learning ne pourra pas offrir une solution ou ouvrir de nouvelles perspectives là dessus.
L'expression "y aller tout de go" signifie y aller rapidement, avec empressement. Pourtant, le jeu de go est un jeu très long. On peut donc se demander quel est le rapport. Une histoire japonaise raconte l'histoire d'une partie de go entre deux généraux. Cette partie dura des années, années au cours desquelles les généraux continuèrent leur partie, l'interrompant entre les batailles. Un soir, il advint qu'ils durent recueillir une prisonnière étrangère. Pour faire court, cette prisonnière renversa accidentellement le jeu. Les généraux s'apprêtèrent à la punir quand elle s'empressa de remettre les pièces au hasard. Elle forma ainsi une combinaison qui impressionna les généraux. Mais devant leur air surpris, la prisonnière pensant qu'elle avait eu tort redéplaça les pions à toute hâte. Ainsi, elle forma de nouveau une combinaison intéressante, persuadée que ce jeu était un objet de décoration. Les généraux, impressionnés par ce qu'ils pensaient être un grand talent stratégique, gracièrent la prisonnière et la renvoyèrent avec les honneurs, eux qui mettaient des heures à jouer un coup alors qu'elle ne mis que quelques instants. L'expression "tout de go" viendrait donc de cette histoire, dans le folklore japonais.
Comme aux échec, il y a un/des melleur(s) coups. Des coups qui font gagner et d'autres qui font perdre.
Voir le très bon film " Ex machina " on en parle un peu :)
À noter que Go est aussi le nom du langage de programmation open source de Google.
Dommage que le côté est due être tronquée pour la publication ! Ce jeu ancestral est passionnant et on pourrait en écrire des pages :)
Si vous voulez vous initier il est facile de trouver des tutos bien foutus sur le net. Les règles de base sont vite acquises. Mais en y jouant on se rend compte que cela demande un peu d'entraînement pour les mettre en pratique sur le plateau de 19x19...
Pour la ptite anecdote, l'économiste John Nash, (génial et un peu fou) à inventé une version hexagonale du jeu de go. A priori encore plus complexe !
Les ordinateurs sont tout à fait capable est très facilement... Mais aucun programmeur ne veut faire un programme (performant) pour un jeu aussi mal connu... C est valable pour tous les jeux... Seul le jeu d échec en vaut la peine car ce jeu est joué partout et c est un jeu commun et connu.
Au Go, tu ajoutes une pierre à chaque tour sur le plateau, absolument où tu le souhaites. Les possibilités sont donc immenses, et bien souvent plusieurs coups se valent (à première vue du moins) leur vraie finalité et leur intérêt pouvant se révéler plusieurs coups plus tard. De même, une pierre qui semble mal placée peut devenir un superbe coup en fonction de l'évolution de la partie.
Il n'y a réellement pas de coup gagant, il y a une stratégie qui se construit !
Apres ca, on est foutu..
J'arrive pas a comprendre les gens qui disent " on programme les machines donc pas de probleme..".
Oui, tant que NOUS les programmons; mais lorsqu'une machine pourra programmer toute seule..
Einstein était nul en math ... Pour un prix Nobel de physique :)