Florent Madelaine

Teaching for graduates (past courses)


Home

Research

Teaching

Bio

Etc

Paris : cours de Programmation par Contraintes

Ce cours que j'ai enseigné de 2012 à 2017 est une option du M2 de recherche du MPRO.

Il s'agit d'une introduction à la programmation par contraintes que j'ai enseigné à partir de 2012-13 en collaboration avec David Savourey (Lix à l'époque maintenant UTC), qui introduit la programmation par contraintes et les principes essentiels utilisés par les solveurs de contraintes (backtrack, algos d'arc-consistance, méthodes de look-ahead, méthodes de look-back, etc.).

En 2013-2014, Éric Nespoulous (IBM) nous a rejoint. Il présente l'environnement CPLEX Studio IDE et propose un projet aux étudiants.

Pour ma part j'esquissais les grandes lignes de résultats de complexité obtenus sur les problèmes de contraintes avec des variations selon les années. Typiquement j'évoquais à un moment la conjecture de la dichotomie (maintenant un théorème) et le théorème de Shaeffer. J'évoque aussi si possible ce qui fait la force des solveurs Sat modernes. Typiquement, sur les deux dernières années, j'évoquais aussi l'apprentissage de clauses et comment on peut s'en servir pour mettre en oeuvre une recherche non-chronologique.

Pour la version actuelle du cours, voir la page de David Savourey (ici).

Quelques documents pour ma partie du cours (n'hésitez pas à m'envoyer un mail si vous trouver des erreurs):

  • Transparents [pdf]
  • Support de cours [pdf]
  • Quelques articles pour commencer (biblio) [pdf]
  • Esquisse de correction des exos [pdf]

Caen : Compter, Énumérer, générer

Cours optionnel du M2 Esecure à l'université de Caen enseigné en commun avec Julien Clément en 2014-15. Ce dernier prenant le relais de ma partie pour introduire des éléments de Flajolerie (combinatoire énumérative et analytique). Pour ma part j'introduisais le sujet avant d'évoquer le polynôme chromatique et pour finir parler de décompositions arborescentes et de la résolution de certains exemples de problèmes concrets par programmation dynamique dans ce contexte.

Caen : Complexité des CSPs et des requêtes

Cours optionnel du M2 Decim, partagé avec Alain Bretto qui évoque les hypergraphes et les familles de Helly. J'introduis les décompositions arborescentes et leur utilisation algorithmique pour résoudre efficacement plusieurs problèmes. J'évoque les liens entre requêtes conjonctives et problèmes de contraintes avant d'expliquer l'algorithme sur des problèmes de coloriage. Je termine le cours par l'algorithme pour résoudre Hamiltonian Cycle.

Clermont : Logique et Graphes

Ce cours optionel du M2 d'info Modèles, Systèmes, Imagerie s'adressait aux étudiants des parcours Modèles et Algorithmes d’Aide à la Décision et Systèmes d'information et de Communication. J'ai géré ce cours de 2012 à 2015. Il y avait deux parties assez indépendantes. Une première par Anne Berry qui traitaient de théorie des graphes (conjecture forte des graphes parfaits). Une seconde partie enseignée en collabiration avec Mamadou Kanté de complexité descriptive.
  • Premier cours: introduction [FR, UK]
  • Second cours: théorème de Fagin (FR)
  • Dernier cours: problèmes de satisfaction de contraintes (FR)