Der YACS Constraint-Manager (YCM) dient als zentrale Schnittstelle des YACS-Frameworks. Er initiiert das Auslesen der Constraint-Lösungsstrategien und verwaltet die entsprechenden Constraint-Netze. Über eine Instanz des YCM lassen sich Constraints anhand des Namens einer verfügbaren Constraint-Lösungsstrategie inkrementell zu den Constraint-Netzen hinzugefügen. Der YCM initiiert und steuert die Anwendung der Constraint-Lösungsstrategien und führt den phasenweisen Propagations- bzw. Lösungsprozess durch.
Deklaration:
Methoden:
Liefert eine ,,unmodifizierbare`` Liste mit den Namen (Strings) der existierenden Constraint-Lösungsstrategien und entsprechend der verfügbaren Constraint-Netze.
Liefert eine ,,unmodifizierbare`` Liste mit verfügbaren Constraint-Netzen (enthält Instanzen der Klasse yacs.net.ConstraintNet).
Liefert das entsprechende Constraint-Netz zu dem übergebenen Strategienamen, null wenn kein Constraint-Netz mit dieser Strategie existiert.
Mit dieser Methoden kann ein Constraint inkrementell dem Lösungsprozess zugeführt werden. Neben dem eigentlichen Constraint-Ausdruck als String wird der Name der Strategie benötigt, mit der das Constraint verarbeitet werden soll.
Mit dieser Methoden können mehrere Constraints gleichzeitig bzw. ein Teilproblem inkrementell dem Lösungsprozess zugeführt werden. Neben dem eigentlichen Constraint-Ausdruck als String (die Constraint-Ausdrücke müssen darin jeweils durch ein Semikolon voneinander getrennt sein) wird der Name der Strategie benötigt, mit der die Constraints verarbeitet werden sollen.
Setzt den Wertebereich für eine Variable.
Liefert die entsprechende Domäne zur übergebenen Variable.
Liefert eine Liste mit den Namen aller Variablen sämtlicher vorhandenen Constraint-Netze (enthält Instanzen der Klasse String).
Liefert eine Liste mit den Variablen (Instanzen der Klasse yacs.parser.Variable), die sich in dem der übergebenen Strategie zugehörigen Constraint-Netz befinden.
Liefert die ggf. bereits gefundenen Lösungen für das der übergebenen Strategie zugehörige Teilproblem.
Liefert true, wenn für das der übergebenen Strategie zugehörige Teilproblem bereits Lösungen gefunden wurden, false wenn nicht.
Liefert true, wenn die Domäne einer Variablen des der übergebenen Strategie zugehörigen Teilproblems leer ist. In diesem Fall ist für dieses Teilproblem keine Konsistenz bzw. Lösung herstellbar. Ansonsten wird false zurückgegeben.
Liefert true, wenn für das der übergebenen Strategie zugehörige Teilproblem eine valuation domain vorliegt, d.h. in den Domänen aller Variablen des Teilproblems ist jeweils genau ein Wert enthalten. Ansonsten wird false zurückgegeben.
Gibt zurück, ob ein Constraint-Solver für das der übergebenen Strategie zugehörige Teilproblem eine Inkonsistenz gemeldet hat oder nicht (wird zurückgesetzt durch die benutzerinitiierte Modifikation der Wertebereiche der Constraint-Variablen und durch Hinzufügen einer Lösung zum Teilproblem).
Startet den Constraint-Lösungsvorgang. Ruft der Reihe nach die jeweiligen Auswertemethoden der vorhandenen Constraint-Netze auf.
Setzt sämtliche Constraint-Netze wieder in den Ausgangszustand zurück, d.h. es werden alle Informationen über die zugehörigen Teilprobleme einer Strategie (Constraints, Variablen, Domänen, etc.) gelöscht.