|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.
Copyright (C) 2005 Wolfgang Runte
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
Method Summary | |
void |
addConstraint(java.lang.String constraint,
java.lang.String strategyName)
Mit dieser Methoden kann ein Constraint inkrementell dem Lösungsprozess zugeführt werden. |
void |
addConstraints(java.lang.String constraint,
java.lang.String strategyName)
Mit dieser Methoden können mehrere Constraints gleichzeitig bzw. ein Teilproblem inkrementell dem Lösungsprozess zugeführt werden. |
void |
evaluate()
Startet den Constraint-Lösungsvorgang. |
ConstraintNet |
getConstraintNet(java.lang.String strategyName)
Liefert das entsprechende Constraint-Netz zu dem übergebenen Strategienamen, null wenn kein Constraint-Netz mit dieser
Strategie existiert. |
java.util.List |
getConstraintNets()
Liefert eine "unmodifizierbare" Liste mit verfügbaren Constraint-Netzen (enthält Instanzen der Klasse yacs.net.ConstraintNet ). |
Solutions |
getSolutions(java.lang.String strategyName)
Liefert die ggf. bereits gefundenen Lösungen für das der übergebenen Strategie zugehörige Teilproblem. |
java.util.List |
getStrategyNames()
Liefert eine "unmodifizierbare" Liste mit den Namen ( Strings )
der existierenden Constraint-Lösungsstrategien und entsprechend der
verfügbaren Constraint-Netze. |
Domain |
getVariableDomain(java.lang.String variableName)
Liefert die entsprechende Domäne zur übergebenen Variable. |
java.util.List |
getVariables()
Liefert eine Liste mit den Namen aller Variablen sämtlicher vorhandenen Constraint-Netze (enthält Instanzen der Klasse String ). |
java.util.List |
getVariables(java.lang.String strategyName)
Liefert eine Liste mit den Variablen (Instanzen der Klasse yacs.parser.Variable ), die sich in dem der übergebenen
Strategie zugehörigen Constraint-Netz befinden. |
boolean |
hasFalseDomain(java.lang.String strategyName)
Liefert true , wenn die Domäne einer Variablen des der
übergebenen Strategie zugehörigen Teilproblems leer ist. |
boolean |
hasSolutions(java.lang.String strategyName)
Liefert true , wenn für das der übergebenen Strategie
zugehörige Teilproblem bereits Lösungen gefunden wurden,
false wenn nicht. |
boolean |
hasValuationDomain(java.lang.String strategyName)
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. |
boolean |
isInconsistent(java.lang.String strategyName)
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). |
void |
setVariableDomain(java.lang.String variableName,
Domain variableDomain)
Setzt den Wertebereich für eine Variable. |
void |
tabularasa()
Setzt sämtliche Constraint-Netze wieder in den Ausgangszustand zurück, d.h. |
Method Detail |
public java.util.List getStrategyNames()
Strings
)
der existierenden Constraint-Lösungsstrategien und entsprechend der
verfügbaren Constraint-Netze.
public java.util.List getConstraintNets()
yacs.net.ConstraintNet
).
public ConstraintNet getConstraintNet(java.lang.String strategyName) throws StrategyNotFoundException
null
wenn kein Constraint-Netz mit dieser
Strategie existiert.
strategyName
- String
StrategyNotFoundException
public void addConstraint(java.lang.String constraint, java.lang.String strategyName) throws ConstraintParserException, StrategyNotFoundException
String
wird der Name der Strategie benötigt, mit der das
Constraint verarbeitet werden soll.
constraint
- StringstrategyName
- String
ConstraintParserException
StrategyNotFoundException
public void addConstraints(java.lang.String constraint, java.lang.String strategyName) throws ConstraintParserException, StrategyNotFoundException
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.
constraint
- StringstrategyName
- String
ConstraintParserException
StrategyNotFoundException
public void setVariableDomain(java.lang.String variableName, Domain variableDomain) throws VariableNotFoundException
variableName
- StringvariableDomain
- Domain
VariableNotFoundException
public Domain getVariableDomain(java.lang.String variableName) throws VariableNotFoundException
variableName
- String
VariableNotFoundException
public java.util.List getVariables()
String
).
public java.util.List getVariables(java.lang.String strategyName) throws StrategyNotFoundException
yacs.parser.Variable
), die sich in dem der übergebenen
Strategie zugehörigen Constraint-Netz befinden.
strategyName
- String
StrategyNotFoundException
public Solutions getSolutions(java.lang.String strategyName) throws StrategyNotFoundException
strategyName
- String
StrategyNotFoundException
public boolean hasSolutions(java.lang.String strategyName) throws StrategyNotFoundException
true
, wenn für das der übergebenen Strategie
zugehörige Teilproblem bereits Lösungen gefunden wurden,
false
wenn nicht.
strategyName
- String
StrategyNotFoundException
public boolean hasFalseDomain(java.lang.String strategyName) throws StrategyNotFoundException
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.
strategyName
- String
StrategyNotFoundException
public boolean hasValuationDomain(java.lang.String strategyName) throws StrategyNotFoundException
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.
strategyName
- String
StrategyNotFoundException
public boolean isInconsistent(java.lang.String strategyName) throws StrategyNotFoundException
strategyName
- String
StrategyNotFoundException
public void evaluate()
public void tabularasa()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |