next up previous contents index
Nächste Seite: 3.7.2 Besonderheiten des Constraint-Systems Aufwärts: 3.7 Diskussion zum Constraint-System Vorherige Seite: 3.7 Diskussion zum Constraint-System   Inhalt   Index

3.7.1 Constraints und mögliche Alternativen

Constraints sind im Gegensatz zu Berechnungsfunktionen und Regeln ungerichtet. Daraus ergibt sich die markanteste Eigenschaft des Constraint-Formalismus, nämlich die Möglichkeit zur multidirektionalen Auswertung von Constraints-Ausdrücken. Hierfür wird das Constraint-Netz propagiert, bis dem Lösungsverfahren entsprechende, konsistente Wertebereiche für die Constraint-Variablen ermittelt worden sind. Die Propagation eines Constraints bzw. eines Constraint-Netzes kann sich allerdings sehr aufwendig gestalten, je nachdem wie umfangreich das Constraint-Netz ist, welches Propagationsverfahren zum Einsatz kommt und was für ein Konsistenzgrad erreicht werden soll.

Alternativen zum Constraint-Formalismus, wie Berechnungsfunktionen und Regeln, sind dagegen gerichtet, d.h. im Gegensatz zu Constraints erfolgt die Auswertung ausschließlich unidirektional. Es kann immer nur ein vorher festgelegter Wert berechnet werden. Auch wenn dieser bereits gegeben ist, lassen sich aufgrund dessen keine weiteren Wertebelegungen ableiten. Allerdings sind Berechnungsfunktionen und Regeln dadurch effizienter als Constraints. Sie werden nur einmal ausgeführt, und im Gegensatz zu Constraints können Berechnungsfunktionen als compilierter Code vorliegen vgl. Syska und Cunis, 1991, S. 89 ff.; Günter, 1992, S. 152.

Wenn sich die Wertebereiche von Constraint-Variablen geändert haben, werden die zugehörigen Constraints neu berechnet, bzw. das Constraint-Netz wird so lange propagiert, bis wieder ein konsistenter Zustand erreicht wird. Im Gegensatz dazu ,,feuern`` Regeln nur ein einziges mal, nämlich wenn ihr Bedingungsteil erfüllt ist. Auch Berechnungsfunktionen werden nur einmal, festgelegt durch die Kontrolle, ausgeführt. In diesem Fall muss die Kontrolle den Zeitpunkt bestimmen und sicherstellen, dass alle zur Berechnung benötigten Variablen mit bekannten Wertebereichen belegt sind. Es wird hierbei durch die Kontrolle eine Reihenfolge ermittelt, in der die Berechnungsfunktionen ausgeführt werden können, zwischen denen u.U. mehrfach verkettete Abhängigkeiten bestehen. Randbedingungen werden dadurch, wie beim Regelmechanismus, in das Kontrollwissen verlagert.

Constraints dagegen sind ein deklarativer Formalismus, d.h. sie sind frei von Kontrollstrukturen. Die Reihenfolge der Auswertung ist nicht festgelegt und für das Ergebnis nicht relevant. Der Wissensingenieur spezifiziert die Abhängigkeiten und überlässt die Auswertung vollständig dem System. Das Constraint-System kann daher als domänenunabhängiges, geschlossenes Modul, als sog. Black Box, betrachtet werden vgl. Günter, 1992, S. 75; Syska und Cunis, 1991, S. 78. Dies erleichtert zudem die Konflikterkennung: Bei der Propagation durch das Constraint-Modul werden bei jedem Durchlauf des Propagationsalgorithmus sämtliche Abhängigkeiten überprüft und Konflikte bzw. Inkonsistenzen im Constraint-Netz sofort erkannt. Bei Berechnungsfunktionen hingegen ist der Zeitpunkt der Ausführung abhängig von den Eingangsvariablen und der vorher festgelegten Ausführungsreihenfolge. Ein Konflikt wird u.U. erst sehr spät bei der Auswertung der jeweiligen Funktion erkannt. Wird ein nicht zulässiger Wert berechnet, müssen ggf. vorhergehende Konfigurierungsschritte zurückgenommen werden vgl. Günter, 1992, S. 152; Syska und Cunis, 1991, S. 90 f..


next up previous contents index
Nächste Seite: 3.7.2 Besonderheiten des Constraint-Systems Aufwärts: 3.7 Diskussion zum Constraint-System Vorherige Seite: 3.7 Diskussion zum Constraint-System   Inhalt   Index