Title: InterBlockBacktracking: Exploiting Structure in Numerical CSPs Solving
1InterBlock-Backtracking Exploiting Structure in
Numerical CSPs Solving
- Christophe Jermann
- LINA/CNRS, University of Nantes
- Joint work with
- Bertrand Neveu, Gilles Trombettoni
- I3S/CNRS-INRIA, University of Nice
2Outline
- IBB a general framework for solving decomposed
NCSPs - Principle
- Inputs
- Process
- IBBInterval an instance of IBB
- Interval solving
- Interblock Filtering
- Experiments
- Conclusion Future directions
3Outline
- IBB a general framework for solving decomposed
NCSPs - Principle
- Inputs/Parameters
- Process
- IBBInterval an instance of IBB
- Interval solving
- Interblock Filtering
- Experiments
- Conclusion Future directions
4IBB general sight
- Main ideas in Bliek et al, CP98
- Since then, made a general framework
- Parameters fix to obtain one instance of IBB
- a (set of) solving method(s)
- a backtracking process
- optional a set of add-ons
- Inputs
- a decomposed numerical CSP (NCSP)
- Output
- One (or all the) solution(s) of the NCSP
5Numerical CSPs
- Defined by (X,D,C) where
- X a set of variables
- D a set of continuous domains, one for each x?X
- C a set of constraints (equations, inequalities,
) on X - Applications
- Physics forces, electrical measurements
- Design Geometry distances, angles,
- Program verification instructions with floats,
- Robotics kinematic constraints,
6Decomposed NCSPs
- Decomposed(S) (S1, S2, , S3, lt, )
- Si well-constrained sub-NCSP
- lt partial order for Sis solving
- partial solutions combination operator
- Such that Sol(S1)Sol(S2)Sol(S3) Sol(S)
- Why decompose ?
- Divide conquer gt reduce solving complexity
- Several kinds of decompositions
- Equational Michelucci et al. 1996, Bliek et
al. 1998, - Geometric Hoffmann et al 1995, Jermann et al.
2000,
7Solving methods
- NCSP ? system of (non-linear) equations/inequaliti
es - Symbolic Groebner basis,
- Numeric Local (Newton-Raphson, ), Homotopy,
Interval, - ? Generally, the structure is under-exploited
- IBB allows to generically exploit the structure
identified by decomposition
8Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
E
F
D
I
H
G
J
9Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
E
F
D
I
H
G
J
10Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
E
F
D
I
H
G
J
11Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
E
F
D
I
H
G
J
12Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
D
I
H
G
J
13Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
D
I
H
G
J
14Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
xE,yE
D
I
H
G
J
15Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
xE,yE
xF,yF
D
I
H
G
J
16Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
xE,yE
xF,yF
D
I
H
G
YD
J
17Exploiting structure
- Sub-NCSP block
- A subset of constraints
- All the induced variables
- Input variables (computed in another block)
- Output variables (computed in the block)
- Partial order ? DAG
A
C
B
xB,yB
E
F
xE,yE
xF,yF
D
I
H
G
YD
xG,yG xH,yH xI,yI
J
18Solving process
- Choosing a total order
- Compatible with the partial order
- Fixes a static block ordering for backtracking
purpose
xB,yB
xE,yE
xF,yF
YD
xG,yG xH,yH xI,yI
19Solving a DAG of Blocks
- Choosing a total order
- Compatible with the partial order
- Fixes a static block ordering for backtracking
purpose
xB,yB
1
xE,yE
xF,yF
3
2
YD
xG,yG xH,yH xI,yI
5
4
20Solving a DAG of Blocks
- Solving each block in sequence
- with a solving method which can differ from block
to block
Search Tree
Block 1
xB,yB
1
Solving Method 1 gt Internal Search Tree
1 gt 2 solutions B1 and B2
xE,yE
xF,yF
3
2
YD
xG,yG xH,yH xI,yI
5
4
21Solving a DAG of Blocks
- Solving each block in sequence
- with a solving method which can differ from block
to block
Search Tree
Block 1
xB,yB
B1
Solving Method 2 gt Internal Search Tree
2 gt 2 solutions E1 and E2 Depending
on B1
1
Block 2
xE,yE
xF,yF
3
2
YD
xG,yG xH,yH xI,yI
5
4
22Solving a DAG of Blocks
- Solving each block in sequence
- with a solving method which can differ from block
to block
Search Tree
Block 1
xB,yB
B1
1
Block 2
xE,yE
xF,yF
E1
3
2
YD
xG,yG xH,yH xI,yI
5
4
No Solution in Block 5
23Solving a DAG of Blocks
- Backtracking
- On no solution
Search Tree
Block 1
xB,yB
B1
1
Block 2
xE,yE
xF,yF
E1
3
2
Backtracking
YD
xG,yG xH,yH xI,yI
5
4
No Solution in Block 5
24Solving a DAG of Blocks
- Backtracking
- On no solution
- gt block solving should be complete for this
purpose
Search Tree
Block 1
xB,yB
B1
1
Block 2
xE,yE
xF,yF
E1
E2
3
2
F1,D1,G1,H1,I1
YD
xG,yG xH,yH xI,yI
5
4
One global solution B1,E2,F1,D1,G1,H1,I1
25Solving a DAG of Blocks
- Backtracking
- On no solution
- Or on next solution
- gt block solving should be complete for this
purpose
Search Tree
Block 1
xB,yB
B1
Backtracking for completion
1
Block 2
xE,yE
xF,yF
E1
E2
3
2
F1,D1,G1,H1,I1
YD
xG,yG xH,yH xI,yI
5
4
One global solution B1,E2,F1,D1,G1,H1,I1
26Solving a DAG of Blocks
- Backtracking gt solving several times the same
block but not the same problem ! - Input variables parameters
- gt Blocks parametric NCSPs
Search Tree
Block 1
xB,yB
B2
B1
1
Block 2
Block 2
The constraints have changed depending on B2
xE,yE
xF,yF
E1
E2
3
2
YD
xG,yG xH,yH xI,yI
5
4
One global solution B1,E2,F1,D1,G1,H1,I1
27Solving a DAG of Blocks
- Backtracking gt solving several times the same
block but not the same problem ! - Input variables parameters
- gt Blocks parametric NCSPs
Search Tree
Block 1
xB,yB
B2
B1
Solving Method 3 gt Internal Search Tree
3 gt 2 solutions E3 and E4 Depending
on B2
1
Block 2
Block 2
xE,yE
xF,yF
E1
E2
3
2
YD
xG,yG xH,yH xI,yI
5
4
One global solution B1,E2,F1,D1,G1,H1,I1
28Solving a DAG of Blocks
- Backtracking gt solving several times the same
block but not the same problem ! - Input variables parameters
- gt Blocks parametric NCSPs
Search Tree
Block 1
xB,yB
B2
B1
1
Block 2
Block 2
xE,yE
xF,yF
E1
E2
E3
E4
3
2
YD
xG,yG xH,yH xI,yI
5
4
All the global solutions
29Intelligent Backtracking
- Possible InterBlock Backtracking
- BT Chronological Backtracking
- GBJ Graph-based Backjumping Dechter, 1990
- GPB Generalized Partial-Order BT Bliek, 1998
xC,yC
xA,yA
1
xJ,yJ
2
3
5
4
30Intelligent Backtracking
- Possible InterBlock Backtracking
- BT Chronological Backtracking
- GBJ Graph-based Backjumping Dechter, 1990
- GPB Generalized Partial-Order BT Bliek, 1998
xC,yC
xA,yA
1
xJ,yJ
2
3
BT
5
4
31Intelligent Backtracking
- Possible InterBlock Backtracking
- BT Chronological Backtracking
- GBJ Graph-based Backjumping Dechter, 1990
- GPB Generalized Partial-Order BT Bliek, 1998
xC,yC
xA,yA
1
xJ,yJ
2
3
GBJ GPB
BT
5
4
32Intelligent Backtracking
- Possible InterBlock Backtracking
- BT Chronological Backtracking
- GBJ Graph-based Backjumping Dechter, 1990
- GPB Generalized Partial-Order BT Bliek, 1998
xC,yC
xA,yA
1
xJ,yJ
GPB
2
3
GBJ
GBJ GPB
BT
5
4
33Intelligent Backtracking
- Possible InterBlock Backtracking
- BT Chronological Backtracking
- GBJ Graph-based Backjumping Dechter, 1990
- GPB Generalized Partial-Order BT Bliek, 1998
xC,yC
xA,yA
1
with the recompute condition
xJ,yJ
GPB
2
3
GBJ
GBJ
GBJ GPB
BT
5
4
34IBB extending the framework
- Specific treatments as add-ons
- Generally, depending on the solving methods
- Choose the strategy of application
(before/after/during a block solving, ) - E.g.
- Pre-conditioners,
- Propagators,
- Inequalities checkers,
35Outline
- IBB a general framework for solving decomposed
NCSPs - Principle
- Inputs
- Process
- IBBInterval an instance of IBB
- Interval solving
- Interblock Filtering
- Experiments
- Conclusion Future directions
36IBB Interval
- Solving method Interval constraint programming
techniques - Backtracking BT, GBJ GPB
- gt 3 instances in fact
- An interesting add-on Inter-Block Filtering
(IBF) - Propagates domain reductions in following blocks
37Interval solving
Search space cross-product of the domains
(intervals)
(x-1)2 -3y
y
yltx/3
x
-x23y
38Interval solving
- 3 operations
- Filtering reduces the bounds of the domain of
each variable using a local consistency
(x-1)2 -3y
y
yltx/3
x
-x23y
39Interval solving
- 3 operations
- Filtering reduces the bounds of the domain of
each variable using a local consistency
(x-1)2 -3y
y
yltx/3
x
-x23y
40Interval solving
- 3 operations
- Filtering reduces the bounds of the domain of
each variable using a local consistency - Splitting splits search space into parts to be
explored individually gt a search-tree appears
(x-1)2 -3y
y
yltx/3
x
-x23y
41Interval solving
- 3 operations
- Filtering reduces the bounds of the domain of
each variable using a local consistency - Splitting splits search space into parts to be
explored individually gt a search-tree appears - Existence checks if a unique solution exists in
the current sub-search-space
(x-1)2 -3y
y
yltx/3
x
-x23y
42InterBlock Filtering
Principle Use local consistency to propagate the
reductions during the solving of
current blocks in related blocs
43InterBlock Filtering
44InterBlock Filtering
45InterBlock Filtering
46InterBlock Filtering
Using IBF, E1 incompatibility can be detected in
Block 2 by propagating on Block 4
47Benchmarking
- Implemented as a C prototype
- Run on a PIII 935
- Experimental protocol
- Parameters 12 instances of IBBInterval
- Interval Solving (uses ILOG Solver 5.0)
- Filtering 2B, 3B, Box, Bound, 2BBox, 3BBound
best choice per problem (usually 2BBox or
3B) - Splitting classical interval bisection
- Existence always and only with Box and Bound
- Backtracking BT, GBJ, GPB, with or without
- InterBlock Filtering with or without
- Inputs
- NCSPs 8 from CAD, 4 domain sizes
- Decomposition best among 4 methods
48Test set
49Overall comparison
50Overall comparison
51Overall comparison
52Overall comparison
53Outline
- IBB a general framework for solving decomposed
NCSPs - Principle
- Inputs
- Process
- IBBInterval an instance of IBB
- Interval solving
- Interblock Filtering
- Experiments
- Conclusion Future directions
54Conclusion
- We have presented a general framework for
solving decomposed NCSPs - Instanciating the framework choosing a BT
process, a set of solving methods, and optionally
a set of add-ons - From the experiments, we can say that
- Decomposition seems very interesting for NCSPs
with a structure - Filtering, a strength of constraint programming,
seems counter-productive when used against the
structure - Intelligent BT seems more profitable, and
introduces at least no overhead
55Future directions
- Try other instances of IBB, involving different
solvers - Intervals symbolic
-
- Solver dynamic selection strategies
- According to blocks properties that may change
(block parametric NCSP) - Use other frameworks to solve decomposed NCSPs
- Multi-agent systems
- Solver cooperation frameworks