Nächste Seite: 7.8 Ausnahmebehandlung
Aufwärts: 7.7 Constraint-Lösungsstrategien
Vorherige Seite: 7.7.3 Ausführungskontrolle
Inhalt
Index
Ein einfaches Beispiel für einen Lösungsvorgang in der derzeitigen
Implementierung des YCM ist in dem Sequenzdiagramm in
Abbildung 7.9 zu sehen:
Abbildung 7.9:
Beispiel für einen Constraint-Lösungsvorgang
|
- Die evaluate()-Methode des Constraint-Managers
wird in Schritt 1 von außerhalb aufgerufen.
- In Schritt 2 und 3 wird jeweils das Preprozessing der beiden
vorhandenen Constraint-Netze mit den zugeordneten Strategien
namens medium_consistency und search
aufgerufen. Durch beide Aufrufe erfolgt keinerlei Änderung an
den Domänen der beteiligten Constraint-Variablen, daher kann
in Schritt 4 und 5 mit der Konsistenzherstellung fortgefahren
werden.
- Als Ergebnis von Schritt 4 liefert die Propagation des
Constraint-Netzes, dem die Strategie
medium_consistency zugeordnet ist, eine
Einschränkung der Wertebereiche
(domainModification==true). Daher ist eine erneute
Iteration zur Konsistenzherstellung notwendig (Schritt 6 und
7).
- Anschließend erfolgt die Lösungssuche, welche ebenfalls keine
Änderung der Wertebereiche zur Folge hat. Die
Constraint-Auswertung ist damit beendet.
Es können abschließend Anfragen an den Constraint-Manager gestellt
werden, die Informationen über gefundene Lösungen zur Antwort haben.
Außerdem lassen sich z.B. die Wertebereiche bestimmter Variablen
oder der Zustand eines bestimmten Constraint-Netzes abfragen. Es ist
weiterhin möglich, den Constraint-Netzen weitere Constraints
hinzuzufügen oder die Wertebereiche existierender
Constraint-Variablen manuell zu modifizieren und einen erneuten
Auswertungsvorgang zu starten.
Nächste Seite: 7.8 Ausnahmebehandlung
Aufwärts: 7.7 Constraint-Lösungsstrategien
Vorherige Seite: 7.7.3 Ausführungskontrolle
Inhalt
Index