thumb|Les programmes sont plus performants sur un goban de petite taille (ici 9×9). Le développement de programme informatique capable de jouer au go est un problème de l'intelligence artificielle. Ce problème est considéré comme l'un des plus complexes à résoudre, les algorithmes classiques (minimax et alpha-bêta) offrant des résultats médiocres.
Le premier programme a été écrit en 1968 par comme un élément de sa thèse sur la reconnaissance des formes. Ce n'est qu'en 2015 qu'un programme AlphaGo bat pour la première fois un joueur de go professionnel, Fan Hui, champion d'Europe de go, avant de battre Lee Sedol, l'un des meilleurs joueurs au monde, en et Ke Jie, le meilleur joueur du monde, en .
Description du problème Comme pour tous les jeux, il faut jouer un coup qui améliore sa situation et détériore celle de son adversaire. Pour estimer une situation aux échecs, une bonne estimation est de compter le nombre de pièces sur l'échiquier, en les pondérant (1 point par pion, 5 par tour...), et en ajustant la valeur trouvée par les libertés, les protections des pièces...
Cela passe par le calcul d'une fonction d'évaluation, associant les scores de chacun des adversaires à chaque nœud.
C'est difficilement réalisable au go : on ne dispose pas de fonction d'évaluation (estimation des valeurs antagonistes d'une position) ne nécessitant pas - entre autres - des capacités « humaines » de « reconnaissance de formes », l'« expérience de parties » déjà jouées et une très grande « profondeur de calcul ».
La technique d'exploration des différentes possibilités (pour chaque coup, déterminer la meilleure réponse possible, puis la meilleure réponse à celle-ci, et ainsi de suite…), plus techniquement la méthode dite minimax, échoue au go à cause de l'énorme quantité de coups plausibles, de la durée des parties et de leur complexité croissante (aux échecs, la complexité est - elle - décroissante par diminution du nombre de pièces restantes).
Le nombre de positions légales est estimé à 10 - sur un goban 19×19 (contre environ 10 aux échecs - sur un échiquier 8×8)., tandis que l'arbre du jeu couvre 10 parties plausibles (contre environ 10 aux échecs)Ce nombre, le nombre de Shannon, est lui-même immensément supérieur à celui (1080) des particules de l'univers (voir )..
Histoire
Débuts L'augmentation de la puissance des ordinateurs n'a que très peu d'influence sur le niveau des programmes de go, et le problème du go est souvent considéré comme l'un des grands défis de l'intelligence artificielle.
Le premier tournoi entre machines a été organisé en 1984 par l'entreprise Acorn Computers et est remporté par le programmeur polonais Bronislaw Przybyla.. Les huit programmes respectent les règles (à l'exception dans un cas d'une difficulté durant une bataille de ko) mais jouent .
Contrairement aux programmes de jeu d'échecs qui ont rivalisé avec les meilleurs professionnels dès les années 1990, les programmes de go n'ont commencé à se rapprocher du niveau des joueurs de go professionnels qu'en 2013Victoire du programme Crazy Stone sur le professionnel Ishida Yoshio le 20 mars 2013 (cf. le site de Crazy Stone et l'article de Go Game Guru « Crazy Stone computer Go program defeats Ishida Yoshio 9 dan with 4 stones »).. Auparavant, sur les petits plateaux de taille 9×9, les meilleurs programmes avaient atteint en 2005 le niveau des joueurs amateurs en dan, mais les techniques qui ont permis cette progression ne donnaient que des résultats mitigés sur la taille normale de plateau 19×19, et le niveau en dan est resté hors d'atteinte jusqu'à l'apparition des programmes s'appuyant sur l'algorithme de Monte-Carlo en 2006.
Avant cette date, un joueur moyen était capable de battre les meilleurs programmes et certains bons joueurs, entraînés spécifiquement, les avaient battu avec des handicaps allant jusqu'à 30 pierres, ce qui serait impossible contre un joueur humain, même très peu expérimenté. Ainsi en 1997, Janice Kim, shodan professionnelle ( pro.), battait le programme HandTalk malgré un handicap de 25 pierres puis en 1998, Martin Müller, amateur, battait Many Faces of Go malgré un handicap de 29 pierres.
Sur des goban de petite taille, les calculs sont plus simples à effectuer. En 2002, le jeu sur un goban 5×5 a été résolu par le programme MIGOS (MIni GO Solver) de Erik van der Werf, fruit de l'examen de positions (environ 4 heures sur un P4 ). Sa thèse , Thèse développant la résolution du go sur 5x5. développe plus largement la résolution du go 5×5.
Avancées techniques vignette|Progression du niveau des ordinateurs sur KGS. Une des alternatives majeures à l'utilisation de connaissances et de recherches est l'utilisation des méthodes de Monte-Carlo. Pour cela il suffit de lister les coups possibles et pour chaque coup de jouer des milliers de parties au hasard.. Le coup qui conduit au meilleur résultat pour le joueur courant est supposé le meilleur coup. L'avantage de cette méthode est qu'elle requiert peu de connaissances spécifiques mais l'inconvénient est qu'elle est coûteuse en termes de mémoire et de temps processeur. De plus, parce que les coups utilisés pour l'évaluation sont choisis au hasard, il est possible qu'un coup qui serait excellent sauf pour une réponse spécifique soit de façon erronée choisi comme un bon coup. Le résultat est un programme qui est fort d'un point de vue stratégique mais faible tactiquement. Ce problème peut être compensé en ajoutant de la connaissance à la génération de coup et une plus grande profondeur de recherche avant l'évaluation de Monte-Carlo. Parmi les programmes qui utilisent les techniques de Monte-Carlo se trouvent MoGo., Crazy Stone, Olga and Gobble.
En 2006, une nouvelle technique, upper confidence bounds applied to trees (UCT.), a été développée et utilisée par de nombreux programmes sur 9×9 avec d'excellents résultats. UCT utilise les résultats des play outs joués jusque-là pour guider l'exploration tout en autorisant des séquences alternatives à être explorées. UCT et de nombreuses autres optimisations ont conduit MoGo à être l'un des plus forts programmes produits par un chercheur. Parmi les premières applications avec succès de la méthode UCT sur 19×19 on peut trouver MoGo, CrazyStone, et Mangohttp://www.cs.unimaas.nl/go4go/mango/ . MoGo a gagné l'édition 2007 des Computer Olympiad et gagné un blitz sur trois contre Guo Juan, professionnel, sur le goban 9×9. The Many Faces of Go. a gagné l'édition 2008 des Computer Olympiad après avoir ajouté UCT à ses méthodes classiques de recherche.
En 2008, grâce à une parallélisation efficace, MoGohttps://archive.wikiwix.com/cache/20110224013531/http://www.lri.fr/~teytaud/mogo.html. a gagné une partiehttps://archive.wikiwix.com/cache/20110224013531/http://www.lri.fr/~teytaud/crmogo.en.html. (sur trois) contre Catalin Taranu, professionnel, sur 9×9 avec des temps classiques (30 minutes pour chaque joueur). MoGo tournait sur un cluster fourni par Bull (32 nœuds avec 8 cœurs par nœud, chacun cadencé à ). La machine n'était pas disponible durant l'un des matchs perdus. MoGo a également joué une partie sur 19×19 contre Catalin Taranu et a perdu en dépit d'un avantage de 9 pierres de handicap. Cependant MoGo était en bonne position durant cette partie et a perdu à cause d'un mauvais choix lors d'un ko. La machine utilisée pour cet évènement (l'IAGO challenge, organisé par la société « Recitsproque ») était une bonne machine mais loin des meilleurs standards de l'industrie.
Le MoGo a gagné une partie sur 19×19 face à Kim MyungWan professionnel, avec MoGo ayant un avantage de 9 pierres de handicap. MoGo a gagné (de 0,5 point, mais cette victoire n'est pas si serrée qu'il y parait, le programme jouant la sécurité et perdant des points dès qu'il est certain de gagner). Kim MyungWan a utilisé environ 13 minutes de temps alors que MoGo en a utilisé environ 55, cependant il ne pense pas qu'utiliser plus de temps lui aurait permis de gagner. MoGo fonctionnait depuis les Pays-Bas sur un super ordinateur de 800 nœuds, chacun contenant 4 cœurs tournant à pour produire 15 Téraflops.. MyungWan et MoGo ont joué un total de 4 parties à handicap et limite de temps variable, chacun en gagnant deux. Les enregistrements des parties sont accessibles sur le serveur de go KGS où Mogo a joué sous le pseudonyme MogoTitan.
En 2009, d'autres victoires contre des professionnels à des handicaps plus faibles (par des programmes tels que Crazy Stone) ont eu lieu ; de plus, Zen (programme médaille d'or aux olympiades de 2009) s'est classé de manière consistante entre 1 et 2 dan sur KGS.
Zen, en particulier, a connu ensuite une progression plus lente, mais régulière, l'amenant au début 2012 à un niveau de sur KGS, et même de en parties rapides ; lors d'un match-exhibition contre Takemiya Masaki, il a gagné successivement une partie à 5 pierres de handicap, puis une partie à 4 pierres Détails du match sur le site Gogameguru..
AlphaGo et le deep learning
En , le programme AlphaGo développé par Google DeepMind, combinant plusieurs techniques notamment du deep learning, a franchi une nouvelle étape que les experts pensaient ne pas pouvoir être atteinte avant de nombreuses années A. Levinovitz, The mystery of Go, the ancient game that computers still can’t win. Wired Magazine (2014). : il bat sans handicap Fan Hui, le meilleur joueur européen, professionnel , par le score de cinq victoires à zéro en parties lentes et trois à deux en parties rapidesInterview de Fan Hui à ce sujet..
En , il bat Lee Sedol, joueur , alors considéré comme un des meilleurs joueurs mondiaux, en remportant successivement les trois premières parties, puis la cinquième d'un match en cinq parties. Ce match est suivi en direct sur internet, et qualifié de moment historique.
Les performances d’AlphaGo amènent de nombreux programmeurs à tenter de développer des systèmes analogues ; ainsi, en , une version améliorée de Zen, Deep Zen, réussit à gagner une partie sur trois d’un match à égalité contre Cho ChikunLa revanche de l’humain, sur Science et Avenir, 11 novembre 2016..
Après des améliorations (corrigeant en particulier les faiblesses apparues lors du match contre Lee Sedol), AlphaGo bat, dans des parties rapides non officielles jouées début sur des serveurs chinois, quelques-uns des meilleurs joueurs mondiaux (Ke Jie, Iyama Yuta, Gu Li, etc.) sur le score stupéfiant de 60 victoires à zéro Diagrammes interactifs (mais non commentés) de ces parties. ; durant ce temps, JueYi, un programme chinois utilisant les algorithmes d'AlphaGo, parvient, avec des résultats tout de même un peu plus faibles, à atteindre en le niveau de sur le serveur FoxGo Annonce de cette promotion sur xinwengolife..
Développée en 2017 en n'utilisant aucune connaissance humaine mais uniquement à partir des règles du jeu et par auto-apprentissage, une nouvelle version, AlphaGo Zero, est encore plus compétente que les précédentes ; en , DeepMind en publie une version plus polyvalente encore, AlphaZero, capable de jouer également aux échecs et au shōgi à un niveau supérieur à celui des meilleurs humains ou programmes.
Après 2020, les meilleurs programmes (, Golaxy, etc.), tous développés en s’inspirant des algorithmes d’AlphaGo, rendent de manière consistante deux pierres de handicap aux meilleurs professionnels, ce qui correspondrait à un niveau de dan amateur et de 14 ou dan professionnel ; des programmes plus faibles (mais tout de même de la force des meilleurs professionnels), tels que Leela Zero ou Katago, développés par la communauté des joueurs, tournent sur des ordinateurs personnels et même sur des smartphones, permettant désormais à tous de s’entraîner dans des conditions encore inimaginables en 2018.
Conséquences