Structural%20Decomposition%20Methods%20for%20Constraint%20Solving%20and%20Optimization - PowerPoint PPT Presentation

About This Presentation
Title:

Structural%20Decomposition%20Methods%20for%20Constraint%20Solving%20and%20Optimization

Description:

Structural Decomposition Methods for Constraint Solving and Optimization. Martin Sachenbacher ... Please do not distribute beyond MERS group. Outline ... – PowerPoint PPT presentation

Number of Views:255
Avg rating:3.0/5.0
Slides: 109
Provided by: msac1
Learn more at: http://www.ai.mit.edu
Category:

less

Transcript and Presenter's Notes

Title: Structural%20Decomposition%20Methods%20for%20Constraint%20Solving%20and%20Optimization


1
Structural Decomposition Methods for Constraint
Solving and Optimization
Please do not distribute beyond MERS group
  • Martin Sachenbacher
  • February 2003

2
Outline
  • 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

3
Outline
  • 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

4
Constraint Satisfaction Problems
  • Domains dom(vi)
  • Variables V v1, v2, , vn
  • Constraints R r1, r2, , rm
  • Tasks
  • Find a solution
  • Find all solutions

5
Methods for Solving CSPs
Guessing
  • Generate-and-test
  • Backtracking
  • Truth Maintenance
  • Kernels
  • Analytic Reduction

Decomposition
Conflicts
6
Example
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
7
Example
  • Eliminate Variable E

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
8
Example
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
9
Example (continued)
  • Eliminate variable D

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
10
Example (continued)
  • Eliminate variable C

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
11
Example (continued)
  • Eliminate variable B

r(A,B)
1 22 1
1,2
1,2
A
B
12
Example (continued)
  • Non-empty Satisfiable!

r(A)
Backtrack-free
12
Extend backwardsto find solutions
1,2
A
13
Idea 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)
14
Idea 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)
15
Idea 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)
16
Tree 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.

17
Tree 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)
18
Structural 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

19
Tree Clustering
  • Example

A
B
C
D
E
F
20
Tree Clustering
  • Step 1 Select Variable Ordering

A
B
C
D
E
F
21
Tree Clustering
  • Step 2 Make graph chordal (connect non-adjacent
    parents)

A
A
B
B
C
C
D
E
F
22
Tree Clustering
  • Step 3 Identify maximal cliques

A
B
C
D
E
F
23
Tree 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
24
Tree 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
25
Tree 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
26
Decomposing 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

27
Hypertree 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.

28
Tree-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

29
Game 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

30
Playing the Game
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
31
First Move of the Cops
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
32
Shrinking the Space
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
33
The Capture
q
b
a
d
g
c
f
e
p
h
j
l
i
k
n
o
m
34
Game Characterization HT-Width
  • Cops are now on the edges
  • Cop controls all the nodes of an edge
    simultaneously

35
Playing the Game
V
P
R
S
X
Y
Z
T
U
W
36
First Move of the Cops
V
P
R
S
X
Y
Z
T
U
W
37
Shrinking the Space
V
P
R
S
X
Y
T
Z
U
W
38
The Capture
V
P
R
S
X
Y
Z
T
U
W
39
Different Robbers Choice
V
P
R
S
X
Y
Z
T
U
W
40
The Capture
V
P
R
S
X
Y
Z
T
U
W
41
Strategies and Decompositions
  • Theorem A hypergraph has hypertree-width ? k iff
    k Cops have a winning strategy
  • Winning strategies correspond to decompositions
    and vice versa

42
First Move of the Cops
a(S,X,T,R) ? b(S,Y,U,P)
V
P
R
S
X
Y
Z
T
U
W
43
Possible Choice for the Robber
a(S,X,T,R) ? b(S,Y,U,P)
V
P
R
S
X
Y
Z
T
U
W
44
The 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
45
Alternative 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
46
Shrinking 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
47
The 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
48
Decomposition
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)
49
Decomposition-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)
50
Solving Acyclic CSPs
  • Bottom-Up Phase
  • Consistency check
  • Top-Down Phase
  • Solution extraction
  • Polynomial complexity
  • Highly parallelizable

51
Bottom-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
52
Example
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)
53
Top-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

54
Example
(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)
55
Example
(True)
(xyz 999)

P
(abxyz 72999)
R

