Descriptif
Ce cours présente le paradigme de la programmation relationnelle, basé sur la programmation logique par contraintes (CLP), depuis ses fondements en logique du premier ordre (FOL) faisant de la programmation essentiellement une tâche de modélisation utilisant des variables et des relations mathématiques, vers ses diverses applications en IA symbolique, bases de données déductives, représentation des connaissances, résolution de problèmes, optimisation combinatoire, démonstration automatique de théorèmes, et traitement du langage naturel.
Objectifs pédagogiques
Depuis les débuts de la programmation logique basée sur les formules de la logique des clauses de Horn jusqu'au Saint Graal de la programmation déclarative, par la simple modélisation du problème par des variables et des contraintes mathématiques, les étudiants apprendront à utiliser un dialecte récent de Prolog avec des contraintes sur les structures de données des termes logiques du premier ordre, des entiers et des nombres réels. L'équilibre entre programmation déclarative et efficacité nous amènera à examiner le fonctionnement interne des compilateurs Prolog basés sur la machine abstraite de Warren, tant pour la résolution de contraintes que pour la résolution de clauses. Plusieurs séances illustreront l'efficacité de cette approche pour la représentation des connaissances, le calcul formel, et la résolution d'exemples concrets de problèmes NP-difficiles.
effectifs minimal / maximal:
/48Diplôme(s) concerné(s)
Parcours de rattachement
- Bachelor en Sciences - S5 - Double spécialité Mathématiques et Informatique
- Bachelor en Sciences-S5-Double specialite Mathematiques et Informatique - Mineure en Biologie
- Bachelor en Sciences-S5-Double specialite Mathematiques et Informatique - Mineure en Chimie
Objectifs de développement durable
ODD 12 Consommation et production responsables.Pour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vous devez avoir validé l'équation suivante : UE CSC_2F003_EP
Prerequisite:CSC_2F003_EP
Format des notes
Numérique sur 20Littérale/grade américainPour les étudiants du diplôme Programmes d'échange internationaux
Vos modalités d'acquisition :
Note du cours: moyenne des 5 meilleurs sur 6 TDs
(cette année il n'y aura pas d'examen écrit final).
Pour les étudiants du diplôme Bachelor of Science de l'Ecole polytechnique
Vos modalités d'acquisition :
Note du cours: moyenne des 5 meilleurs sur 6 TDs
(cette année il n'y aura pas d'examen écrit final).
Le rattrapage est autorisé (Note de rattrapage conservée écrêtée à une note seuil de 10)
- Crédits ECTS acquis : 3 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Programme détaillé
Les séances pratiques utiliseront un système Prolog moderne appelé SWI Prolog. Les étudiants sont invités à installer SWI Prolog sur leur ordinateur portable avant la première séance. Nous recommandons l'utilisation de brew avec la commande shell.
brew install swi-prolog
Notez cependant que nous utiliserons un petit sous-ensemble de prédicats Prolog, principalement pour la manipulation de termes et de listes, et que nous utiliserons le pack modeling.pl pour les contraintes arithmétiques entières et réelles, plutôt que les prédicats arithmétiques évaluables Prolog. Ce paquet peut être installé avec la commande shell.
swipl pack install modeling
Les transparents des cours et les corrigés des TD seront disponibles ici à chaque séance.
Un nouveau polycopié du cours seront disponibles au début du cours.
Le pack modeling.pl est accompagnée d'une documentation sur les contraintes et les métaprédicats utilisés pour la modélisation dans ce cours. Le manuel complet SWI-Prolog va bien au-delà de ce qui sera enseigné dans ce cours et doit être consulté principalement pour les prédicats de manipulation de listes et de fermes.
La présence aux cours et aux TD est obligatoire. Les TD se dérouleront sur votre ordinateur portable, en utilisant SWI-Prolog et le pack modeling.pl. Vous trouverez les questions du TD dans un fichier Prolog, à compléter et télécharger sur le moodle à la fin du TD (pour éviter toute frustration, un bonus sera accordé pour les réponses supplémentaires téléchargées après la date limite jusqu'au week-end).
Notes : moyenne de vos 5 meilleurs TD sur 6
C1, TD1 : Termes du premier ordre, unification, bases de données déductives dans Datalog, calcul symbolique en Prolog
C2, TD2 : Sémantique opérationnelle de Prolog par réécriture de buts, concurrence, traitement de listes
C3, TD3 : Langages de programmation logiques à contraintes, résolution de contraintes linéaires sur les nombres réels, programmes CLP(R)
C4, TD4 : résolution de contraintes sur les entiers, programmes CLP(T, Z) pour la résolution de problèmes d'optimisation combinatoire
C5, TD5 : Résolution de contraintes booléennes, contraintes réifiées, programmes CLP(T, B, Z) pour la résolution de problèmes d'ordonnancement disjonctif NP-difficiles
C6, TD6 : Théories logiques, décidabilité des structures, sémantique formelle de CLP(X), démonstration automatique de théorèmes.
Mots clés
programmation logique, programmation par contraintes; résolution de contraintes; algorithmes de recherche; modélisation à base de contraintesMéthodes pédagogiques
Cours magistraux suivis de travaux dirigés sur ordinateurs personnels à remettre à la fin de chaque séance et comptant pour la note finale.Support pédagogique multimédia