public class TreeCSPSolver extends SolutionStrategy
function TREE-CSP-SOLVER(csp) returns a solution, or failure inputs: csp, a CSP with components X, D, C n ← number of variables in X assignment ← an empty assignment root ← any variable in X X ← TOPOLOGICALSORT(X, root ) for j = n down to 2 do MAKE-ARC-CONSISTENT(PARENT(Xj),Xj ) if it cannot be made consistent then return failure for i = 1 to n do assignment[Xi] ← any consistent value from Di if there is no consistent value then return failure return assignment
Figure 6.11 The TREE-CSP-SOLVER algorithm for solving tree-structured CSPs. If the CSP has a solution, we will find it in linear time; if not, we will detect a contradiction.
Modifier and Type | Field and Description |
---|---|
protected int[] |
parent |
Constructor and Description |
---|
TreeCSPSolver() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
makeArcConsistent(Variable xi,
Variable xj,
Constraint constraint,
CSP csp,
DomainRestoreInfo info) |
Assignment |
solve(CSP csp)
Returns a solution to the specified CSP, which specifies values for all
the variables such that the constraints are satisfied.
|
protected java.util.List<Variable> |
topologicalSort(CSP csp,
java.util.List<Variable> l,
Variable root) |
addCSPStateListener, fireStateChanged, fireStateChanged, removeCSPStateListener
public Assignment solve(CSP csp)
SolutionStrategy
solve
in class SolutionStrategy
csp
- a CSP to solveprotected java.util.List<Variable> topologicalSort(CSP csp, java.util.List<Variable> l, Variable root)
protected boolean makeArcConsistent(Variable xi, Variable xj, Constraint constraint, CSP csp, DomainRestoreInfo info)