next up previous contents index
Nächste Seite: 3.6.4 Visualisierung des Constraint-Netzes Aufwärts: 3.6 Constraint-Wissen Vorherige Seite: 3.6.2 Constraint-Relationen   Inhalt   Index

3.6.3 Constraint-Netz

Instanzen von Konfigurierungsobjekten werden während des Konfigurierungsverlaufs nach und nach durch die Kontrolle bzw. durch den Pattern-Matcher, basierend auf den Konzepten der Begriffshierarchie, instantiiert. Weil mit jeder neuen Instanz, je nach Spezifikation in der Wissensbasis, Constraint-Abhängigkeiten bzgl. der Attribute eingehalten werden müssen, werden entsprechende Instanzen der Constraint-Relationen ebenfalls dynamisch während der Konfigurierung erzeugt. Sie bilden ein inkrementell anwachsendes Constraint-Netz, dessen Abhängigkeiten erfüllt werden müssen, um eine konsistente Konfiguration zu erhalten.

Ein simples Beispiel für ein Constraint-Netz einer PC-Konfigurierung ist in Abbildung 3.10 zu sehen. Die Abhängigkeiten des Tupel-Constraints aus Tabelle 3.1 sind hier als Funktions-Constraints spezifiziert. Die Knoten entsprechen den Constraint-Variablen, die Kanten repräsentieren die Constraints. Die Taktfrequenzen für das Mainboard und den Prozessor müssen identisch sein, während die Taktfrequenz für den Speicher jeweils größer oder gleich sein darf.

Abbildung 3.10: Beispiel für ein Constraint-Netz
\begin{figure}\centering
\includegraphics[width=12cm]{images/engcon_constraintnetz}
\ifx\pdfoutput\undefined
\fi
\end{figure}

Zur Propagation des Constraint-Netzes werden unbekannte oder unterspezifizierte Werte aus bereits bekannten Slot-Werten abgeleitet bzw. die vorhandenen Wertebereiche eingeschränkt (vgl. Günter, 1992, S. 100). Am Ende einer Propagation wird ein bestimmter Konsistenzgrad erreicht, was einer Problemreduktion entspricht. Ein Constraint ist konsistent, wenn für jeden Wert aus der Domäne einer Constraint-Variable konsistente Werte in den Domänen der übrigen, in dem Constraint vorkommenden Variablen existieren, so dass das Constraint erfüllt ist. Es wird allgemein zwischen lokaler und globaler Konsistenz unterschieden. Während bei globaler Konsistenz das gesamte Constraint-Netz konsistent sein muss, bedeutet lokale Konsistenz, dass jeweils nur, je nach lokalem Konsistenzgrad, bestimmte Bereiche des Constraint-Netzes konsistent sind. Ausführlich wird auf unterschiedliche Propagationsmechanismen in Kapitel 5 eingegangen.

Die Propagation des Constraint-Netzes erfolgt bei jedem durch die Kontrolle gesteuerten Konfigurierungszyklus. Die Constraint-Variablen müssen dazu vorher mit den aktuellen Wertebelegungen der Slots der Konfigurierungsobjekte belegt sein. Danach erfolgt die eigentliche Propagation durch das Constraint-System. Abschließend werden wiederum die propagierten Wertebereiche der Constraint-Variablen aus dem Constraint-System zurück in die entsprechenden Slots der Konfigurierungsobjekte der aktuellen Teilkonfiguration geschrieben.


next up previous contents index
Nächste Seite: 3.6.4 Visualisierung des Constraint-Netzes Aufwärts: 3.6 Constraint-Wissen Vorherige Seite: 3.6.2 Constraint-Relationen   Inhalt   Index