NUMERIQUE ET SCIENCES INFORMATIQUES

Niveau : Terminale générale, enseignement de spécialité NSI

 

D
É
C
O
N
N
E
C
T
É

Intelligence Artificielle IA

1 - Introduction et historique

Donald Michie (1923-2007) est un chercheur britannique en intelligence artificielle reconnu pour avoir travaillé au déchiffrage des messages codés allemands pendant la seconde guerre mondiale. Tout comme Alan Turing, avec qui il a travaillé à Bletchley Park, Michie s’intéresse à théoriser les mécanismes du jeu d’Échecs ; les deux hommes entretiennent régulièrement des discussions, sur la possibilité de construire des programmes informatiques qui pourraient faire preuve d’intelligence et capables d’apprendre par eux-mêmes. Ils mettent respectivement au point les programmes Turochamp (d’Alan Turing et David Champernowne) et Machiavelli (de Donald Michie et Shaun Wylie) vers la fin des années 1940, alors qu’il n’existe pas encore de machine pour exécuter les instructions. Turochamp et Machiavelli ont joué quelques parties par correspondance, mais les calculs fastidieux ont rapidement découragé les concepteurs... Ces réflexions sur la possibilité de créer des machines « qui apprennent » amènent Donald Michie à développer en 1961 une machine destinée à jouer, et surtout à apprendre à jouer, au Tic-Tac-Toe. Il la nomme MENACE (Matchbox Educable Noughts And Crosses Engine).

Source : CNRS Images des Mathématiques
tic                    Menage

Elle est composée de 304 boîtes d’allumettes vides et de perles de couleur. L’objectif de Michie n’est pas d’élaborer une machine qui jouerait parfaitement dès le début, mais de construire un dispositif qui ne dispose d’aucune information préalable - à part les règles du jeu - et qui devient un joueur expert avec de la pratique.

Vu la complexité de cette machine, on va s'appuyer sur les règles du jeu de Nim

2 - Apprentissage du jeu de Nim

Sources : Marie Duflot-Kremer

2.1 - Principe

Tout d'abord il faut que l'ordinateur connaisse les règles du jeu :

  • Le jeu se joue à tour de rôle et le perdant est celui qui ne pourras plus prendre de bâtonnets
  • Il se joue avec 9 bâtonnets (on se limite à 9 pour simplifier la compréhension)
  • On ne peut prendre que 1, 2 ou 3 bâtonnets
  • C'est l'ordinateur qui commence et l'homme joue après lui

Au départ on dispose au-dessus de chaque bâtonnet 9 verres contenant des jetons numérotés de 1 à 3, représentants le nombre d'allumettes que peut prendre l'ordinateur à chaque coup :

nim

On retire les bâtonnets de la gauche vers la droite, donc lorsqu'il reste :

  • 9 bâtonnets l'ordinateur pourra enlever 1, 2 ou 3 batônnets,
  • 8 bâtonnets l'ordinateur pourra enlever 1, 2 ou 3 batônnets,
  • ... jusqu'à ce qu'il en reste 3,
  • 2 bâtonnets l'ordinateur ne pourra plus qu'en enlever 1 ou 2,
  • 1 bâtonnet l'ordinateur ne pourra prendre qu' 1 bâtonnet.

Questions :

  • Lorsqu'il reste 8 bâtonnets, pourquoi le verre contient-il encore tous ces jetons alors que s'il reste 4 bâtonnets le verre est vide ?
  • Lorsque les verres contiennent 2 ou 3 jetons, l'ordinateur peut-il en choisir un au hasard parmi les 3 ou a-t-on énoncé une règle ci-dessus ?

2.2 - Programme en langage python

Structure des données :

  • En entrée : une liste de verres contenant chacun une liste des numéros des jetons : verres=[[],[1],[1,2],[1,2,3],[1,2,3],...]
  • En sortie : une liste de verres modifiée, contenant la liste du ou des jetons correspondant au nombre de bâtonnets à prendre

Afin que le verre 1 corresponde bien à son indice on peut commencer par un élément de rang 0 vide, cela évitera de retrancher 1 à l'indice.

Programme de test



  

3 - Réseau de neurones artificiels

Leur origine remonte à 1957 avec Franck Rosenblatt qui inventa le perceptron qui est un algorithme se basant sur le modèle de la structure de la cellule nerveuse.

Fond :  Texte :  Tables :  Thème du langage: