# Constraint Satisfaction

Document Sample

```					     •I am Patrick Prosser
• I am a senior lecturer
• at Glasgow (and Strathclyde till mid April)
• I teach algorithms & data structures in java
• I am a member of
• the algorithms group
• the apes (distributed, not disbanded)
• I am a Glaswegian

This is all that I am allowed to tell you
Patrick Prosser

Constraint Satisfaction

• What is it?

• Who cares (any applications?)

• What’s the challenge?
Constraint Satisfaction
An example

1   2   3   4   5   6

7

4

Make a crossword puzzle!
Given the above grid and a dictionary, fill it.
Then go get the clues (not my problem)
An example

1   2    3   4   5      6

7
1A   4D
4

2D   4A

1A       1 across
4D       4 down
7D
2D       2 down             Variables
4A       4 across
7D       7 down
An example

1   2   3   4   5   6

7
1A        4D
4

2D        4A

1A-4D: 4th of 1A equals 1st of 4D
1A-2D: 2nd of 1A equals 1st of 2D                 7D
2D-4A: 4th of 2D equals 2nd of4D    Constraints
4D-4A: 4th of 4A equals 4th of 4D
4A-7D: 7th of 4A equals 2nd of 7D
An example

1   2   3   4   5      6

7
1A            4D
4

2D            4A

1A: any 6 letter word
4A: any 8 letter word                                      7D
4D: any 5 letter word
2D: any 7 letter word           Domains (also unary constraints!)
7D: any 3 letter word
An example

1   2   3   4   5   6

7
1A   4D
4

2D   4A

Find an assignment of
values to variables,                      7D
from their domains,
such that the            A CSP!
constraints are
satisfied (or show
that no assignment
exists)
An example

1   2    3    4   5   6

7
1A          4D
4

2D           4A

Choose a variable
Assign it a value                                              7D
Check compatibility
If not compatible try a new value
If no values remain re-assign previous variable
Good old fashioned BT!
Questions?

1   2   3   4   5   6

7
1A               4D
4

2D           4A

What variable should I choose?

What value should I choose?                                        7D
What reasoning can I do when making an assignment?

What reasoning can I do on a dead end?

Decisions, decisions!
Search Algorithms

•BT (1960’s)
•BM (1979)
•FC (1980)
•MAC (1979)
•CBJ (1993)
•DB (1993)
•Combinations of the above (1993-),
•LDS (1995)
•DDS (1997)
•Incomplete Search (min conflicts?)
Heuristics

• Fail First (aka minimum remaining values)
• are you serious? Do you really want to fail?
•Consider topology of constraint graph
• degree of vertex, bandwidth of ordering, …
•Regret?
•Minimise constrainedness?
•Static or dynamic?
• … we aint even considered values!!
What makes a problem hard?

• Size?
• More words in our crossword?
• Bigger dictionary?
• Tightness?
• A smaller dictionary?
• More crossings between words
• Phase transition phenomena
Constraint Propagation

•Pre-process, remove inconsistencies
• for each value, is there a supporting value?
• Can I specialise this test/filter for the constraint
• think of all-diff and edgeFinding
•What level of consistency is worthwhile?
• Arc/path/inverse/singleton …
•Should we embed these in the search process?
• MAC -- AC in BT, the heart of CP
Inside Search

• As search proceeds the remaining subproblem gets
smaller
• Does the subproblem get easier? Harder?
• What features make it easier or harder
• Can we design algorithms to exploit this?
• Are the heuristic genuinely dynamic?
Representation

• If we change the representation of the problem
what effect will this have?
• Could it make constraint propagation more
effective?
• Will it make search easier?
• Three examples
• change arity of constraints
• view the problem as something else
• jssp at vrp
• interchange variables and values (think 3COL)
Applications

• Constraint Programming Languages
• CHIP, ILOG Solver (\$G), Claire, eClipSe, ...
• Scheduling (ILOG Schedule, Eclaire)
• Transportation (ILOG Dispatcher, BT WFM)
• Frequency Allocation
• Gate Management
• Car Sequencing
• Design (car interiors)
• Configuration (discs, computers, …)
• Timetabling
• Real-time resource allocation (weapon systems)
• Folding
•
Challenges

• Combine CP with OR
• Push the existing technology to larger problems
•   Design new constraints/propagators
•   Understand the role of representation
•   Better understanding of search process
•   Better understanding of pre-processing

```
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
 views: 4 posted: 11/9/2012 language: English pages: 22