<aside> ℹ️ Titre du cours (idée … pas encore sûr à 100%)
Résolution de problèmes de satisfaction de contraintes en Python
</aside>
Dans ce cours, nous allons aborder un paradigme de programmation fascinant, la programmation par contraintes. Cette manière de programmer est née de la bonne vieille intelligence artificielle des années 1980-2010. Elle consiste à décrire des problèmes de satisfaction de contraintes (par exemple la résolution de Sudoku) sous forme déclarative et laisser l’ordinateur trouver la solution en expérimentant différentes stratégies et approches de résolution (heuristiques).
Dans ce cours, vous allez développer votre propre solveur de contraintes en Python en utilisant abondamment la programmation orientée objets. Nous jetterons également également un oeil au code source du module python-constraint
.
Date | Description approximative |
---|---|
11 janvier | séance 1 : |
• Présentation du module et objectifs généraux | |
• Présentation générale programmation par contraintes + concept de problème de satisfaction / optimisation de contraintes | |
• Rappels Python (POO + autres sujets avancés nécessaires) |
Cette séance va me permettre de sentir le niveau général et les disparités entre les participants. | | 18 janvier | Pause : conférence commune avec les autres du cours Turing | | 25 janvier | Séance 2 : introduction à la CP (Constraint Programming) : variables, domaines, contraintes, ... + début implémentation solveur | | 8 février | séance 3 => propagation de contraintes / graphe de contraintes / ... => amélioration du solveur / premières applications à des problèmes concrets | | 15 février | pause 1e samedi des relâches VD) | | 22 février | Pause 2e samedi des relâches VD | | 1er mars | Séance 4 : algorithmes de recherche en profondeur / recherche en largeur / heuristiques => amélioration du solveur / applications | | 8 mars | Séance 5 : applications / pour aller plus loin / utilisation et étude de "vrais" solveurs state of the art avec Python / intro à la modélisation et résolution de "vrais" problèmes |
Classic Computer Science Problems in Python
Handbook of Constraint Programming
Full Table of Contents for AI: A Modern Approach
Programming with Constraints: an Introduction. Course Material
Building Decision Support Systems
▶ Programmation par contraintes | EURODECISION
Entreprises française développant des solutions sur la base de la programmation par containtes
Basic Modeling for Discrete Optimization
Advanced Modeling for Discrete Optimization
Solving Algorithms for Discrete Optimization
The MiniZinc Handbook — The MiniZinc Handbook 2.8.7
On-line guide to constraint programming
Cours de programmation par contraintes
Cours d’un master de recherche opérationnelle à Paris
Programmation Par Contraintes - MPRO
OscaR-CP — OscaR User-Guide beta/under dev documentation
or-tools/examples/python at stable · google/or-tools