par Matrok » 28 Mars 2009, 01:05
J'y connais pas grand chose en IA, je risque donc d'écrire des bêtises. J'ai bien lu des choses concernant Mogo, et j'avais aussi à une époque où je faisais un peu de programmation jeté un coup d'oeil au code source de Gnugo, mais j'en ai une compréhension un peu superficielle et probablement fausse...
Si j'ai bien compris, à chaque fois que c'est son tour de jouer, Mogo regarde tous les coups qui s'offrent à lui et pour chacun, il simule une suite aléatoire de réponses jusqu'au bout de la partie, enfin il choisit de jouer un de ceux où il a vu une victoire au bout, et s'il n'a vu que des défaites il abandonne. Quand il a assez de temps ou de puissance de calcul pour faire plus que ça, je ne sais pas ce qu'il fait, j'imagine qu'il doit faire pareil mais sur deux coups voire trois.
C'est très différent du calcul "brut" utilisé pour les logiciels d'échecs ou d'Othello. Ces derniers possèdent un catalogue d'ouvertures pour démarrer bien fort, puis quand ils sortent des parties connues, ils calculent en fait tous les coups possibles jusqu'à un certain point (voir jusqu'au bout de la partie) et choisissent celui qui donne le meilleur résultat à ce point d'après un certain nombre de critères. Ce calcul brut est totalement inefficace au go car il y a trop de possibilités à chaque fois, trop de coups à calculer.
C'est différent aussi de ce que faisait Gnugo, qui en gros tentait d'imiter le raisonnement d'un joueur de go humain. Si on regardait le code, on y voyait apparaître des procédures relatives à des points essentiels de stratégie et de tactique, comme les notions de jôseki et de fuseki (c'est en gros l'équivalent des ouvertures aux échecs), de territoire potentiel, d'influence, de formes élémentaires, etc...