# Constraint Processing and Programming Introductory Exemple Javier Larrosa.

## Presentation on theme: "Constraint Processing and Programming Introductory Exemple Javier Larrosa."— Presentation transcript:

Constraint Processing and Programming Introductory 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 Which nodes are hardest to number? ? ? ? ? ? ? ?? Guess a value, but be prepared to backtrack

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 don’t need to consider: 8 1 ? 1 ? ? 8 ? ??

Inference/propagation We can now eliminate many values for other nodes ? 1 ? ? 8 ? ?? {1,2,3,4,5,6,7,8}

Inference/propagation By symmetry ? 1 ? ? 8 ? ?? {3,4,5,6}

Inference/propagation ? 1 ? ? 8 ? ?? {3,4,5,6} {1,2,3,4,5,6,7,8}

Inference/propagation By symmetry ? 1 ? ? 8 ? ?? {3,4,5,6}

Inference/propagation ? 1 ? ? 8 ? ?? {3,4,5,6} {3,4,5,6,7}{2,3,4,5,6}

Inference/propagation ? 1 ? ? 8 ? 27 {3,4,5,6}

Inference/propagation ? 1 ? ? 8 ? 27 {3,4,5,6} And propagate

Inference/propagation ? 1 ? ? 8 ? 27 {3,4,5} {4,5,6}

Inference/propagation 3 1 ? ? 8 ? 27 {3,4,5} {4,5,6} By symmetry

Inference/propagation 3 1 ? ? 8 ? 27 {3,4,5} {4,5,6} And propagate

Inference/propagation 3 1 ? ? 8 ? 27 {4,5} {5,6} {4,5,6} More propagation?

Inference/propagation 3 1 4 5 8 6 27 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 v 1, …, v 8 domains {1, …, 8} constraints | v 1 – v 2 |  1 | v 1 – v 3 |  1 … | v 7 – v 8 |  1 alldifferent(v 1, …, v 8 ) ? ? ? ? ? ? ??

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 33 3 1 AB DC E dependency DAG

Example: evaluate (a + b) + c non-optimal schedule Ar1  a Br2  b nop Dr1  r1 + r2 Cr3  c nop Er1  r1 + r3 33 3 1 AB DC E dependency DAG

Example: evaluate (a + b) + c optimal schedule Ar1  a Br2  b Cr3  c nop Dr1  r1 + r2 Er1  r1 + r3 33 3 1 AB DC E dependency DAG

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) 33 3 1 AB DC E dependency DAG

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: v 1, v 2, v 3, v 4, v 5 domains: {1, 2, 3} constraints: v i  v j if v i and v j are adjacent v2v2 v3v3 v1v1 v5v5 v4v4

Example: 3-coloring A solution v 1  1 v 2  2 v 3  2 v 4  1 v 5  3 v2v2 v3v3 v1v1 v5v5 v4v4

Example: n-queens Place n-queens on an n  n board so that no pair of queens attacks each other

Constraint model 4 3 2 1 x1 x1 x2x2 x3 x3 x4 x4 variables: x 1, x 2, x 3, x 4 domains: {1, 2, 3, 4} constraints: x i  x j and | x i - x j |  | i - j |

Example: 4-queens A solution x 1  2 x 2  4 x 3  1 x 4  3 Q Q Q Q x1 x1 x2x2 x3 x3 x4 x4 4 3 2 1

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