Programmation par contraintes
La programmation par contraintes est un paradigme de programmation qui consiste à définir des contraintes sur les variables d’un programme et à utiliser un solveur pour trouver des solutions qui respectent ces contraintes. Les contraintes peuvent être des relations logiques entre les variables, des relations arithmétiques, des limites de valeur, etc. La programmation par contraintes permet de résoudre des problèmes difficiles tels que la planification, la programmation linéaire, la reconnaissance de formes, etc.
Il existe deux types de solveurs de contraintes :
les solveurs de contraintes basés sur la recherche (comme les solveurs de contraintes génétiques ou les solveurs de contraintes basés sur les colonies de fourmis) et les solveurs de contraintes basés sur la propagation (comme les solveurs de contraintes basés sur le backtracking et les solveurs de contraintes basés sur l’arc-consistance).
Il est utilisé dans des domaines tels que la robotique, la planification, les systèmes embarqués, l’intelligence artificielle, la logique floue, la programmation parallèle