Cours d'Introduction à l'Intelligence Artificielle, ECM 1ère année

Quelques nouvelles de l'I.A.

Syllabus

Ce cours est organisé en moitié séances de cours et td et moitié de séances sur machines.

Le cours abordera successivement :

  • Intro à l'I.A. : Le domaine de l'I.A., son histoire et un état des lieux aujourd'hui
  • Search methods, ou comment écrire des programmes qui résolvent tout seuls des problèmes (problème des huit reines, etc)
  • Game playing, ou comment écrire un programme qui joue contre un humain dans des jeux (tels que échecs, dames, go)
  • Machine Learning, ou comment écrire des programmes qui apprennent par l'exemple (application à la reconnaissance de caractères manuscrits)
  • Markov Decision Process, une stratégie d'apprentissage particulière et très adaptée à la conception d'agents autonomes type robots (application à pacman)

Les travaux pratiques sur machine seront réalisés en python.

  • Seance 2
 TP
 ProblemSoving  Pour utiliser cette archive de code, sauvegardez l'archive (TPIA1_ProblemSolving.tgz) dans un réprtoire créé sous la racine de votre compte. Ouvrez un terminal et déplacez vous dans le répertoire ou vous avez sauvegardé l'archive avec des commandes 'cd'. Décompressez l'archive avec la commande : tar-zxvf TPIA1_ProblemSolving.tgz. lancez pycharm et créez un nouveau projet en spécifiant votre répertoire courant et utilisez python 2.7. Ouvrez script.py et exécutez le.

 Pacman  Procédez comme ci-dessous pour cette nouvelle archive, qui cette fois s'appelle TPIA1_Pacman.tgz. Faites attention à créer un second répertoire pour cette archive car elle contient des fichiers de même nom que l'archive précédente. Vous ne devez pas la décompresser dans le même répertoire car cela va écraser des fichiers. Une fois l'archive décompressée et pycharm lancé, créez le projet à partir du répertoire courant et en spécifiant python 2.7 puis  chargez le fichier pacman.py et exécutez le.
  • Seance 3
 Slides du cours 3
  • Seance 4

Programmation de l'algorithme A* et du problème du taquin

  • Seance 5
    • Complétez la programmation du problème du taquin et de l'algorithme de résolution A*
    • A noter que pour que l'algorithme A* fonctionne vous devrez implémenter des heuristiques. Ceux-ci étant problem-dependent ils doivent être implémentés dans la classe du problème correspondant (regardez par exemple l'heuristique h de la classe de problem GraphProblem)
    • Sur le mode de la fonction compare_graph_searchers (à la fin du fichier search.py) que vous étudierez et que vous exécuterez, vous écrirez une fonction compare_graph_searchers_Queens et une fonction compare_graph_searchers_Taquin qui résume les performances des différentes algorithmes de recherche pour les problèmes des N reines et du taquin
  • Seances 6, 7 et 8 : Progammation de MinMax et de AlphaBeta
 Code IA TP6
 * Ecrivez la fonction random_player
 * Ecrivez la méthode query_player de la classe TicTacToe
 * Testez en jouant contre un joueur aléatoire
 * Programmez le joueur MiniMax qui réalise l'exploration totale
 * Programmez le joueur AlphaBeta qui réalise l'exploration totale
 * Calculez des statistiques sur la taille de l'espace d'exploration par le Minimax et par l'AlphaBeta
 * Programmez une fonction d'évaluation à utiliser par un joueur AlphaBeta à profondeur limitée
 * Testez votre programme AlphaBeta contre vous
 * Faites jouer des AlphaBeta les uns contres les autres, différent par la taille de leur horizon
  • Seance 9
 Slides du cours 9
  • Seance 10
 Slides du cours 10
  • Seance 11 (4h)
 Perceptron.py

Références et pointeurs de cours