|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectyacs.YacsConstraintManagerImpl
Implementierung des YACS Constraint-Managers.
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
| Constructor Summary | |
YacsConstraintManagerImpl()
Konstruktor -- Wird dieser Konstruktor ohne Angabe des Pfades zu der XML-Datei mit den Constraint-Lösungsstrategien aufgerufen, wird diese im aktuellen Verzeichnis unter dem Namen yacs_strategies.xml
gesucht. |
|
YacsConstraintManagerImpl(java.lang.String strategyPath)
Konstruktor -- Der Parameter strategyPath ist der Pfad zur der
XML-Datei, in der die Constraint-Lösungsstrategien spezifiziert sind. |
|
| 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. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public YacsConstraintManagerImpl()
yacs_strategies.xml
gesucht.
public YacsConstraintManagerImpl(java.lang.String strategyPath)
strategyPath ist der Pfad zur der
XML-Datei, in der die Constraint-Lösungsstrategien spezifiziert sind.
strategyPath - String| Method Detail |
public java.util.List getStrategyNames()
Strings)
der existierenden Constraint-Lösungsstrategien und entsprechend der
verfügbaren Constraint-Netze.
getStrategyNames in interface YacsConstraintManagerpublic java.util.List getConstraintNets()
yacs.net.ConstraintNet).
getConstraintNets in interface YacsConstraintManager
public ConstraintNet getConstraintNet(java.lang.String strategyName)
throws StrategyNotFoundException
null wenn kein Constraint-Netz mit dieser
Strategie existiert.
getConstraintNet in interface YacsConstraintManagerstrategyName - 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.
addConstraint in interface YacsConstraintManagerconstraint - 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.
addConstraints in interface YacsConstraintManagerconstraint - StringstrategyName - String
ConstraintParserException
StrategyNotFoundException
public void setVariableDomain(java.lang.String variableName,
Domain variableDomain)
throws VariableNotFoundException
setVariableDomain in interface YacsConstraintManagervariableName - StringvariableDomain - Domain
VariableNotFoundException
public Domain getVariableDomain(java.lang.String variableName)
throws VariableNotFoundException
getVariableDomain in interface YacsConstraintManagervariableName - String
VariableNotFoundExceptionpublic java.util.List getVariables()
String).
getVariables in interface YacsConstraintManager
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.
getVariables in interface YacsConstraintManagerstrategyName - String
StrategyNotFoundException
public Solutions getSolutions(java.lang.String strategyName)
throws StrategyNotFoundException
getSolutions in interface YacsConstraintManagerstrategyName - 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.
hasSolutions in interface YacsConstraintManagerstrategyName - 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.
hasFalseDomain in interface YacsConstraintManagerstrategyName - 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.
hasValuationDomain in interface YacsConstraintManagerstrategyName - String
StrategyNotFoundException
public boolean isInconsistent(java.lang.String strategyName)
throws StrategyNotFoundException
isInconsistent in interface YacsConstraintManagerstrategyName - String
StrategyNotFoundExceptionpublic void evaluate()
triggerPreprocess(), triggerConsistency und
triggerSearch), bis keine Wertebereichseinschränkungen mehr
auftreten.
evaluate in interface YacsConstraintManagerpublic void tabularasa()
tabularasa in interface YacsConstraintManager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||