Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Abalone online, le blog d'abalone en ligne

Programmation du jeu d'abalone

13 Septembre 2014 , Rédigé par abalone

Avertissement : l'article ci-dessous a été, à quelques modifications près, éhontément copié sur un site que je ne nommerai pas, puisque ledit site ne dit mot sur MiGs, et a toujours refusé de donner le lien vers MiGs.

 

 


 

 

Programmation du jeu d’Abalone

 

Créer un programme qui joue à Abalone présente un certain nombre de difficultés :

  • il n’existe quasiment aucune information théorique sur le jeu ;
  • les joueurs forts sont rares ;
  • le nombre de coups possibles, dans une position donnée, peut atteindre 148, c’est supérieur au nombre de coups possibles aux échecs. Sans atteindre la complexité combinatoire du jeu de go ou du jeu d’échecs, le nombre de coups possibles est suffisamment élevé pour mettre à mal les algorithmes de force brute habituels.
  • le fait que le but du jeu soit progressif (éjection boule après boule) rend difficile la définition d’une fonction d’évaluation continue dans la mise en œuvre de l’algorithme alpha-beta, les programmes pouvant hésiter entre l’éjection d’une bille et un avantage positionnel, ou avoir tendance, comme les débutants, à éjecter des boules le plus tôt possible dans la partie.  
  • 

Concepts mis en oeuvre par les programmes :

 

Les premiers programmes jouant à Abalone utilisaient essentiellement dans leur évaluation des positions les concepts suivants :

  • connectivité (cohésion des groupes de billes) ;
  • nombre de billes de chaque joueur ;
  • une valeur théorique de la position des billes (les bords sont désavantageux, le centre est crucial).

Les programmes les plus récents qui jouent à Abalone mettent en œuvre un ou plusieurs des concepts suivants dans l’évaluation d’une position :

  • nombre de sumitos possible, et type de sumitos comme leur influence sur le centre ou pas, la poussée vers le bord (l’idée nouvelle de MLA dans ce domaine) ;
  • nombre de menaces d’éjections de billes ;
  • évaluation géométrique de la position (l’idée nouvelle d’Aba-Pro dans ce domaine, l’utilisation du centre de masse respectif des groupes de billes de chaque joueur) ;
  • la phase du jeu en cours et le type de position (ouverture, milieu de jeu, fin de partie, position type standard, gros avantage positionnel pour l’un des camps, etc.) ;
  • nombre de groupes de billes, nombre de billes par groupe (utilisé, notamment, par Nacre).
  • 
Programmes qui jouent à Abalone :
Les trois meilleurs programmes d’Abalone étaient en 2006 : MLA, Aba-Pro et Nacre. Ces trois programmes sont issus des travaux de recherche fondamentale dans le domaine de la théorie des jeux effectués par leur auteurs.
  • My Lovely Abalone (MLA), conçu par David Malek (France) : son développement a débuté fin 2003, MLA n’est parvenu à battre Aba-Pro que fin 2005. MLA, au début de son développement intégrait une évaluation de la position très similaire à Aba-Pro. MLA a battu Aba-Pro en réfutant l’évaluation de dangerosité de la position de Aba-Pro, en intégrant le dynamisme d’une position au travers de l’utilisation du nombre de sumitos comme critère complémentaire. La disponibilité d’Aba-Pro pour tester MLA a été cruciale, les programmeurs de MLA ont pu ainsi utiliser certaines des faiblesses d’Aba-Pro pour le vaincre.
  • Aba-Pro, conçu par Tino Werner (Autriche) : sans conteste la première avancée significative dans le domaine. Redoutable programme, meilleur du monde de 2002 à 2005. Aba-Pro est remarquable par sa maîtrise de la combinatoire (le programme choisit ou non d’explorer les coups suivants en fonction d’une évaluation de la dangerosité de la position) et sa fonction d’évaluation (par utilisation d’une combinaison des centres de masse des groupes de billes des adversaires). Aba-Pro intègre également la prise en compte des phases de jeu (ouverture, milieu de jeu, fin de partie). Aba-Pro repose sur la maîtrise de la théorie des graphes, et d’heuristiques spécifiques au jeu d’Abalone. Aba-Pro était le sujet de thèse de ses auteurs à l’Institut de génie logiciel de l’Université Technologique de Graz (Autriche).
  • Nacre, conçu par Peer Sommerlund (Danemark) : un programme fort, opposant malheureux d’Aba-Pro en 2003. Nacre utilisait, en 2003, un réseau de neurones, domaine de connaissance où Nacre a au moins égalé l’état de l’art.