Backtrack-free Search
(abcdxyz 7292999)
Q
G
(abcduxyz 72921999)
H
(abcduxyz 72921999)
56
Outline
  • 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

57
Optimal 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

58
Optimization 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
59
Example
  • Dom(vi) 0,1,2

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
60
Example
  • Tree Decomposition

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
61
Example
Weight
  • Child ABC

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
62
Example
  • Child AEF

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
63
Example
  • Child CDE

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
64
Example
  • Best Solution utility 27

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
65
Solving Acyclic Optimal CSPs
  • Bottom-Up Phase
  • Consistency Check plus Utility Computation
  • Top-Down Phase
  • Solution Extraction Best-First
  • Polynomial complexity
  • Highly parallelizable

66
Bottom-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

67
Top-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

68
Top-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.
69
Example
(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)
70
OCSPs 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

71
Example
  • Boolean Polycell

X
A 1
Or1
And1
B 1
F 0
Y
Or2
C 1
And2
G 1
D 1
Z
Or3
E 0
72
Example
  • 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

73
Example
  • Hypertree Decomposition

Or3 ? And1
Y,Z
Y
C,X
Or2
And2
Or1
74
State 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.

75
Example
Decision Variables
  • O3ok, A1ok

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
76
Example
  • O3ok, A1ok

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
77
Example
  • O3ok, A1ok

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
78
Example
  • O3ok, A1ok

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
79
Example
  • O3ok, A1ok

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!
80
Idea
  • Best-First-Search for Consistent Child
    Assignments, until Parent Assignment is fully
    covered, or Child Assignments are exhausted.

81
Example
  • O3ok, A1ok

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
82
Example
  • O3ok, A1ok

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
83
Example
  • O3ok, A1ok

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
84
Bottom-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

85
Example
  • Root Node Partition

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
86
Top-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

87
Example
(True, 0)

Or3 ? And1
(O3A1CXYZ ok ok 1011, 0.0097)
And2

Or2
Or1
(O1O2O3A1A2 fty ok ok ok ok, 0.0097)
88
Example Leading Four Solutions
  • Search Queue

(True, 0)
89
Example Leading Four Solutions
  • Search Queue

(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)
90
Example Leading Four Solutions
  • Search Queue

(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)
91
Example Leading Four Solutions
  • Search Queue

(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)
92
Example Leading Four Solutions
  • Search Queue
  • 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
93
Example Leading Four Solutions
  • Search Queue
  • 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
94
Example Leading Four Solutions
  • Search Queue
  • 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
95
Example Leading Four Solutions
  • Search Queue
  • 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
96
Example Leading Four Solutions
  • Search Queue
  • 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
97
Example Leading Four Solutions
  • 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
98
Prototype for Decomposition-based Optimization
  • Software Components

Decomp.-basedOptimization
OCSP.XML
Tree.XML
ConstraintSystem
OptkDecomp(HT-Decomp)
BDD
99
Outline
  • 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

100
Methods for Solving CSPs
Guessing
  • Generate-and-test
  • Backtracking
  • Truth Maintenance
  • Kernels
  • Analytic Reduction

Decomposition
Conflicts
101
Decomposition, 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)

102
Conditioning, Search, Guessing
  • Basic Principle
  • Breaking up the problem into smaller subproblems
    by (heuristically) assigning values and testing
    candidates

103
Conditioning, 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

104
Conflicts, 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

105
Examples
  • Elimination
  • SAB (Structural Abduction) Dechter 95
  • Conditioning
  • CBA (Constraint-based A) Williams 0?
  • Conflict Generation
  • GDE (General Diagnosis Engine) de Kleer Williams
    87

106
Approximations
  • Approximate Elimination
  • Local constraint propagation (incomplete)
  • Approximate Conditioning
  • Hill Climbing, Particle Filtering (incomplete)
  • Approximate Conflict Generation
  • Focussed ATMS, Sherlock (incomplete)

107
Hybrids
  • Elimination Conditioning
  • DCDR(b) Rish Dechter 96
  • Conditioning Conflict Generation
  • CDA Williams 0?
  • Elimination Conflict Generation
  • XC1 Mauss Tatar 02

Challenge Elimination Conditioning Conflicts.
108
Resources
  • 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
Write a Comment
User Comments (0)
About PowerShow.com