Les moteurs de Go - Les jeux gratuits de Rob Robinson

Rechercher
Aller au contenu

Menu principal :

Jeux de réflexion > Grands classiques

Les moteurs de Go


Sur cette page j'ai regroupé des moteurs de réflexion qui, pour être exploités, ont besoin d'être pris en compte par une interface de gestion. Ce ne sont pas des programmes autonomes même si certains, comme Oakfoam, disposent d'une interface sommaire permettant de les utiliser pour jouer, seulement.
Pourquoi multiplier les articles sur les moteurs, alors que nous avons déjà plusieurs bons programmes à affronter ? Pour la même raison que nous ne voulons pas toujours jouer avec le même adversaire humain.  Les moteurs ont des styles de jeu différents. Par ailleurs nous avons besoin aussi d'adversaires plus ou moins fort. Y compris de petits moteurs pour débutants. Affronter Leela Zero, Phoenix Go ou AQ quand on vient de découvrir le jeu peut être très frustrant, car il est s'avérera impossible de les battre, même en leur rognant les ailes.



Avec les moteurs de Go, nous sommes confrontés à un inconvénient qui n'a plus court avec les échecs, par exemple, pour lesquels les nombreux moteurs disponibles s'intègrent beaucoup plus intimement dans les interfaces qui les accueillent. La plupart des réglages fins sont accessibles depuis l'interface elle-même. Par ailleurs ces moteurs sollicitent beaucoup moins les machines que les moteurs de Go, qui nécessitent l'exploration d'arborescences de coups beaucoup plus vastes. Pour les moteurs de Go nous serons amenés souvent à passer des paramètres à l'ancienne, afin de régler les moteurs au mieux des possibilités de nos machines. C'est plus compliqué, plus délicats. Mais j'ai déblayé le terrain pour vous.

En tout nous avons pu prendre en compte et faire fonctionner une quinzaine de moteurs, ce qui commence à faire une belle petite collection de joueurs informatiques, de faible à très très fort.

 
 


GnuGo, Leela et Leela Zero

A bien des points de vue GnuGo est un moteur historique pour le Go. Il a longtemps été le seul moteur libre d'une force un peu conséquente à se mettre sous la dent ; il a été l'un des premiers à utiliser le protocole AGP et à s'incorporer à une interface de travail, GoGui, offrant d'intéressantes performances à l'époque. Bénéficiant d'une intégration poussée, il est toujours le moteur standard d'un grand nombre de programmes: Dariush, PandaGoGl, qGo… En tant que "grand ancien", il a droit à une page dédiée.

Page dédiée
également pour Leela, qui est d'abord un programme vraiment merveilleux pour un gratuit et secondement un moteur très fort, utilisable avec d'autres interfaces, notamment Drago, qui offre des outils d'études manquant à Leela. Pour en savoir plus, consultez le paragraphe "Utilisation indépendante du moteur" de l'article consacré à Leela.

A tout seigneur tout honneur. Leela Zero, le plus puissant moteur de Go à l'exception d'AlphaGo Zero (qui utilise la même technique de Deep Learning à renforcement que le programme de Google) a évidemment lui aussi sa propre page sur le site Robinson Jeux Gratuits. A lire ici.



Oakfoam

Oakfoam est un moteur à routine Monte Carlo développé en Afrique du Sud. Par rapport aux meilleurs moteurs actuels il est en net retrait mais il est open source et disponible pour différentes plates-formes : Windows, Linux et iPad.
Selon les auteurs, sa force est évaluée sur KGS à 5 kyu, pour  goban 19x19. Il est plus fort sur goban 9x9. Donc c'est loin d'être une ½ portion !
Il utilise une petite bibliothèque d'ouvertures, ce qui lui permet de jouer rapidement les premiers coups.
Le moteur dispose d'une interface intégrée très sommaire qui s'affiche dans une page de votre navigateur internet.
Je n'ai pas réussi à associer  le moteur d'Oakfoam à Dariush Go ou à Drago. Par contre il fonctionne très bien avec l'interface de GoGui. A condition de lui faire passer les bons paramètres.
Associer Sabaki est encore plus facile, il suffit de suivre la procédure habituelle.

Téléchargez Oakfoam sur le site officiel : http://oakfoam.com/
Pour la version la plus récente, la 0.2, seul le code source est disponible. J'ai contacté les auteurs, François Van Niekerk, Steve Kroon et Detlef Schmicker, lesquels m'ont précisé que cette version 0.2, qui utilise un réseau neuronal, n'a jamais été testée pour Windows. Dommage ! Elle doit être sensiblement plus puissante que la version  0.13, de 2012, qui est proposée sous forme de programmes exécutables pour Windows et Linux (32 et 64 bits). Mais nous ne manquons pas à présent de moteur très forts utilisant un réseau neuronal.

