Title: Constraint Processing and Programming Introductory Exemple
1Constraint Processing and ProgrammingIntroductory
Exemple
2Combinatorial Problem Solving
- Science and Engineering are full of
Combinatorial Problems -
- Solving algorithms are exponentially
expensive - A lot of tricks can be applied to improve
performance - Naive Approach
- For each problem, design and implement an
efficient algorithm
3- Place numbers 1 through 8 on nodes
- each number appears exactly once
- no connected nodes have consecutive numbers
Note the graph symmetry
Acknowledgement Patrick Prosser
4Heuristic Search
Guess a value, but be prepared to backtrack
Which nodes are hardest to number?
5Heuristic Search
Which nodes are hardest to number?
6Heuristic Search
Which are the least constraining values to use?
Values 1 8
7Heuristic Search
Symmetry means we dont need to consider 8 1
8Inference/propagation
1,2,3,4,5,6,7,8
We can now eliminate many values for other nodes
9Inference/propagation
3,4,5,6
3,4,5,6
By symmetry
10Inference/propagation
3,4,5,6
1,2,3,4,5,6,7,8
3,4,5,6
11Inference/propagation
3,4,5,6
3,4,5,6
3,4,5,6
3,4,5,6
By symmetry
12Inference/propagation
3,4,5,6
3,4,5,6
3,4,5,6,7
2,3,4,5,6
3,4,5,6
3,4,5,6
13Inference/propagation
3,4,5,6
3,4,5,6
3,4,5,6
3,4,5,6
14Inference/propagation
3,4,5,6
3,4,5,6
3,4,5,6
3,4,5,6
And propagate
15Inference/propagation
3,4,5
4,5,6
3,4,5
4,5,6
16Inference/propagation
4,5,6
3,4,5
4,5,6
By symmetry
17Inference/propagation
4,5,6
3,4,5
4,5,6
And propagate
18Inference/propagation
5,6
4,5
4,5,6
More propagation?
19Inference/propagation
A solution
20The Declarative Approach to Combinatorial Problem
Solving
- Declarative Approach
- 1. Model the problem using a well-defined
language - 2. Solve the problem using general-purpose
techniques - Constraint Programming and SAT solving follow
this approach.
21Constraint programming methodology
- Model problem
- Solve model
- Verify and analyze solution
- specify in terms of constraints on acceptable
solutions - define/choose constraint model
- variables, domains, constraints
- define/choose algorithm
- define/choose heuristics
22Constraint programming methodology
- Model problem
- Solve model
- Verify and analyze solution
- specify in terms of constraints on acceptable
solutions - define/choose constraint model
- variables, domains, constraints
- define/choose algorithm
- define/choose heuristics
Constraint Satisfaction Problem
23Constraint satisfaction problem
- A CSP is defined by
- a set of variables
- a domain of values for each variable
- a set of constraints between variables
- A solution is
- an assignment of a value to each variable that
satisfies the constraints
24Given a CSP
- Determine whether it has a solution or not
- Find any solution
- Find all solutions
- Find an optimal solution, given some cost function
25Constraint model for puzzle
variables v1, , v8 domains 1, , 8
constraints v1 v2 ? 1 v1 v3 ? 1
v7 v8 ? 1 alldifferent(v1, , v8)
26Example instruction scheduling
(a b) c
Given a basic-block of code and a single-issue
pipelined processor, find the minimum schedule
27Example evaluate (a b) c
instructions A r1 ? a B r2 ? b C r3
? c D r1 ? r1 r2 E r1 ? r1 r3
28Example evaluate (a b) c
non-optimal schedule A r1 ? a B r2 ?
b nop nop D r1 ? r1 r2 C r3 ?
c nop nop E r1 ? r1 r3
29Example evaluate (a b) c
optimal schedule A r1 ? a B r2 ? b C r3 ?
c nop D r1 ? r1 r2 E r1 ? r1 r3
30Constraint model
variables A, B, C, D, E domains 1, , m
constraints D ? A 3 D ? B 3 E ? C 3 E
? D 1 alldifferent(A, B, C, D, E)
31Example Graph coloring
Given k colors, does there exist a coloring of
the nodes such that adjacent nodes are assigned
different colors
32Example 3-coloring
variables v1, v2 , v3 , v4 , v5 domains
1, 2, 3 constraints vi ? vj if vi and vj
are adjacent
v1
v2
v3
v4
v5
33Example 3-coloring
A solution v1 ? 1 v2 ? 2 v3 ? 2
v4 ? 1 v5 ? 3
v1
v2
v3
v4
v5
34Example n-queens
Place n-queens on an n ? n board so that no pair
of queens attacks each other
35Constraint model
x1
x2
x3
x4
variables x1, x2 , x3 , x4 domains 1, 2,
3, 4 constraints xi ? xj and xi - xj
? i - j
1
2
3
4
36Example 4-queens
x1
x2
x3
x4
A solution x1 ? 2 x2 ? 4 x3 ? 1 x4 ? 3
Q
1
Q
2
Q
3
Q
4
37Constraint programming methodology
- Model problem
- Solve model
- Verify and analyze solution
- specify in terms of constraints on acceptable
solutions - define/choose constraint model
- variables, domains, constraints
- define/choose algorithm
- define/choose heuristics
38Constraint programming methodology
- Model problem
- Solve model
- Verify and analyze solution
- specify in terms of constraints on acceptable
solutions - define/choose constraint model
- variables, domains, constraints
- define/choose algorithm
- define/choose heuristics
39Application areas
- Paradigm of choice for many hard combinatorial
problems - scheduling
- planning
- vehicle routing
- configuration
- bioinformatics
40Commercial applications