|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectyacs.net.ConstraintNet
Klasse zur Repräsentation des Constraint-Netzes eines Teilproblems innerhalb von YACS.
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 | |
ConstraintNet(Strategy strategy)
Konstruktor -- Das Constraint-Netz muss mit einer zugehörigen Strategie instantiiert werden, die für die Verarbeitung der Constraints verwendet wird. |
|
ConstraintNet(Strategy strategy,
Expression expr)
Konstruktor -- Benötigt die zugehörige Strategie und ein oder mehrere Constraints als Expression (ein Constraint-Teilproblem
generiert aus einem String mit Kommata-separierter Liste von
Constraint-Ausdrücken). |
Method Summary | |
void |
addConstraint(Expression constraint)
Fügt ein Constraint dem vorhandenen Constraint- Expression
hinzu. |
boolean |
addSolution(Solution solution)
Fügt diesem Teilproblem eine Lösungen hinzu. |
void |
clear()
Initialisiert das Constraint-Netz, d.h. es wird der Expression
für das Teilproblem (inkl. der Variablen und Domänen sowie der primitiven
Constraints), die bisher gefundenen Lösungen sowie die Informationen über
die Konsistenz des Constraint-Netzes gelöscht. |
java.util.List |
getConstraints()
Liefert eine Liste der in diesem Teilproblem enthaltenen (primitiven) Constraints (enthält Instanzen der Klasse yacs.parser.Expression ). |
Domain |
getDomain(java.lang.String variableName)
Liefert die entsprechende Domäne zur übergebenen Variable. |
java.util.List |
getDomains()
Erzeugt und liefert eine "unmodifizierbare" Liste aller Domänen (Instanzen der der Klasse yacs.domain.Domain ) des Teilproblems. |
Solutions |
getSolutions()
Liefert die bereits gefundenen Lösungen für dieses Teilproblem. |
java.lang.String |
getStrategyName()
Liefert den Namen der zu diesem Teilproblem gehörigen Constraint-Lösungsstrategie. |
Expression |
getSubproblem()
Liefert das Constraint-Teilproblem bzw. den Constraint-Ausdruck. |
java.util.List |
getVariables()
Liefert eine "unmodifizierbare" Liste aller Variablen (als Strings ) des Teilproblems. |
boolean |
hasFalseDomain()
Liefert true , wenn die Domäne einer Variable des Teilproblems
leer ist. |
boolean |
hasSolutions()
Liefert true , wenn für das Teilproblem bereits Lösungen
gefunden wurden, false wenn nicht. |
boolean |
hasValuationDomain()
Liefert true , wenn eine "valuation domain" vorliegt, d.h. in
den Domänen aller Variablen des Teilproblems ist jeweils genau ein Wert
enthalten. |
boolean |
isInconsistent()
Gibt zurück, ob von einem Constraint-Solver eine Inkonsistenz gemeldet wurde (durch Auslösen einer InconsistencyException ). |
boolean |
setDomain(java.lang.String variableName,
Domain variableDomain)
Belegt die angegebene Variable mit der übergebenen Domäne. |
java.lang.String |
toString()
Rückgabe des Constraint-Netzes als String (für Debugging). |
boolean |
triggerConsistency()
Phase 2 der Constraint-Verarbeitung: Wendet die in der Strategie spezifizierten Solver zur Konsistenzherstellung auf das Constraint-Netz an. |
boolean |
triggerPreprocessing()
Phase 1 der Constraint-Verarbeitung: Wendet die in der Strategie spezifizierten Preprozessing-Solver auf das Constraint-Netz an. |
boolean |
triggerSearch()
Phase 3 der Constraint-Verarbeitung: Wendet die in der Strategie spezifizierten Solver zur Lösungssuche auf das Constraint-Netz an. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public ConstraintNet(Strategy strategy)
strategy
- Strategypublic ConstraintNet(Strategy strategy, Expression expr)
Expression
(ein Constraint-Teilproblem
generiert aus einem String
mit Kommata-separierter Liste von
Constraint-Ausdrücken).
strategy
- Strategyexpr
- ExpressionMethod Detail |
public void addConstraint(Expression constraint)
Expression
hinzu. Damit ein einheitlicher Namensraum sichergestellt ist, muss durch
den Parser sichergestellt werden, dass neue Variablen mit den Namen bereits
existierender Variablen auf dassselbe Objekt verweisen.
constraint
- Expressionpublic java.lang.String getStrategyName()
public Expression getSubproblem()
public java.util.List getConstraints()
yacs.parser.Expression
).
public java.util.List getVariables()
Strings
) des Teilproblems.
public Solutions getSolutions()
public boolean addSolution(Solution solution)
true
,
wenn dies erfolgreich verlaufen ist (Lösung war noch nicht vorhanden),
false
wenn nicht (Lösung existierte bereits)
solution
- Solution
public java.util.List getDomains()
yacs.domain.Domain
) des Teilproblems.
public Domain getDomain(java.lang.String variableName)
null
zurück, wenn keine Variable unter dem angegebenen Namen
existiert.
variableName
- String
public boolean setDomain(java.lang.String variableName, Domain variableDomain)
variableName
- StringvariableDomain
- Domainpublic boolean hasFalseDomain()
true
, wenn die Domäne einer Variable des Teilproblems
leer ist. In diesem Fall ist keine Konsistenz bzw. Lösung herstellbar.
Ansonsten wird false
zurückgegeben.
public boolean hasValuationDomain()
true
, wenn 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.
public boolean hasSolutions()
true
, wenn für das Teilproblem bereits Lösungen
gefunden wurden, false
wenn nicht.
public boolean isInconsistent()
InconsistencyException
).
public boolean triggerPreprocessing()
true
, wenn Wertebereichseinschränkungen vorgenommen wurden,
false
wenn nicht.
public boolean triggerConsistency()
true
, wenn Wertebereichseinschränkungen vorgenommen
wurden, false
wenn nicht.
public boolean triggerSearch()
true
, wenn Wertebereichseinschränkungen vorgenommen wurden,
false
wenn nicht.
public void clear()
Expression
für das Teilproblem (inkl. der Variablen und Domänen sowie der primitiven
Constraints), die bisher gefundenen Lösungen sowie die Informationen über
die Konsistenz des Constraint-Netzes gelöscht.
public java.lang.String toString()
String
(für Debugging).
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |