Constraintprogrammierung

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Es fehlen die Domains und Beispiele für Programmiersprachen, die constraintbasiertes Programmieren erleichtern.

Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst, aber kopiere bitte keine fremden Texte in diesen Artikel.

Die Constraintprogrammierung (engl.: Constraint Programming) ist ein Programmierparadigma, das seit Mitte der 1980er Jahre entwickelt wird und sich als natürliche Weiterentwicklung der logischen Programmierung versteht. Logische und Constraintprogrammierung werden typischerweise in Kombination eingesetzt, was zu einer erheblichen Steigerung der Ausdrucksstärke, Flexibilität und Effektivität der Paradigmen führt.

Als Constraint (oder Vorgabe) kann man beispielsweise eine mathematische Gleichung oder ein logisches Prädikat verstehen, zum Beispiel X-Y=3 oder X\le Y. Die beiden erwähnten Constraints enthalten zwar Informationen über die Werte der Variablen X und Y, allerdings in schlecht verwertbarer Form. Ziel der Constraintprogrammierung ist es, eine Menge derartiger Informationen auf Widerspruchsfreiheit zu prüfen und gegebenenfalls zu vereinfachen. So könnte beispielsweise aus den Informationen X - Y=3 und X+Y=7 die Lösung X=5 und Y=2 gefolgert werden.

Diese Vereinfachungen werden von einem speziellen Algorithmus, dem Constraintlöser (engl. constraint solver) durchgeführt, welcher ein fest implementierter Teil der Constraint-Programmiersprache ist. Verschiedene Versuche, das Lösen von Constraints flexibler zu machen und dem Benutzer mehr Einflussmöglichkeiten zu geben, haben in den 1990er Jahren zur Entwicklung der Programmiersprache CHR (Constraint Handling Rules) geführt.

Literatur[Bearbeiten]

  • Frühwirth, Thom und Abdennadher, Slim: Constraint-Programmierung: Grundlagen und Anwendungen. Springer 1997, ISBN 3-540-60670-X
  • Hofstedt, Petra und Wolf, Armin: Einführung in die Constraint-Programmierung (Springer eXamen-press). Springer 2007, ISBN 978-3-540-23184-4