Téléchargez la version zip plutôt que la version avec installateur. Décompressez l'archive et copiez le dossier où vous voulez sur votre ordinateur.

Utilisation avec l'interface interne

Collez sur votre bureau un raccourci vers le fichier "run.bat", ouvrez votre navigateur Internet par défaut et lancez ce programme. L'interface s'ouvre dans une page Web. Si vous recevez un message d'erreur, actualisez la page.
L'interface est très simple d'aspect et tout autant fonctionnellement. Il est possible d'annuler n coups et de demander à Oakfoam de jouer à votre place - une suggestion de coup, en somme.
Ouvrez d'abord le "Settings" (l'icône du bas) et choisissez la taille du goban, le komi, la couleur du jeu machine et indiquez dans le champs "Engine Threads" le nombre de coeurs de votre processeur : 1, 2, 4, etc.
Enfin, allongez si nécessaire le temps de réflexion maximum du jeu machine, avec "Time/Move". Par défaut il est réglé sur 5 secondes. Si vous le portez à 10, vous augmenterez la force du programme.

Attention : toutes ces variables reviennent à leur état initial dès que vous relancez Oakfoam. Si vous voulez conserver vos réglages il faut éditer le fichier "web.gtp", qui se trouve dans le dossier du moteur. C'est un fichier texte. Ouvrez-le avec le bloc note de Windows. Il contient par défaut : "param playouts_per_move 10000000param time_move_max 5.00param rules_all_stones_alive 0"

