Programmation logique et Intelligence artificielle

Présentation

Ce cours comprend une introduction à la programmation logique et à la programmation par contraintes, ainsi qu’une initiation à quelques aspects de l’intelligence artificielle. Il comprend 4 parties :

  • Programmation logique (6h CM, 6h TD, 4h TP) : fondements, représentations de données, principes algorithmiques.
  • Programmation par contraintes (4h CM, 4h TD, 4h TP) : modélisation et résolution de problèmes.
  • Résolution de problèmes avec l’algorithme A*, heuristiques (4 h CM, 4h TD, 4h TP)
  • Introduction théorique sur les jeux de stratégie impartiaux (jeux de Nim, théorème de Sprague-Grundy). Développement d’un joueur pour un jeu de stratégie à deux joueurs : algorithme minimax, élagage alpha-bêta. (4h CM, 4h TD, 6h TP)

 

Pré-requis nécessaires

Connaissances en algorithmique et programmation, initiation à la programmation fonctionnelle.

Objectifs

Partie PLC:

  • Connaître les bases d'un langage de programmation logique.
  • Savoir programmer des algorithmes de base (avec listes, arithmétique, coupure) en programmation logique.
  • Connaître les bases de la programmation par contrainte, et savoir résoudre un problème à l'aide de la programmation par contrainte.

 Partie IA:

  • Connaître certains aspects de l'intelligence artificielle: exploration (algorithme minimax, A*...), joueurs automatiques.

Compétences visées

Ecrire ou dérouler un programme simple en programmation logique. Modéliser puis résoudre un problème en programmation par contraintes. Résoudre des problèmes avec des l’algorithme A*. Etre familiarisé avec des aspects de la théorie des jeux, l’algorithme minimax et ses améliorations.

Langue d'enseignement

Français