La programmation par contraintes (PPC) est une méthode de modélisation et de résolution de problèmes combinatoires, où l'utilisateur énonce le problème et l'ordinateur cherche une solution. Elle se base sur des techniques de résolution puissantes, incluant des langages de modélisation riches, permettant de traiter la satisfiabilité, l'énumération et l'optimisation. Les applications de la PPC sont variées, allant de la recherche opérationnelle à des domaines comme l'ordonnancement et la robotique.