Licence Mathématiques et Informatique Appliquées aux Sciences Humaines et Sociales (Licence MIASHS)
2017-2020 : Intelligence Artificielle au semestre 6
Pré-requis
Niveau raisonnable en algorithmique et en programmation.
Contenu de la formation
Le cours débutera par une introduction générale à l’Intelligence Artificielle. Nous nous intéresserons aux problèmes que l’Intelligence Artificielle cherche à résoudre automatiquement. Souvent ludiques, il est admis que ces problèmes nécessitent de l’Intelligence lorsqu’ils sont traités par des êtres humains : trouver le chemin le plus court pour sortir d’un labyrinthe, jouer à un jeu de stratégie à deux joueurs, apprendre à partir d’exemples pour prédire dans de nouvelles situations, etc. Nous étudierons les algorithmes classiques en Intelligence Artificielle qui proposent des solutions à ces problèmes, en particulier nous nous focaliserons sur les algorithmes qui manipulent des structures arborescentes (arbre de recherche, arbre de jeu , arbre de décision, etc.). Les étudiants devront programmer l’un de ces algorithmes, sur le problème de leur choix.
Connaissances
- Histoire, motivations et principes de l’Intelligence Artificielle.
- Algorithmes de base pour la résolution de problème en Intelligence Artificielle.
- Algorithmes A*, min-max, alpha-bêta.
- Apprentissage supervisé, arbres de décision.
Compétences
- Poser formellement un problème particulier.
- Le résoudre par une technique d’Intelligence Artificielle.
2011-2012 : Algorithmique et programmation au semestre 3
Objectifs
Connaissances en algorithmique :
- notion de type abstrait,
- maîtrise des structures de données classiques,
- connaissance des algorithmes associés,
- capacité à étudier la complexité de ces algorithmes,
- raisonnement sur un type abstrait.
Compétences en programmation Python :
- implémentation de structures de données,
- codage des algorithmes associés,
- manipulation de fichiers.
Contenu de la formation
Nous nous intéressons à la représentation de données complexes et à l'étude des principales structures de données utilisées : pile, file, enregistrement, tableau, table de hachage, etc.
On considère ensuite les algorithmes associés à ces structures et à la notion de complexité algorithmique (qui permet de quantifier les ressources, temps et mémoire, nécessaires à l'exécution de ces algorithmes).
Dans cette démarche, les aspects théoriques du cours sont mis en pratique en Python (notamment à travers les dictionnaires de Python) et le découpage fonctionnel assimilé aux semestres précédents est systématiquement mis en œuvre. La manipulation de fichiers en Python est également étudiée.