Title: Structural%20Decomposition%20Methods%20for%20Constraint%20Solving%20and%20Optimization
1Structural Decomposition Methods for Constraint
Solving and Optimization
Please do not distribute beyond MERS group
- Martin Sachenbacher
- February 2003
2Outline
- Decomposition-based Constraint Solving
- Tree Decompositions
- Hypertree Decompositions
- Solving Acyclic Constraint Networks
- Decomposition-based Optimization
- Dynamic Programming
- Generalized OCSPs involving State Variables
- Demo of Prototype
- Decomposition vs. other Solving Methods
- Conditioning-based Methods
- Conflict-directed Methods
3Outline
- Decomposition-based Constraint Solving
- Tree Decompositions
- Hypertree Decompositions
- Solving Acyclic Constraint Networks
- Decomposition-based Optimization
- Dynamic Programming
- Generalized OCSPs involving State Variables
- Demo of Prototype
- Decomposition vs. other Solving Methods
- Conditioning-based Methods
- Conflict-directed Methods
4Constraint Satisfaction Problems
- Domains dom(vi)
- Variables V v1, v2, , vn
- Constraints R r1, r2, , rm
- Tasks
- Find a solution
- Find all solutions
5Methods for Solving CSPs
Guessing
- Generate-and-test
- Backtracking
- Truth Maintenance
- Kernels
Decomposition
Conflicts
6Example
r(E,B)
E
r(E,D)
r(E,C)
1,2
1 22 1
1 22 1
1 21 32 12 3
?
?
1,2
1,2,3
?
D
?
C
r(B,C)
1 22 1
?
1,2
1,2
?
A
B
r(D,A)
r(A,B)
1 22 1
1 22 1
7Example
E
r(E,B)
r(E,D)
r(E,C)
1,2
1 22 1
1 22 1
1 21 32 12 3
?
?
1,2
1,2,3
?
D
?
C
r(B,C)
1 22 1
?
1,2
1,2
?
A
B
r(D,A)
r(A,B)
1 22 1
1 22 1
8Example
r(B,C)
r(D,B,C)
1 22 1
2 2 22 2 31 1 11 1 3
1,2
1,2,3
D
C
?
1,2
1,2
?
A
B
r(D,A)
r(A,B)
1 22 1
1 22 1
9Example (continued)
r(B,C)
r(D,B,C)
1 22 1
2 2 22 2 31 1 11 1 3
1,2
1,2,3
D
C
?
1,2
1,2
?
A
B
r(D,A)
r(A,B)
1 22 1
1 22 1
10Example (continued)
r(A,B,C)
r(A,B)
1 2 21 2 32 1 12 1 3
1 22 1
1,2,3
C
1,2
1,2
A
B
11Example (continued)
r(A,B)
1 22 1
1,2
1,2
A
B
12Example (continued)
r(A)
Backtrack-free
12
Extend backwardsto find solutions
1,2
A
13Idea of Decomposition
- Computational Steps Join, Project
Var A
r(A)
Var B
r(B,A)
r(A,B)
Var C
r(C,B)
r(A,B,C)
Var D
r(D,A)
r(B,C,D)
Var E
r(E,D) r(E,B) r(E,C)
14Idea of Decomposition
- Computational Scheme (acyclic)
r(A)
r(B,A) ? r(A,B)
r(C,B) ? r(A,B,C)
r(D,A) ? r(B,C,D)
r(E,D) ? r(E,B) ? r(E,C)
15Idea of Decomposition
- Alternative Scheme for the Example
r(E,B)
r(E,D) ? r(B,D)
r(E,C) ? r(B,C)
r(A,B) ? r(A,D)
16Tree Decompositions
- A tree decomposition of a graph is a triple
(T,?,?) where T(N,E) is a tree, ? and ? are
labeling functions associating with each node n
? N two sets ?(n) ? V, ?(n) ? R such that - For each rj ? R, there is at least one n ? N such
that rj ? ?(n) and scope(rj) ? ?(n) (covering) - For each variable vi ? V, the set n ? N vi ?
?(n) induces a connected subtree of T
(connectedness) - The tree-width of a tree decomposition is defined
as max(?(n)), n ? N.
17Tree Decompositions
- Comparing Tree Decompositions for the Example
R(E,B)
R(A)
Tree-Width 4
R(B,A) ? R(A,B)
R(E,C) ? R(B,C)
R(E,D) ? R(B,D)
R(C,B) ? R(A,B,C)
Tree-Width 3
R(A,B) ? R(A,D)
R(D,A) ? R(B,C,D)
R(E,D) ? R(E,B) ? R(E,C)
18Structural Decomposition Methods
- Biconnected Components Freuder 85
- Treewidth Robertson and Seymour 86
- Tree Clustering Dechter Pearl 89
- Cycle Cutset Dechter 92
- Bucket Elimination Dechter 97
- Tree Clustering with Minimization Faltings 99
- Hinge Decompositions Gyssens and Paredaens 84
- Hypertree Decompositions Gottlob et al. 99
19Tree Clustering
A
B
C
D
E
F
20Tree Clustering
- Step 1 Select Variable Ordering
A
B
C
D
E
F
21Tree Clustering
- Step 2 Make graph chordal (connect non-adjacent
parents)
A
A
B
B
C
C
D
E
F
22Tree Clustering
- Step 3 Identify maximal cliques
A
B
C
D
E
F
23Tree Clustering
- Step 4 Form Dual Graph using Cliques as Nodes
A,B,C,E
B,C,E
E
D,E
B,C,D,E
D,E,F
24Tree Clustering
- Step 5 Remove Redundant Arcs
Tree-Width 4
A,B,C,E
B,C,E
(E)
D,E
B,C,D,E
D,E,F
25Tree Clustering
- Alternative variable order F,E,D,C,B,A produces
F,D
Tree-Width 3
D
B,C,D
B,C
A,B,C
(B)
B,A
A,B,E
26Decomposing Hypergraphs
- Possible Approach Turn hypergraph into
primal/dual graph, then apply graph decomposition
method - But sub-optimal, conversion loses information
- Idea Gottlob 99 Generalize decomposition to
hypergraphs
27Hypertree Decompositions
- A triple (T,?,?) such that
- For each rj ? R, there is at least one n ? N such
that scope(rj) ? ?(n) (covering) - For each variable vi ? V, the set n ? N vi ?
?(n) induces a connected subtree of T
(connectedness) - For each n ? N, ?(n) ? scope(?(n))
- For each n ? N, scope(?(n)) ? ?(Tn) ? ?(n), where
Tn is the subtree of T rooted at n - The hypertree-width of a hypertree decomposition
is defined as max(?(n)), n?N.
28Tree-Width vs. Hypertree-Width
- Class of CSPs with bounded HT-width subsumes
class of CSPs with bounded tree-width (Gottlob
00) - Determining the HT-width of a CSP is NP-complete
- For each fixed k, it can be determined in
polynomial time whether the HT-width of a CSP is
? k
29Game Characterization Tree-Width
- Robber and k Cops
- Cops want to capture the Robber
- Each Cop controls a node of the graph
- At any time, Robber and Cops can move to
neighboring nodes - Robber tries to escape, but must avoid nodes
controlled by Cops
30Playing the Game
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
31First Move of the Cops
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
32Shrinking the Space
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
33The Capture
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
34Game Characterization HT-Width
- Cops are now on the edges
- Cop controls all the nodes of an edge
simultaneously
35Playing the Game
V
P
R
S
X
Y
Z
T
U
W
36First Move of the Cops
V
P
R
S
X
Y
Z
T
U
W
37Shrinking the Space
V
P
R
S
X
Y
T
Z
U
W
38The Capture
V
P
R
S
X
Y
Z
T
U
W
39Different Robbers Choice
V
P
R
S
X
Y
Z
T
U
W
40The Capture
V
P
R
S
X
Y
Z
T
U
W
41Strategies and Decompositions
- Theorem A hypergraph has hypertree-width ? k iff
k Cops have a winning strategy - Winning strategies correspond to decompositions
and vice versa
42First Move of the Cops
a(S,X,T,R) ? b(S,Y,U,P)
V
P
R
S
X
Y
Z
T
U
W
43Possible Choice for the Robber
a(S,X,T,R) ? b(S,Y,U,P)
V
P
R
S
X
Y
Z
T
U
W
44The Capture
a(S,X,T,R) ? b(S,Y,U,P)
c(R,P,V,R)
V
P
R
S
X
Y
Z
T
U
W
45Alternative Choice for the Robber
a(S,X,T,R) ? b(S,Y,U,P)
c(R,P,V,R)
V
P
R
S
X
Y
Z
T
U
W
46Shrinking the Space
a(S,X,T,R) ? b(S,Y,U,P)
c(R,P,V,R)
d(X,Y) ? e(T,Z,U)
V
P
R
S
X
Y
Z
T
U
W
47The Capture
a(S,X,T,R) ? b(S,Y,U,P)
c(R,P,V,R)
d(X,Y) ? e(T,Z,U)
V
P
R
S
d(X,Y) ? f(W,X,Z)
X
Y
Z
T
U
W
48Decomposition
a(S,X,T,R) ? b(S,Y,U,P)
HT-Width 2
c(R,P,V,R)
d(X,Y) ? e(T,Z,U)
d(X,Y) ? f(W,X,Z)
49Decomposition-based CSP Solving
- Turn CSP into equivalent acyclic instance
- Solve equivalent acyclic instance (polynomial in
width)
W(E,C)
R(A,B) ? S(D,A)
T(B,C)
U(E,D)
T(B,C) ? U(E,D)
V(E,B)
Compilation
S(D,A)
R(A,B)
V(E,B)
W(E,C)
50Solving Acyclic CSPs
- Bottom-Up Phase
- Consistency check
- Top-Down Phase
- Solution extraction
- Polynomial complexity
- Highly parallelizable
51Bottom-Up Phase
- Node Ordering
- Solve(node)
- For Each tuple ? node.relation
- For Each child ? node.children
- cons ? consistentTuples(child.relation,tup
le) - If cons ? Then
- node.relation ? node.relation \
tuple - Exit For
- End If
- Next child
- Next tuple
Semi-join,DAC
52Example
9 9 98 8 87 7 76 6 6
non-emptysatisfiable
P(x,y,z)
9 9 28 8 37 8 5 7 5 87 7 58 9 2
9 7 29 6 77 5 5 5 4 84 3 5
Q(z,c,d)
R(x,a,b)
1 9 21 8 32 7 5 1 7 5
9 28 37 5
G(u,z,d)
H(c,d)
53Top-Down Phase
- Node Ordering
- Search Queue
- Initialization Queue ? (True)
- Expand(entry)
- cons ? consistentTuples(entry.node.relation,entry.
assignment) - For Each tuple ? cons
- Queue ? (nextInOrdering(entry.node),
- tuple ? entry.assignment)
- Next tuple
54Example
(True)
P(x,y,z)
9 9 97 7 7
9 7 29 6 77 5 5 5 4 84 3 5
9 9 28 8 37 7 5
Q(z,c,d)
R(x,a,b)
1 9 21 8 32 7 5 1 7 5
9 28 37 5
G(u,z,d)
H(c,d)
55Example
(True)
(xyz 999)
P
(abxyz 72999)
R
Backtrack-free Search
(abcdxyz 7292999)
Q
G
(abcduxyz 72921999)
H
(abcduxyz 72921999)
56Outline
- Decomposition-based Constraint Solving
- Tree Decompositions
- Hypertree Decompositions
- Solving Acyclic Constraint Networks
- Decomposition-based Optimization
- Dynamic Programming
- Generalized OCSPs involving State Variables
- Demo of Prototype
- Decomposition vs. other Solving Methods
- Conditioning-based Methods
- Conflict-directed Methods
57Optimal CSPs
- Domains dom(vi)
- Variables V v1, v2, , vn
- Constraints R r1, r2, , rm
- Utility Functions u(vi) dom(vi) ? R
- mutual preferential independence
- Tasks
- Find best solution
- Find k best solutions
- Find all solutions up to utility u
58Optimization for Acyclic CSPs
- Utility of tuple in n Utility of best
instantiation for variables in subtree Tn that is
compatible with tuple - Dynamic Programming Best instantiation composed
of tuple and best-utility consistentchild tuple
for each child of n - Proof Connectednessproperty of the
treedecomposition
n
Tn
59Example
r(A,B,C) (A,B,C) A?B?C
B
A
r(A,E,F) (A,E,F) A?E?F
r(C,D,E) (C,D,E) C?D?E
C
r(A,C,E) (A,C,E) A?C?E
F
E
U 6A5B4C3D2EF
D
60Example
001012002112
ACE
A,C
A,E
C,E
ABC
CDE
AEF
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
61Example
Weight
001012002112
U 8
5
ACE
A,C
A,E
C,E
CDE
AEF
ABC
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
U4
U9
62Example
001012002112
U 8
5
2
ACE
A,C
A,E
C,E
CDE
AEF
ABC
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
U6
63Example
001012002112
U 8
5
2
6 21
ACE
A,C
A,E
C,E
CDE
AEF
ABC
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
U11
U14
64Example
U 16 7
001012002112
U 813 21
ACE
U 49 12
U 1413 27
A,C
A,E
C,E
CDE
AEF
ABC
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
001,012,002,112,000,011,022,111,122,222
65Solving Acyclic Optimal CSPs
- Bottom-Up Phase
- Consistency Check plus Utility Computation
- Top-Down Phase
- Solution Extraction Best-First
- Polynomial complexity
- Highly parallelizable
66Bottom-Up Phase
- Solve(node)
- For Each tuple ? node.relation
- tuple.weight ? weight(tuple)
- For Each child ? node.children
- cons ? consistentTuples(child.relation,tup
le) - If cons ? Then
- node.relation ? node.relation \
tuple - Exit For
- Else tuple.weight ? tuple.weight
bestUtilToGo(cons) - End If
- Next child
- Next tuple
67Top-Down Phase
- Initialization Queue ? (True, 0)
- Expand(entry)
- cons ? consistentTuples(entry.node.relation,entry.
assignment) - For Each tuple ? cons
- util ? entry.util tuple.util -
bestUtil(cons) - Queue ? (nextInOrdering(entry.node),
- tuple ? entry.assignment,
util) - Next tuple
68Top-Down Phase Computing Utility
- Utility of extended assignment
- Util weight(tuple ? entry.assignment)
utilToGo(tuple ? entry.assignment) - weight(tuple ? entry.assignment)
tuple.utilToGo entry.utilToGo -
bestUtilToGo(cons) - tuple.util entry.util -
weightSharedVars(cons) -
bestUtilToGo(cons) - tuple.util entry.util - bestUtil(cons)
No need to call weight(), cancels out.
69Example
(True, 0)
(ACE 112, 27)
ACE
(ABCE 1112, 27)
ABC
Backtrack-free A Search
(ABCEF 11122, 27)
AEF
CDE
(ABCDEF 111222, 27)
(ABCDEF 111122, 24)
70OCSPs with State Variables
- Domains dom(vi)
- Variables V v1, v2, , vn
- Constraints R r1, r2, , rm
- Utility Functions u(vi) dom(vi) ? R for subset
Dec ? V - mutual preferential independence
- Tasks
- Find the best solution projected on Dec
- Find the k best solutions projected on Dec
- Find all solutions projected on Dec up to utility
u
71Example
X
A 1
Or1
And1
B 1
F 0
Y
Or2
C 1
And2
G 1
D 1
Z
Or3
E 0
72Example
- State Variables A, B, C, D, E, F, G, X, Y, Z
- Domain 0,1
- Decision Variables O1, O2, O3, A1, A2
- Domain ok, faulty
- Utility function Mode Probabilities
- Or-gate u(ok) 0.99, u(faulty) 0.01
- And-gate u(ok) 0.995, u(faulty) 0.005
73Example
Or3 ? And1
Y,Z
Y
C,X
Or2
And2
Or1
74State Variables Challenges
- Infeasible to iterate over tuples with state
variables - Instead Must handle sets of tuples with same
weight - Problem Child assignments can now constrain
themselfes mutually, hence they can no longer be
considered independently.
75Example
Decision Variables
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
76Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
77Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
78Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
79Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
Inconsistent!
80Idea
- Best-First-Search for Consistent Child
Assignments, until Parent Assignment is fully
covered, or Child Assignments are exhausted.
81Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
82Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
U 9.7E-3
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
U 0.99
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
U 0.01
U 0.005
83Example
ok ok 1 0 0 0 0 1ok ok 1 0 0 0 1 1ok ok 1 0 0 1
0 1
O3A1CEFXYZ
U 9.7E-3
U 4.8E-5
Y,Z
Y
C,X
O2BDY
A2GYZ
O1ACX
ok 1 1 1fty 1 1 1fty 1 0 1fty 1 1 0fty 1 0 0
ok 1 1 1fty 1 1 1fty 1 1 0
ok 1 1 1fty 1 1 1fty 1 1 0
U 0.01
U 0.01
U 0.005
84Bottom-Up Phase
- Solve(node)
- For Each tuple ? projDec(node.relation)
- tuples ? consistentTuples(node.relation,
tuple) - tuple.weight ? weigth(tuple)
- Repeat
- childrenAssign ? nextBestChildrenAssignmen
t(node.children) - cons ? consistentTuples(childrenAssign,
tuples) - If cons ? ? Then
- cons.weight ? tuple.weight
bestUtilToGo(cons) - insertPartitionElement(node, cons)
- tuples ? tuples \ cons
- End If
- Until tuples ? Or childrenAssign ?
- node.relation ? node.relation \ tuples
- Next tuple
85Example
ok ok 1 0 0 0 1 1ok ok 1 0 0 1 0 1ok ok 1 0 0 0
0 1
fty ok 1 0 0 0 1 1fty ok 1 0 0 1 0 1
U4.9E-9
U9.7E-3
U4.8E-5
U4.9E-7
U4.8E-5
fty fty 1 0 0 1 1 1fty fty 1 0 0 0 1 1fty fty 1
0 0 1 1 0fty fty 1 0 0 0 1 0fty fty 1 0 0 1 0 1
fty fty 1 0 0 1 0 0 fty fty 1 0 0 0 0 1 fty fty
1 0 0 0 0 0
ok fty 1 0 0 1 1 1ok fty 1 0 0 0 1 1ok fty 1 0
0 1 0 1ok fty 1 0 0 0 0 1
U4.8E-3
U4.9E-7
U4.8E-5
U2.4E-7
U2.4E-7
U2.4E-9
U2.4E-9
fty ok 1 0 0 0 1 1fty ok 1 0 0 0 1 0fty ok 1 0
0 1 0 0fty ok 1 0 0 1 0 1
U9.8E-5
U2.5E-11
U4.9E-7
86Top-Down Phase
- Initialization Queue ? (True, 0)
- Ordering on Siblings
- Expand(entry)
- Repeat
- siblingsAssign ? nextBestAssignment(entry.sibl
ings) - cons ? consistentTuples(siblingsAssign,
entry.assignment) - If cons ? ? Then
- bestUtilSibAssign ? Max(bestUtilSibAssign,
siblingsAssign.util) - util ? entry.util siblingsAssign.util -
bestUtilSibAssign - Queue ? (nextInOrdering(entry.siblings),
- projSharedOrDec(cons ?
entry.assignment), util) - End If
- Until siblingsAssign 0
87Example
(True, 0)
Or3 ? And1
(O3A1CXYZ ok ok 1011, 0.0097)
And2
Or2
Or1
(O1O2O3A1A2 fty ok ok ok ok, 0.0097)
88Example Leading Four Solutions
(True, 0)
89Example Leading Four Solutions
(O3A1CXYZ ok ok 1011, 9.7E-3)
(O3A1CXYZ ok fty 1111, 4.8E-3)
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O3A1CXYZ ok ok 1101, 4.8E-5)
90Example Leading Four Solutions
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
(O3A1CXYZ ok fty 1111, 4.8E-3)
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O3A1CXYZ ok ok 1101, 4.8E-5)
91Example Leading Four Solutions
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
(O3A1CXYZ ok fty 1111, 4.8E-3)
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O3A1CXYZ fty ok 1010, 4.8E-5)
92Example Leading Four Solutions
(O3A1CXYZ ok fty 1111, 4.8E-3)
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
93Example Leading Four Solutions
(O1O2O3A1A2 ok ok ok fty ok, 4.8E-3)
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
94Example Leading Four Solutions
(O3A1CXYZ fty ok 1011, 9.8E-5)
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
(O1O2O3A1A2 ok ok ok fty ok, 4.8E-3)
Solution 2
95Example Leading Four Solutions
(O1O2O3A1A2 fty ok fty ok ok, 9.8E-5)
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
(O1O2O3A1A2 ok ok ok fty ok, 4.8E-3)
Solution 2
96Example Leading Four Solutions
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
(O1O2O3A1A2 ok ok ok fty ok, 4.8E-3)
Solution 2
(O1O2O3A1A2 fty ok fty ok ok, 9.8E-5)
Solution 3
97Example Leading Four Solutions
(O1O2O3A1A2 fty ok ok ok ok, 9.7E-3)
Solution 1
(O1O2O3A1A2 ok ok ok fty ok, 4.8E-3)
Solution 2
(O1O2O3A1A2 fty ok fty ok ok, 9.8E-5)
Solution 3
(O1O2O3A1A2 fty fty ok ok ok, 9.8E-5)
Solution 4
Search queue size bounded by k
98Prototype for Decomposition-based Optimization
Decomp.-basedOptimization
OCSP.XML
Tree.XML
ConstraintSystem
OptkDecomp(HT-Decomp)
BDD
99Outline
- Decomposition-based Constraint Solving
- Tree Decompositions
- Hypertree Decompositions
- Solving Acyclic Constraint Networks
- Decomposition-based Optimization
- Dynamic Programming
- Generalized OCSPs involving State Variables
- Demo of Prototype
- Decomposition vs. other Solving Methods
- Conditioning-based Methods
- Conflict-directed Methods
100Methods for Solving CSPs
Guessing
- Generate-and-test
- Backtracking
- Truth Maintenance
- Kernels
Decomposition
Conflicts
101Decomposition, Elimination, Resolution
- Basic Principle
- Analytic reduction to equivalent subproblems
- Advantages
- No search, no inconsistencies (unless no solution
exists) - Solutions obtained simultaneously (knowledge
compilation) - Time/Space Requirements
- Bound by structural properties (width)
- Worst case is average case
- Problems
- Space Requirements (large constraints, as
variables are unassigned)
102Conditioning, Search, Guessing
- Basic Principle
- Breaking up the problem into smaller subproblems
by (heuristically) assigning values and testing
candidates
103Conditioning, Search, Guessing
- Basic Principle
- Breaking up the problem into smaller subproblems
by (heuristically) assigning values and testing
candidates - Advantages
- Less space (small constraints, as variables are
assigned) - Works also for hard problems
- Time/Space Requirements
- Exponential (but average case much better than
worst-case) - Problems
- Backtracking necessary
- Solutions obtained only one-by-one
104Conflicts, Truth Maintenance
- Basic Principle
- Find and generalize inconsistencies (conflicts)
to construct descriptions of feasible regions
(kernels) - Advantages
- Re-use of information
- Avoids redundant exploration of the search space
- Time/Space Requirements
- Exponential (both in number of conflicts and size
of kernels) - Problems
- Complexity
105Examples
- Elimination
- SAB (Structural Abduction) Dechter 95
- Conditioning
- CBA (Constraint-based A) Williams 0?
- Conflict Generation
- GDE (General Diagnosis Engine) de Kleer Williams
87
106Approximations
- Approximate Elimination
- Local constraint propagation (incomplete)
- Approximate Conditioning
- Hill Climbing, Particle Filtering (incomplete)
- Approximate Conflict Generation
- Focussed ATMS, Sherlock (incomplete)
107Hybrids
- Elimination Conditioning
- DCDR(b) Rish Dechter 96
- Conditioning Conflict Generation
- CDA Williams 0?
- Elimination Conflict Generation
- XC1 Mauss Tatar 02
Challenge Elimination Conditioning Conflicts.
108Resources
- Websites
- F. Scarcellos homepage http//ulisse.deis.unical
.it/frank - Software
- optkdecomp implements hypertree decomposition
(Win32) - decompOpSat implements tree-based optimization
(Win32) - Papers
- Gottlob, Leone, Scarcello A comparison of
structural CSP decomposition methods. Artificial
Intelligence 124(2), 2000 - Gottlob, Leone, Scarcello On Tractable Queries
and Constraints, DEXA99, Florence, Italy, 1999 - Rina Dechter and Judea Pearl, Tree clustering for
constraint networks, Artificial Intelligence
38(3), 1989