Apprentissage Machine
JEU DE NIM & IA
JEU DE NIM & IA
Cette activité a pour but de présenter l'intelligence artificielle, plus particulièrement une forme simple d'apprentissage, et de montrer qu'en effectuant des actions élémentaires notre machine peut réussir à trouver la stratégie gagnante à un jeu.
8 allumettes ou autres petits objets (stylos,...)
autant de gobelets/récipients que d'allumettes
des petits jetons sur lesquels on peut écrire (en bois, en carton...), 3 par verre
Pour préparer l'activité on va numéroter les verres avec les nombres de 1 à 8 (en l'écrivant au marqueur), et faire trois jetons par verre, numérotés 1, 2 et 3. Puis comme ça n'a pas de sens de piocher plus d'allumettes qu'il n'y en a sur la table, on ne laisse que le jeton 1 dans le verre 1, et que les jetons 1 et 2 dans le verre 2.
Les explications du jeu de Nim sont données plus en détails sur la page de l'activité "sans IA". S'y référer en cas de question. Le principe du jeu est de faire s'affronter deux joueurs qui prendront chacun leur tour une, deux ou trois allumettes. Celui ou celle qui prend la (ou les) dernière allumette a gagné.
Pour la version du jeu de Nim avec apprentissage, l'idée est de casser les idées préconçues sur un ordinateur doué d'intelligence. On verra qu'avec un algorithme simple et sans connaissance particulière sur la straétégie gagnante, on obtient une solution surprenante, où la machine devient infaillible à ce jeu.
Je propose de suivre le déroulé suivant :
Mettre en place la matériel (jetons dans les gobelets, allumettes sur la table)
Commencer une partie en laissant l'humain jouer en premier. La machine quand c'est son tour va :
compter le nombre d'allumettes et prendre le gobelet correspondant
piocher au hasard un jeton dans le gobelet, le poser sur la table juste devant ce gobelet, et piocher le nombre d'allumettes indiqué par le jeton (1, 2 ou 3 donc)
en fin de partie (quand il n'y a plus d'allumettes) soit la machine a gagné, et dans ce cas elle remet chaque jeton dans le gobelet où elle l'a pioché, soit elle a perdu et dans ce cas elle remet tous les jetons piochés sauf le dernier, qui était clairement un mauvais choix (puisqu'il a permis à l'humain de gagner directement) et qu'elle met de côté.
On continue à faire des parties, et à un moment il peut arriver qu'un gobelet soit vide (parce que par exemple avec 4 allumettes il n'y a pas de bon choix). Dans ce cas on retourne le gobelet à l'envers, et à partir de ce moment là, si l'adversaire nous laisse avec un nombre d'allumettes pour lequel le gobelet est vide, la machine abandonne la partie, décide qu'elle a perdu (car elle sait qu'elle va perdre) et applique son algorithme de partie perdue (remettre tous les jetons piochés dans leur gobelet sauf le dernier).
La machine va être assez mauvaise au début, mais au fil des parties elle va s'améliorer et finir par suivre une stratégie qui la fera gagner à tous les coups. Et tout ça en suivant un algorithme très simple.
Réaliser le Principe de l'algo d'apprentissage en situation réelle