Pas très lisible ! Commencez par aller à la ligne entre chaque paramètre. Ce qui donne :
param playouts_per_move 10000000 (nombre d'explorations Monte Carlo maximum pour un coup. Plus le nombre est élevé, plus le programme à des chances de trouver une meilleure série)
param time_move_max 5.00 (temps maximum de réflexion; par défaut 5 secondes)
param rules_all_stones_alive 0 (laisser comme ça)
Rajouter :
thread_count n (n étant le nombre de coeurs de votre ordinateur), si vous utilisez le programme sur une machine comportant plus d'un coeur.

Enregistrez, fermez. Vous pouvez revenir quand vous voulez pour modifier ces paramètres, ou éventuellement en rajouter d'autres (les principaux sont listés ici :

https://bitbucket.org/francoisvn/oakfoam/wiki/Parameters).

Vous pourriez avoir besoin de réduire la puissance du moteur. Le plus simple est de réduire son temps de réflexion. Comme j'ai pu le constater, ce paramètre prime sur le nombre maxi d'explorations.
Ou bien vous êtes un très fort joueur et vous préféreriez qu'Oakfoam joue mieux en prenant plus de temps. Dans ce cas augmentez le nombre d'explorations et le temps de réflexion.

Utilisation avec GoGui


GoGui est une des plus anciennes interfaces de Go. Elle est assez sommaire mais elle permet de faire tourner quelques bons moteurs rebelles aux autres interfaces. Je l'ai trouvé dans sa version la plus récente, très bien francisée, associée à deux moteurs historiques, Amigo Gtp et Fuego.

Téléchargez Amigo et installez-le sur votre ordinateur. Vous le trouverez ici :

https://sourceforge.net/projects/amigogtp/


Puis téléchargez l'archive du moteur de Fuego, ici, et copiez le dossier qu'elle contient dans le dossier d'Amigo. Enfin, lancez GuiGo depuis le raccourci Amigo que l'installateur a copié sur votre bureau.
Pour l'instant, seul Amigo gtp est pris en compte. Son nom s'affiche d'ailleurs en haut à gauche de l'interface. Nous allons maintenant faire accepter Fuego, à GoGui. Amigo est sympathique pour les joueurs débutants mais Fuego, l'un des premiers moteurs gratuits à incorporer une routine MC, est bien plus costaud. Voici la méthode :

1/ Ouvrez le menu "Programme", "nouveau programme...". Une fenêtre s'ouvre. Dans le champs "Commande" il est possible de passer certains paramètres mais Fuego n'en a pas besoin. Cliquez sur le bouton à droite pour ouvrir une fenêtre d'exploration. Allez dans le dossier de Fuego et cliquez sur le fichier "fuego.exe".
2/ dans le champs "Répertoire de travail", indiquez le chemin du dossier de Fuego en recopiant les caractères du champ au dessus (Ctrl + c). Validez le récapitulatif. Amigo est installé. Si vous voulez l'utiliser, menu "Programme", "Attacher" et choisissez Fuego.

Installons maintenant Oakfoam comme nous venons de le faire avec Fuego. Ensuite attachez-le pour en faire le moteur actif. Vérifiez que son nom s'affiche bien en haut à gauche de l'interface.

Maintenant, il reste un petit problème à résoudre : si vous ne passez pas certains paramètres à GoGui, Oakfoam ne tournera pas de manière optimale. Je peux vous dire que j'ai passé un bout de temps pour découvrir comment faire. GoGui a pratiquement disparu du net et je n'avais guère plus que le fichier d'aide en anglais et surtout très peu explicite de GoGui.
En fait c'est très simple : il suffit d'ouvrir le menu "Outils" et de sélectionner "Envoyer le fichier". Une fenêtre d'explorateur s'ouvre. Utilisez là pour charger le fichier "Web.gtp", qui se trouve dans le dossier d'Oakfoam. Le même fichier de configuration que nous avons utilisé déjà avec l'interface intégrée du moteur.
Si une commande est mal écrite, GoGui vous le dira. Vous pouvez vérifier que les paramètres sont bien passés en ouvrant la console GTP du menu "Outils". Descendez au bas du document : vos nouveaux paramètres devraient s'y trouver.

Utilisation avec Sabaki

L'installation d'Oakfoam avec Sabaki est très simple. Il suffit d'ajouter un nouveau moteur : menu "Engines", "Manage engines" et "Add". Nommez-le, et liez Sabaki à l'exécutable "oakfoam.exe". Il est inutile de passer des paramètres. Sabaki utilise le fichier de configuration d'Oakfoam. Notamment la bibliothèque d'ouvertures est bien chargée.




Une bibliothèque d'ouvertures plus conséquente?

La bibliothèque d'ouvertures, qui est celle qui est fournie avec le moteur Fuego, est assez maigrichonne. Vous pourrez la remplacer par celle-ci, qui comporte environ 85.000 séquences. Pour l'utiliser, renommez l'ancienne bibliothèque (par exemple "xbook.dat"  - vous voudrez peut-être la récupérer) et copiez la nouvelle dans le dossier du moteur. Il y a deux inconvénients : à chaque lancement d'Oakfoam, l'initialisation de cette grosse bibliothèque prend un temps assez long. Par ailleurs son exploration par le moteur prend aussi plus de temps. Si vous avez une machine peu puissante, au lieu de gagner du temps, vous en perdrez. Dans ce cas, revenir à l'ancienne bibliothèque.
Solution intermédiaire : chargez cette seconde bibliothèque, qui ne comporte que 28.000 séquences. Idem pour son installation.

Ce que j'en pense ?

J'aime bien ce moteur, sérieux, puissant mais pas trop, très véloce et dont on peut facilement régler la force pour l'adapter à son propre niveau. Il m'a servi de banc d'essai pour apprendre à utiliser GoGui et Sabaki. Et même Drago malgré mon échec.
Il sera un adversaire idéal du joueur débutant avancé au joueur amateur de bon niveau. Une bonne alternative à GnuGo.  




MoGo release 3

MoGo a été en son temps une grande vedette. Développé par une équipe de français (un doctorant de l'Inria, Sylvain Gelly, et Yizao Wang, un ancien joueur de Go, du centre de mathématiques appliqué de l'école Polytechnique) il utilisait un utilisait un algorithme Monte Carlo amélioré. En 2007, il était vraiment révolutionnaire et très fort en comparaison avec les moteurs existants, assez médiocres. MoGo était très bon sur goban 9x9, atteignant pour la première fois le niveau dan. Ses performances chutaient toutefois fortement avec l'augmentation de la taille du goban. Sur 19x19 son niveau n'était plus que de 4-3 kuy. Problème classique des moteurs de Go : la méthode Monte Carlo est bonne mais l'exploration de l'arborescence prend beaucoup de temps et devient prohibitive sur goban de grande taille.  

Concernant sa manière de jouer, MoGo à la réputation d'avoir un jeu défensif et peu agressif.  Il ne cherche pas à écraser son adversaire mais à finir la partie avec 0,5 points d'avance. En terme de football, on dirait qu'il bétonne, cherchant à assurer la partie en jouant dans son territoire et en ne retenant un coup que lorsqu'il considère qu'il lui permettra d'augmenter la probabilité de gagner la partie.

Techniquement, MoGo utilise une fonction d'évaluation Monte Carlo améliorée pour laquelle les branches sélectionnés ne sont pas choisies au hasard. Le moteur ne choisira un coup que s'il correspond à une des patterns 3x3 ou 2x3 sur les bords, qui ont été préalablement sélectionnées. Cette innovation s'est révélée très fructueuse.
Pour l'exploration de l'arbre, MoGo utilise par ailleurs un nouvel algorithme, l'UCT, qui permettait d'augmenter fortement les chances de sélectionner les branches les plus prometteuses.
Ce moteur a longtemps évolué de concert avec un autre moteur célèbre, celui de Crazy Stones, un jeu commercial. Les équipes de développement se connaissaient, échangeaient, et leurs techniques étaient très proches. MoGo a depuis cessé d'évoluer et Crazy Stones à creusé l'écart, grâce à l'incorporation de techniques de deep learning. MoGo reste cependant un bon moteur pour joueurs de Go avertis.

Windows délaissé

Malheureusement pour nous, L'adaptation de MoGo à Windows n'a jamais été la priorité des auteurs. L'Os de Microsoft n'a jamais eu les honneurs de la dernière version - c'est le privilège de Linux. De sorte que nous devrons nous contenter de la release 3. Laquelle n'a jamais été vraiment optimisée et reste sensiblement plus lente que la version Linux. Vous trouverez cette version 3 pour Windows ici :
http://www.godrago.net/Engines.htm

Paramétrage

Mogo nécessite certains paramètres pour être utilisé efficacement. Les principaux paramètres gtp le concernant sont les suivants :
--x (x étant la largeur du goban : 9, 13 ou 19. Ce paramètre n'est pas toujours indispensable. Gogui et Sabaki par exemple, n'en ont pas besoin).
--dontdisplay 1 (désactive les sorties. Je ne détaille pas mais mettez-le)
--nbThreads x (nombre de coeurs à prendre en charge. Indiquez ici le nombre de coeurs de votre ordi : 1,2, 4 ou  8 (pas au delà)
--pondering 1 (MoGo continue à réfléchir pendant que vous même réfléchissez. Il est évident que ce paramètre accroît sensiblement la force de Mogo).
--time x (x = le temps maximum en secondes dévolue à Mogo pour jouer un coup).
--totalTime xx (xx = total du temps imparti à Mogo pour toute la partie. Exemple pour une heure : --time 3600. Important : ne pas utiliser ce paramètre conjointement avec --time x. C'est l'un ou l'autre).

Attention : Mogo joue avec les règles chinoises seulement ! Si vous sélectionnez les règles japonaises il jouera quand même mais le calcul des points sera faux.


Installations sur GoGui, Drago, Dariush et Sabaki

GoGui : installez le moteur de la façon habituelle. Aucun paramètre n'est indispensable mais si voulez optimiser Mogo, ajoutez des paramètres dans le champ "Commandes", après l'adresse du moteur, soit à l'installation du moteur, soit plus tard, depuis le mode édition (menu "Programme", "Editer les programmes", "Editer").



Dariush : --x indispensable.

Sabaki : entrez les paramètres dans le  champs "Arguments".  Il est indispensable d'utiliser le paramètre "--x". J'ai noté cependant qu'on ne peut utiliser que "--9" ou "--19". Les autres tailles de goban ne sont pas prises en compte.
J'ai noté une certaine instabilité de Mogo avec Sabaki. Parfois Mogo avait du mal à démarrer et plantait Sabaki.  Par ailleurs, Mogo refuse de jouer avec les noirs, donc de démarrer la partie. Il tourne en rond sans rien faire. Avec les blancs, tout va bien. Peut-être un effet de mon propre matériel? Vous me direz.



Drago : cette interface a déjà des paramètres prédéfinis pour Mogo. Par défaut il sélectionne:
"--19" et "--dontdisplay 1".
J'ai remarqué qu'il joue normalement sur goban 9x9, mais laissez quand même le paramètre "--19". Il ne mange pas de pain.
Vous pourrez toujours ajouter d'autres paramètres : menu "Options", "options des moteurs de jeu" et cherchez le moteur dans la liste. Puis entrez les paramètres dans le champs "paramètres".
L'intérêt concernant Drago est que Mogo est le seul moteur fort qui peut vous servir pour la suggestion de coup. Leela et AQ n'offrent pas cette possibilité et Phoenix ne fonctionne pas avec Drago. Du coup, évitez de restreinte trop son temps de réflexion. Quitte à vous voir suggéré un bon coup, autant qu'il soit le meilleur possible. Suggestion : "--time 20". Ou pas de "--time x" du tout. Dans ce cas il prendra aussi bien 30 ou 40 secondes selon les coups. Mais vous aurez une meilleure évaluation.

Ce que j'en pense ?

Aujourd'hui, MoGo est dépassé par les évolutions actuelles. Il reste cependant un excellent moteur pour une grande majorité de joueurs, y compris des joueurs de Go avertis, qui n'ont pas besoin d'un adversaire imbattable mais au contraire d'un adversaire qu'ils peuvent espérer gagner un jour. J'ajouterai que comme la plupart des moteurs de Go, pour lesquelles les fonctions d'évaluations sont beaucoup plus sollicités que pour les échecs, les dames ou Othello, la puissance des machines est un critère majeur. Or, nos machines de 2019 sont beaucoup plus puissantes que celle de 2007. Logiquement, Mogo devrait donc être sensiblement meilleur aujourd'hui pour un utilisateur lambda. Il est aussi particulièrement utile comme conseil de coup avec l'interface Drago.
Il reste donc une référence dans le domaine du Go libre et gratuit.




Phoenix Go (ou BensonDarr)

Ce moteur très fort s'inspire comme Leela des techniques inaugurées par AlphaGo. Autrement dit, il dispose d'un réseau neuronal à apprentissage profond. Il reprend également l'astuce de Leela qui consiste à confier le travail du réseau neuronal à une carte graphique - à condition toutefois que ce soit une Nvidia GeForce. Et il faudra installer sur l'ordinateur un utilitaire Nvidia appelé Cuda.
Si vous n'avez pas une carte Nvidia, vous devrez vous rabattre sur une version dite "CPU", moins performante. Pas de chance pour moi, j'ai une ATI Radeon !
Par ailleurs Phoenix Go ne fonctionne que sur les systèmes 64 bits.

Téléchargement :
https://github.com/Tencent/PhoenixGo/releases
Il y a plusieurs versions : Windows GPU normal, Windows GPU avec Cuda, Windows CPU seulement, Mac CPU seulement.

Attention : il faut aussi charger le fichier de poids (Weights), qui se trouve au bas de cette même page. Actuellement il se nomme : "trained-network-20b-v1", mais ce nom est susceptible de changer dans le temps.
Téléchargez cette grosse archive, le "cerveau neuronal" de Phoenix, et copiez-le tel quel à la racine du répertoire du moteur.

Phoenix Go et Sabaki

Phoenix Go est prévu pour s'interfacer avec Sabaki. Il ne m'a pas été possible de le faire fonctionner ni avec GoGui, ni avec Drago, ni avec Dariush.

Procédure :
1/ Si ce n'est pas déjà fait copiez votre fichier de poids à la racine du répertoire de Phoenix Go. Copiez le nom de ce fichier, extension compris, et conservez-le quelque part
1/ lier l'interface au fichier "star.bat" - et non à "mcts_main.exe"
2/ Dans le champs "Arguments" de Sabaki, copiez les paramètres suivants :
-g (activation mode gtp)
-t x (x étant le nombre de coeurs de votre machine: 1,2, 4, 8…)
-p 500000 (paramètre d'exploration playouts. Peut-être augmenté ou diminué pour augmenter ou diminuer la force de Phoenix. Attention : il faut que --noponder soit activé pour utiliser playouts)
--noponder (si vous souhaitez désactiver la réflexion de Phoenix Go pendant que vous même réfléchissez à un coup - ou si vous voulez utiliser le paramètre -p)
-w trained-network-20b-v1.tar.gz ("trained-network-20b-v1.tar.gz" étant le nom de mon fichier de poids). Ici vous devez rajouter le nom de votre propre fichier.
PS : vous pourrez trouver des fichiers de poids alternatifs à celui proposé avec le moteur. Vous trouverez par exemple PhoenixGo_v1.txt à cette adresse :
https://github.com/Tencent/PhoenixGo/issues/35
Si vous l'utilisez le bon paramètre deviendra :
-w PhoenixGo_v1.txt à (il faudra bien sûr l'avoir collé à la racine du moteur).



Il est possible de restreindre le temps de réflexion de Phoenix Go. Dans le champ "Initial commands", collez "time_settings 0 10 1;" (ne pas oublier le ";" si vous collez un paramètre derrière celui-ci).  Ce paramètre règle la durée de réflexion de Phoenix Go. Le 10 correspond ici à 10 secondes. Si vous mettez 5 à la place de 10, Phoenix réfléchira deux fois moins longtemps. Si vous mettez 20 il réfléchira 20 secondes.

A noter : comme AQ, Phoenix Go ne joue que sur le goban 19x19. Si vous essayez le 9x9, il démarrera mais s'arrêtera en prétextant qu'il ne veut pas du komi. Concernant le komi il est très exigeant : sur un goban 19x19 il ne veut que la valeur 7,5. Pas souple !

Ce que j'en pense ?

Les très forts joueurs seront heureux d'avoir un autre adversaire que Leela à affronter. Néanmoins ce moteur est beaucoup moins souple d'utilisation que Leela. Il n'en reste pas moins que les moteurs de cette classe sont rares, parmis les moteurs non-commerciaux et que sa place ici est tout à fait justifiée.




AQ

AQ est un moteur de Go de la dernière génération, comparable à Leela et à Phoenix, donc doté d'un réseau neuronal à apprentissage profond. C'est l'un des meilleurs moteurs actuels.
Comme Phoenix il peut utiliser les capacités des seules cartes graphiques Nvidia GeForce. Si vous n'avez pas de GeForce il faudra vous contenter de la version AQ-Mini, ou AQ "CPU", moins puissante.  
Il ne fonctionne que sur les systèmes 64 bits et sur les OS à partir de Windows 7.
Autre restriction : il ne joue que sur goban 19x19 !

Téléchargez le programme sur GitHub :
https://github.com/ymgaq/AQ/releases


Installation avec GoGui, Drago et Sabaki

GoGui : l'installation avec GoGui se fait de façon standard. Le programme est reconnu et fonctionne très bien, avec les paramètres standards, stockés dans le fichier "aq_config.txt". Tel quel AQ est déjà très fort. Pour améliorer les performances du moteur, les auteurs proposent de modifier ces deux  paramètres :
-main time[sec] =900  
-byoyomi[sec] =0

Pour les changer, vous devez d'abord les inscrire dans le fichier "aq_config.txt", qui se trouve dans le dossier du moteur. Ouvrez-le avec le bloc note de Windows, repérez les paramètres à changer et entrez les nouvelles valeurs.
Vérifiez également que le bon nombre de coeurs (-thread count = x) de votre ordinateur est inscrit. Par défaut x est à 2 sur la version mini et 4 sur la version GPU.  Si ça ne correspond pas pour vous, changez la valeur (1, si votre ordinateur n'a qu'un seul processeur).
Notez que vous pouvez aussi changer la valeur du komi.
Sauvegardez, fermez.
Lancer GoGui, attachez AQ pour l'utiliser.  
Pour Drago et Sabaki, procédez de façon standard. Editez si nécessaire le fichier "aq_config.txt"





Pachi 11 & 12

Pachi est un autre moteur puissant dont la force et les techniques de programmation sont proches de celles de Mogo. Initialement, il utilisait comme lui une routine Monte Carlo associée à une exploration d'arborescence UCT1. Toutefois Pachi à continué à évoluer et les dernières versions recourent également à un réseau neuronal dit "DCNN", qui augmente encore sa force. Pour les versions 10 et 11, la configuration par défaut excluait le réseau neuronal. Par contre il est utilisé en standard sur la version 12.
Sur goban 9x9 le moteur atteint le niveau de 7 dan sur KGS. Sa force se maintiendrait encore à 2 dan sur goban 19x19, mais avec une machine ultra-puissante, sans DCNN, ou avec une machine standard avec DCNN. Il est donc théoriquement passé nettement devant Mogo à présent.

Pachi version 12

La version 12 de Pachi a été mise en circulation très récemment, en novembre 2018. Vous la trouverez à cette adresse : https://github.com/pasky/pachi/releases

L'archive "pachi-12.20-extras.zip" contient les versions Windows pour 32 et 64 bits avec toute une série d'extras qui transforment le moteur en bête à concours : bibliothèque d'ouvertures (fichier "opening.dat"), bibliothèque de motifs (fichiers "patterns_mm.gamma" et "patterns_mm.spat"), fichier joseki ("joseki19.gtp") et enfin les fichiers du réseau neuronal ("olast19.prototxt" et "golast.trained").
L'archive "pachi-12.20-win.zip" ne contient que les exécutables pour windows 32 et 64 bits, sans les bibliothèques.

Installation avec les interfaces

Préférez bien sur l'installation avec extras. Copiez le dossier de Pachi quelque part, dans celui de Sabaki par exemple, et exécutez d'abord le fichier "pachi.bat". Vérifiez que toutes les bibliothèques sont bien chargées et sans erreur.

Sabaki : aucun problème. Aucun paramètre n'est indispensable. Indiquez seulement le chemin vers "pachi_x64.exe" (ordi 64 bits) ou pachi.exe (ordi 32 bits). Pachi fonctionne vite et bien.
GoGui : idem.
Drago : idem. La pré-configuration pour Pachi continue à fonctionner avec la nouvelle version.  


Pachi version 11 "Retsugen"

On peut avoir intérêt à jouer contre la version 11 de Pachi, dite "Restsugen", mise à disposition en 2015 et qui a fait ses preuves. Elle reste un adversaire de choix pour les joueurs moyens. Vous pourrez la télécharger ici :
http://pachi.or.cz/
Son installation avec les interfaces GoGui, Drago et Sabaki est standard. Il suffit d'indiquer le chemin du programme. Pour Drago, Pachi fait partie de la liste des moteurs préprogrammés (par défaut la configuration standard ne passe qu'un seul paramètre : -d 0. Conservez-le si vous ne comptez pas faire avaler des bibliothèques au moteur - car dans ce cas mieux vaut utiliser Pachi 12).

Ce que j'en pense ?

Très bon moteur, facile à installer et sans problème, qui doit faire partie de la collection d'adversaires informatiques de tout bon joueur de Go, en version 11 et en version 12.




Fuego

Fuego est un moteur de Go sous licence libre Gnu développé par le groupe computer Go de l'université d'Alberta et utilisant une routine Monte Carlo.  Il n'a jamais été vraiment une bête à concours et se situe dans le groupe des programmes de force moyenne avec MoGo r3, Patchi Restsugen et Oakfoam.

Téléchargement

On trouve a cette adresse (https://sourceforge.net/projects/fuego/) le moteur Fuego encapsulé dans l'interface de gestion GoGui. Lancez l'exécutable et installez-le où vous voulez. Il sera pré-installé dans la dernière version disponible et en français de GoGui. Cette interface est néanmoins assez sommaire.
Vous pouvez aussi télécharger sur mon site le moteur seul, que vous incorporerez à des interfaces plus sophistiquée comme Drago ou Sabaki.

Fuego utilise une configuration par défaut raisonnable, adaptée à la majorité des machines récentes standards, à deux ou quatre coeurs. Vous pourriez avoir intérêt à le configurer plus finement dans le cas où vous utiliseriez une machine poussive ou inversement une machine puissante et généreusement dotée en mémoire ram. Voici les principaux paramètres utiles :

uct_param_search number_threads x (x= nombre de coeur de votre ordinateur)
uct_param_search lock_free x (multithreading sans verrouillage. Si vous avez une machine à 4 coeurs et des processeurs récents, x = 1. Machine de bureautique à deux coeurs et 4 Go de ram, vieille machine, portable poussif ? x = 0
uct_max_memory x (mémoire maximale utilisable pour la recherche, en octets. Le principe approximatif est de fixer ce plafond à la moitié de votre ram totale. Donc si vous avez 4 go, x = 2000000000. 2 Go : x = 1000000000. 8 Go : x = 4000000000)
Si votre ordinateur est lent et peu puissant - cas typique, un portable d'entrée de gamme - la force de Fuego chutera beaucoup si vous lui imposez un temps imparti ou prendra beaucoup de temps pour réfléchir  si le temps n'est pas limité. Il y a un moyen de redonner à Fuego un regain de puissance : le forcer à réfléchir pendant que vous même réfléchissez à votre propre coup.Pour cela, il suffit d'utiliser les deux paramètres suivants :  
uct_param_player ponder 1
uct_param_player reuse_subtree 1
Si vous n'en avez pas besoin, ne les employez pas. Par défaut ils sont à zéro, donc désactivés.

Travaux pratiques : téléchargez ce fichier "configfile.txt", ouvrez-le. Il contient les paramètres vus ci-dessus. Adaptez-les  à votre machine. Sauvegardez dans le dossier du moteur.
Ensuite, il faut que vous forciez l'interface à utiliser ce fichier de configuration.
Pour GoGui, installez le moteur comme d'habitude, attachez-le puis menu "outils", "Envoyer le fichier..." et téléchargez le fichier configfile.
Pour Sabaki, installez le moteur comme d'habitude. Puis menu "Engines", "Manage engines" et copiez "--config configfile.txt" dans le champ "Arguments"
Pour Drago, installez le moteur comme d'habitude. Vous n'avez rien d'autre à faire. L'interface va charger le fichier configfile sans rien vous demander.

Fuego utilisait une petite bibliothèque d'ouvertures que vous reconnaitrez dans le dossier du moteur au nom "book.dat". Vous pouvez la remplacer par une bibliothèque plus fournie en utilisant l'une de celles que je propose pour Oakfoam. Reportez-vous à l'article sur ce moteur.

En résumé : un autre moteur intéressant pour joueurs moyens.




Aya Go

Aya Go, programme de force très moyenne, peut-être utilisé comme moteur avec Drago et Sabaki. Voir l'article "Autres programmes de Go".
C'est un bon adversaire pour débutants et débutants avancés.



Dariush gtp

Dariush gtp est un moteur assez ancien qui a été développé par les auteurs de Dariush Go (voir l'article consacré à Dariush Go et Dariush go 3d). Mais seul Dariush 3d utilise ce moteur, dont les méthodes (algorithme d'élagage alpha-bêta principal, une fonction d'évaluation des positions et un algorithme alpha-beta secondaire) ne lui offrent qu'un niveau de force très moyen. Il sera néanmoins un adversaire intéressant pour débutants, débutants avancés et débutants confirmés.
Fonctionne avec GoGui, Drago, Sabaki et bien sûr Dariush Go.
Avec Gogui, installation standard, aucun paramètres.
Avec Sabaki,  installation standard et mettez dans le champs "Arguments" les paramètres "--level 7 --chinese-rules"
Avec Drago, utilisez le fichier de préconfiguration Dariush.



Go169

Go169 est un moteur de go assez faible, parfait pour les joueurs débutants. Il s'installe facilement avec toutes les interfaces et ne nécessite aucun paramètre. Vous le trouverez à cette adresse :
http://users.ics.aalto.fi/praiko/go169/
Ne téléchargez pas la version pour Palm Os !
L'installation avec GoGui, Dariush et Sabati est standard. Pour Drago, utilisez la préconfiguration Go169




Amigo Gtp

AmiGo est l'un des plus vieux programmes de Go. La première version, développée en Pascal en 1983, a été portée sur C et mis en service en 1989 sur Commodore Amiga.
La version Gtp la plus récente est plus forte mais reste faible pour un programme de Go. Avantage : il joue très très vite. A réserver aux joueurs débutants.

Téléchargement : " class="imCssLink">https://sourceforge.net/projects/amigogtp/



Iomrascalai

Un petit moteur pour débutants, qui s'incorpore facilement à toutes les interfaces : Drago, GoGui, Dariush, Sabaki...
Je lui ai fait jouer 4 parties contre Amigo Gtp sur goban 9x9. Il a perdu 3 parties et a gagné une, un peu difficilement. Il paraît donc un peu moins fort qu'Amigo, moteur déjà faible.

Vous téléchargerez Iomrascalai sur le site GitHub à cette adresse :
https://github.com/ujh/iomrascalai/releases
Notez qu'il est disponible en trois versions : Windows, Mac Os, et Linux.

Aucun paramètre n'est indispensable pour installer Iomrascalai avec les programmes cités ci-dessus. Suivre la procédure habituelle et ça marchera.




Brown

Si vous êtes grand débutant au Go c'est celui que vous devez utiliser en premier. Il est vraiment très mauvais joueur et vous devriez le battre assez facilement. Il s'installe de façon standard, sans avoir besoin de paramètres, et fonctionne avec toutes les interfaces.
Vous trouverez à la télécharger sur ces deux pages, en version 1.0
https://senseis.xmp.net/?ComputerGoServer
http://www.lysator.liu.se/~gunnar/gtp/
Cherchez Brown dans la page, il est un peu caché, ce n'est pas une vedette !

J'ai volontairement ignoré un ou deux moteurs aussi mauvais que Brown, qui suffit  largement dans le genre idiotbot.

Pour finir un récapitulatif de la force de tous les moteurs et de tous les programmes actuellement testés ou en cours de test pour Robinson Jeux gratuits.


Remarque : ce tableau est indicatif. Évaluer de façon  objective la force des moteurs de jeu est très difficile. Il faudrait placer tous les programmes dans les mêmes conditions de réglage et les faire jouer les uns contre les autres un certain nombre de parties, une seule confrontation ne suffisant évidemment pas. J'ai plutôt créé des groupes de force à l'intérieur desquels l'ordre importe peu. Je ne saurais vous dire si Patchi 11 et plus fort ou moins fort que MoGo Release 3 mais ce dont je suis sûr c'est qu'ils sont de force à peu près comparable. Avec ces réserves, je pense que mon tableau est juste. Du moins il l'est en ce moment, début 2019.


Rob Rob février 2019

 




 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();