La programmation par contraintes est une approche alternative à la programmation informatique qui implique une combinaison de l'informatique et de la logique , ou un raisonnement , techniques . Le principe de base de la programmation par contraintes est de préciser les problèmes avec imprévisible informations , incomplètes et de résoudre ces problèmes en indiquant les conditions ou les propriétés - autrement connu sous contraintes - satisfaites par la solution. Contrainte
La programmation par contraintes est basé sur l'idée d'une contrainte : une relation, souvent une égalité ou d'inégalité relation entre les valeurs de deux variables mathématiques . En d'autres termes , une contrainte peut être considérée comme une exigence qui indique les combinaisons de valeurs de la plage de valeurs possibles pour chaque variable sont recevables ; « x > 3 ", par exemple , est une contrainte "x "
Un système de contraintes . contrainte de système spécifie formellement les règles régissant les formules correctement formé , ou de la syntaxe et de la vérité ou de la fausseté ou la sémantique, des contraintes de intérêt . Un système de contraintes spécifie la langue dans laquelle les contraintes sont exprimés , ce que les symboles de contrainte sont , comment ils sont définis et les formules de contrainte sont utilisés pour la logique dans le langage de programmation par contraintes.
Contrainte satisfaction
En théorie, la programmation par contraintes se compose de deux phases : la génération d' une représentation d'un problème et la solution du problème . Dans la pratique, chacune de ces phases peut être décomposé en une série d'étapes plus petites , qui peut être effectué en alternance. Pour résoudre un problème en utilisant la programmation par contraintes , le problème doit d'abord être spécifié, ou formulé comme un problème de satisfaction de contraintes , qui se compose d'un nombre fini de contraintes qui s'appliquent chacun à une séquence spécifique de variables. Satisfaction de contraintes tente d' attribuer des valeurs aux variables de sorte que toutes les contraintes sont vraies. En règle générale, un problème de satisfaction de contraintes peut être représenté dans plus d'un titre ; la programmation par contraintes est très souple car les contraintes peuvent être ajoutées, modifiées ou supprimées
solveur
. un solveur met en œuvre une formule mathématique , ou un algorithme , qui recueille des contraintes d'un ou plusieurs programmes en cours, les simplifie et, si possible , les résout . Le résultat final est connu comme la contrainte de réponse.
Applications
problèmes résolus en utilisant la programmation par contraintes sont généralement formulées en termes d'exigences, de propriétés ou de lois . Ces problèmes se produisent fréquemment dans l'industrie et le commerce, y compris l'analyse , la conception , la planification, l'allocation des ressources et le transport. La programmation par contraintes s'applique avec succès à de nombreux autres domaines , y compris l'ingénierie électrique , la biologie moléculaire et la recherche opérationnelle.