Ce classement est établi selon la blitz ladder list officielle des programmeurs d’Abalone publiée sur le groupe Yahoo de programmation du jeu d’Abalone (la ladder list consiste à estimer la valeur de moteurs en leur donnant une seconde par coup).

 

Aba-Pro et Nacre se sont, de plus, rencontrés plusieurs fois et Aba-Pro a triomphé. MLA a été reconnu meilleur par l’auteur d’Aba-Pro qui disposait d’une copie de MLA pour valider la défaite d’Aba-Pro.

 

Le code source de ces trois programmes n’est pas libre et n’est pas distribué. Seul Aba-Pro est disponible en téléchargement.

 

En 2011 est apparu un sérieux concurrent à ces trois programmes : ULA (Uncle Lolo's Abalone), conçu par Laurent Pagli (France). Toutefois, aucune rencontre officielle n'a eu lieu entre ce challenger et ses trois rivaux.

 

Il existe d’autres programmes d’Abalone, qui ne résistent pas aux trois anciens cités plus haut, notamment :

  • Abbalone 3D, Macintosh
  • Jens Thiele Abalone, interface de jeu par courrier électronique
  • Olivier Thill : Abalot
  • Peter Tax Abalone, Macintosh
  • Random Software : Abalone 1.2

Les codes sources de Abalot et Peter Tax Abalone sont disponibles sur Internet.

Les meilleurs joueurs d’Abalone parviennent à triompher de l’ensemble de ces programmes, les trois meilleurs cités plus haut compris.

Programmes et connaissance du jeu :
Lorsqu’on débute à Abalone émerge rapidement la certitude que le centre du tablier est primordial. Il en est de même pour la connectivité des billes (elles doivent être regroupées et présenter une forte cohésion). Contrairement aux jeux les plus anciens comme le jeu d’échecs, les programmes d’Abalone ont été créés avant que le jeu ne soit véritablement analysé de manière approfondie.

  

Depuis l’apparition d’Aba-Pro, la connaissance du jeu a progressé. Plusieurs catégories de positions ont été isolées notamment la position de witch ring (cas où les billes d’un des deux adversaires se trouvent entourées par les billes adverses).

  

Nacre participe activement depuis 2005, à l’analyse des positions de fin de partie, notamment la constitution de prisons (cas où une bille se trouve isolée au bord du tablier de jeu, sans possibilité de reconnexion rapide avec ses camarades de la même couleur) ou encore à la comparaison entre l’avantage matériel (le nombre de billes de supériorité) et la position.

 

MLA a mis en évidence une pratique des plus forts joueurs : l’avantage positionnel est parfois aussi important que l’avantage matériel. MLA peut ainsi abandonner une ou plusieurs billes en début de partie pour obtenir un avantage positionnel déterminant.

 

En combinant Nacre, MLA et l’expérience de l’un des plus forts joueurs, les travaux menés en 2006 sur ces sujets ont isolé des positions où l’avantage positionnel ne parvient pas à compenser un trop gros déficit matériel (le nombre de billes est insuffisant pour parvenir à gagner). Ci-dessous, un exemple de position de witch ring où l’avantage positionnel ne permet pas de compenser le désavantage numérique.

 

 

 

 

Globalement, les programmes contribuent à améliorer sensiblement le niveau de jeu, en proposant un adversaire toujours disponible et capable de battre un joueur fort. Leur capacité de calcul tactique (prévision des coups à l’avance) entraînent également les joueurs aux aspects combinatoires du jeu.

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
L
<br /> C'était au niveau 10 (mais plus rapide et moins fort qu'auparavant car avec un élagage plus violent dans l'arbre des coups examinés à chaque noeud)<br /> <br /> <br /> Ce qui donne untemps de réflexion global un peu plus long qu'ABA-PRO quand même.<br />
Répondre
E
<br /> Joyeux Noël à tous (et bravo au hobbit) !<br /> <br /> <br /> Quelle était la profondeur de recherche pour ULA dans cette partie, toujours 8 ?<br />
Répondre
U
<br /> Après de nombreux matchs perdus , et des modifications de la fonction d'évaluaion, ULA a enfin réussi à battre ABA-PRO niveau 10 en  Marguerite hollandaise (avec les blancs).C'était une<br /> partie laborieuse, gagnée de justesse par ULA   Voici les coups:<br /> <br /> <br /> Marguerite hollandaise  noirs ABA-PRO blancs ULA<br />   1. I8H7     -- I6H6<br />   2. B1C2     -- G4G5<br />   3. G8G9F7   -- A5B6<br />   4. A2B3     -- A4B4<br />   5. C2D3     -- C5C7D5<br />   6. C3D4     -- B2C3<br />   7. D3E4     -- D5D7E6<br />   8. B5C5     -- E8E7<br />   9. H9G8     -- E7E6<br />  10. E2E3D2   -- I5I6<br />  11. D2D3     -- H4G4<br />  12. I9H9     -- B6B5<br />  13. A1B2     -- I6I7<br />  14. F8G8     -- I8I7<br />  15. D3D4     -- I7H6<br />  16. G8H9F8   -- I6I7<br />  17. G9F8     -- E4E5<br />  18. D6C5     -- F4E4<br />  19. B2B3     -- B6C6<br />  20. C5B4     -- C6C5<br />  21. B5C6     -- E7D6<br />  22. A3B3     -- C5C4<br />  23. B4C5     -- E4D3<br />  24. B1B2     -- C2C3<br />  25. C7D7     -- D3E4<br />  26. B2C2     -- I7H6<br />  27. C2D3     -- E4E5<br />  28. D3E4     -- E7E6<br />  29. E8E7     -- C3C4<br />  30. C7D8     -- C4B4<br />  31. F7F6     -- B4C5<br />  32. F8G9F7   -- F3G4<br />  33. B3C4     -- G4H5<br />  34. G8H9     -- I6H5<br />  35. H9H8     -- H4G3<br />  36. D7E8     -- H5G4<br />  37. D8E8     -- C6C5<br />  38. C3D3     -- C5D6<br />  39. G9G8     -- G5G6<br />  40. F5F6     -- G3G4<br />  41. D3D4     -- G6G7<br />  42. D4D5     -- G9G8<br />  43. F4F5     -- F3F4<br />  44. D5D6     -- F9G9<br />  45. E3D3     -- C4D4<br />  46. D8D7     -- G4H5<br />  47. D3C3     -- D4E4<br />  48. H6H7     -- G4F4<br />  49. D7D6     -- D3E3<br />  50. C3C4     -- H5G4<br />  51. C4C5     -- G4F4<br />  52. E8D7     -- G5G4<br />  53. H9H8     -- E3F4<br />  54. D7E8     -- G4F3<br />  55. C4C5     -- F3E3<br />  56. C6D7     -- F4G5<br />  57. I7I8     -- H6G5<br />  58. I8H8I9   -- E3D3<br />  59. C5C6     -- G5F4<br />  60. I9I8     -- G7H8<br />  61. H7G7     -- G8H8<br />  62. H9G8     -- I8H8I7<br />  63. G7G8     -- I7H7<br />  64. C6C5     -- H7H6<br />  65. G9F9     -- F4E3<br />  66. F9E8     -- E3D3<br />  67. F8E8     -- G7H7<br />  68. C5D6     -- E4E5<br />  69. F5F6     -- E5E6<br />  70. F6F7     -- E6E7<br />  71. F9F8     -- E9E8<br />  72. C6D7     -- E6E7<br />  73. E9D8     -- F9E8<br />  74. C7B6     -- E8E7<br />  75. F6G7     -- D2D4E3<br />  76. D8E8     -- E3E5F4<br />  77. E8F9     -- C3D4<br />  78. D5D6     -- D8E8<br />  79. D7D6     -- D4E5<br />  80. G8H8     -- H6G5<br />  81. D5D6     -- G5H6<br />  82. G7G8     -- H7G7<br />  83. H8G8     -- G6G7<br />  84. E8F8     -- F4F5G5<br />  85. G8F7     -- G6G7<br />  86. G9F9     -- D8E8<br />  87. E9D8     -- E5F6F5<br />  88. D8D7     -- E8E7<br />  89. B6C6     -- H8G8<br />  90. E8D7     -- G8F8<br />  91. D5C5     -- G5G6<br />  92. B5B4     -- G8H9<br />  93. D7C6     -- E7F8<br />  94. E5E6     -- H9G9<br />  95. C5D6     -- G9F9<br /> <br /> <br /> Au coup 81, elle aurait pu gagner en 6 coups en répondantt G5G6 au lieu de G5H6.<br /> <br /> <br /> Sa réponse F4F5G5 au coup 84 aurait pu lui couter la victoire<br />
Répondre
F
<br /> Je te souhaite longue vie, et j'espère que tu seras toujours là pour animer ce blog en novembre 2070, mais à mon avis, soit l'article est extrait d'un nouveau volet de Retour vers le<br /> futur (j'adore !), soit il y a erreur sur la date... <br />
Répondre
E
<br /> Ah oui, ça veut dire "éjection" !<br />
Répondre