1 / 40

Constraint Processing and ProgrammingIntroductory

Exemple

- Javier Larrosa

Combinatorial 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

- 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

Heuristic Search

Guess a value, but be prepared to backtrack

Which nodes are hardest to number?

Heuristic Search

Which nodes are hardest to number?

Heuristic Search

Which are the least constraining values to use?

Values 1 8

Heuristic Search

Symmetry means we dont need to consider 8 1

Inference/propagation

1,2,3,4,5,6,7,8

We can now eliminate many values for other nodes

Inference/propagation

3,4,5,6

3,4,5,6

By symmetry

Inference/propagation

3,4,5,6

1,2,3,4,5,6,7,8

3,4,5,6

Inference/propagation

3,4,5,6

3,4,5,6

3,4,5,6

3,4,5,6

By symmetry

Inference/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

Inference/propagation

3,4,5,6

3,4,5,6

3,4,5,6

3,4,5,6

Inference/propagation

3,4,5,6

3,4,5,6

3,4,5,6

3,4,5,6

And propagate

Inference/propagation

3,4,5

4,5,6

3,4,5

4,5,6

Inference/propagation

4,5,6

3,4,5

4,5,6

By symmetry

Inference/propagation

4,5,6

3,4,5

4,5,6

And propagate

Inference/propagation

5,6

4,5

4,5,6

More propagation?

Inference/propagation

A solution

The 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.

Constraint 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 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

Constraint 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

Given a CSP

- Determine whether it has a solution or not
- Find any solution
- Find all solutions
- Find an optimal solution, given some cost function

Constraint model for puzzle

variables v1, , v8 domains 1, , 8

constraints v1 v2 ? 1 v1 v3 ? 1

v7 v8 ? 1 alldifferent(v1, , v8)

Example instruction scheduling

(a b) c

Given a basic-block of code and a single-issue

pipelined processor, find the minimum schedule

Example evaluate (a b) c

instructions A r1 ? a B r2 ? b C r3

? c D r1 ? r1 r2 E r1 ? r1 r3

Example 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

Example evaluate (a b) c

optimal schedule A r1 ? a B r2 ? b C r3 ?

c nop D r1 ? r1 r2 E r1 ? r1 r3

Constraint 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)

Example Graph coloring

Given k colors, does there exist a coloring of

the nodes such that adjacent nodes are assigned

different colors

Example 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

Example 3-coloring

A solution v1 ? 1 v2 ? 2 v3 ? 2

v4 ? 1 v5 ? 3

v1

v2

v3

v4

v5

Example n-queens

Place n-queens on an n ? n board so that no pair

of queens attacks each other

Constraint 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

Example 4-queens

x1

x2

x3

x4

A solution x1 ? 2 x2 ? 4 x3 ? 1 x4 ? 3

Q

1

Q

2

Q

3

Q

4

Constraint 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 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

Application areas

- Paradigm of choice for many hard combinatorial

problems - scheduling
- planning
- vehicle routing
- configuration
- bioinformatics

Commercial applications