Die Constraintprogrammierung verbindet deklaratives Programmieren mit
effizienten Problemlösungstechniken, insbesondere aus der
mathematischen Optimierung und der Künstlichen Intelligenz. Es handelt
sich um ein aktuelles Forschungsgebiet, das bereits eine beachtliche
Zahl industrieller Anwendungen vorweisen kann. Im Praktikum werden
zunächst
Constraint-Programmierung und die Sprache
Constraint Handling Rules eingeführt. Dann soll jede Gruppe einige
Constraintlöser implementieren und auf Konfluenz, Terminierung und
Komplexität untersuchen.
Es wird in Sictus Prolog und Constraint
Handling Rules programmiert. Sie können CHR
online ausprobieren. Eine Java-Constraint-Bibliothek (JACK),
die unter anderem eine Implementierung von CHR in Java und einen
graphischen Debugger enthält, steht zur Verfügung.