Zum Inhalt springen

Constraintprogrammierung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Juli 2004 um 03:04 Uhr durch CosmicAvenger (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ein Programmierparadigma, das seit Mitte der achziger Jahre des 20. Jahrhunderts entwickelt wird und sich als natürliche Weiterentwicklung der logischen Programmierung versteht. Logische und Constraintprogrammierung werden typischerweise im Kombination eingesetzt, was zu einer erheblichen Steigerung der Ausdrucksstärke, Flexibilität und Effektivität der Paradigmen führt.

Als Constraint kann man beispielsweise eine mathematische Gleichung oder ein logisches Prädikat verstehen, z.B. X-Y=3 oder X<=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 Wiederspruchsfreiheit 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 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 neunziger Jahren des 20. Jahrhunderts zur Entwicklung der Programmiersprache CHR geführt.