Definition
Ein Rechen- und Spezifikationsrahmen, der Logikprogrammierung mit Constraint-Solving integriert: Programme kombinieren logische Regeln mit Constraint-Domänen und Solver, wobei ein Constraint-Store während der Beweissuche konsultiert und aktualisiert wird.
Prinzip
Prinzip
Trennung von logischer Steuerung (Regeln, Suche) und domänenspezifischem Constraint-Reasoning (Arithmetik, endliche Domänen, Strings), sodass die Unifikation durch Constraint-Lösen und Konsistenzprüfung mittels Entscheidungsprozedur des Solvers ersetzt oder erweitert wird.
Demonstration
Demonstration
CLP(R) für lineare Arithmetik: logische Regeln erzeugen arithmetische Constraints wie lineare Ungleichungen; der Constraint-Solver pflegt und vereinfacht den Store und schneidet Suchzweige ab, die numerische Konsistenz in Terminplanung oder Ressourcenallokation verletzen.
Fehlanwendung
Fehlanwendung
Voraussetzen der Solver-Vollständigkeit für unentscheidbare Domänen oder Constraints als bloße syntaktische Prädikate behandeln, ohne Solver-Feedback zu integrieren, was zu falschen Annahmen über Termination oder Lösungsabdeckung führt.
Konsequenz
Konsequenz
Gute Integration ergibt deklarative Modelle für kombinatorische und numerische Probleme, starke Suchreduktion durch Constraint-Propagation und modulares Nutzen effizienter Entscheidungsprozeduren für spezialisierte Domänen.
Umkehrung
Umkehrung
Umkehr zu reinem Constraint Programming ohne logische Klauseln, in dem Suche und Propagation ausschließlich durch Constraint-Löser ausgedrückt werden, oder zu reiner Logikprogrammierung, in der Constraints als explizite logische Prädikate ohne Solverunterstützung formuliert werden.
Abgrenzung
Abgrenzung
Effektiv, wenn Constraint-Domänen entscheidbare oder praktische Solver zulassen (endliche Domänen, lineare Arithmetik, boolesche Constraints); erweitert sich nicht automatisch auf beliebige unentscheidbare Theorien ohne Verlust von Garantien oder ohne Approximationen.
Semantische Spannung
Semantische Spannung
Spannung zwischen CLP und einfacher Logikprogrammierung bzw. CP: CLP verbindet deklarative Regeln mit solvergetriebener Propagation, während LP auf Beweissuche und CP auf solverzentrierte Propagation und globale Constraints fokussiert, was Modellierungs- und Kontrolltrade-offs schafft.
Synthese
Synthese
Constraint-Logikprogrammierung verbindet klauselbasierte logische Spezifikation mit domänenspezifischem Constraint-Lösen: sie verwendet einen solvergestützten Constraint-Store statt reiner Unifikation, um kompakte deklarative Modelle und effiziente Suche durch Propagation zu erreichen.