•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
Constraint Satisfaction
• What is it?
• Who cares (any applications?)
• What’s the challenge?
Patrick Prosser
1 2 3 4 5 6
4
7
An example
Make a crossword puzzle!
Given the above grid and a dictionary, fill it.
Then go get the clues (not my problem)
1A 1 across
4D 4 down
2D 2 down
4A 4 across
7D 7 down
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
An example
Variables
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
An example
1A-4D: 4th of 1A equals 1st of 4D
1A-2D: 2nd of 1A equals 1st of 2D
2D-4A: 4th of 2D equals 2nd of4D
4D-4A: 4th of 4A equals 4th of 4D
4A-7D: 7th of 4A equals 2nd of 7D
Constraints
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
An example
1A: any 6 letter word
4A: any 8 letter word
4D: any 5 letter word
2D: any 7 letter word
7D: any 3 letter word
Domains (also unary constraints!)
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
An example
Find an assignment of values to
variables, from their domains, such that the constraints are satisfied (or show
that no assignment exists)
A CSP!
Choose a variable
Assign it a value
Check compatibility
If not compatible try a new value
If no values remain re-assign previous variable
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
An example
Good old fashioned BT!
What variable should I choose?
1 2 3 4 5 6
4
71A 4D
2D
7D
4A
Questions?
Decisions, decisions!
What value should I choose?
What reasoning can I do when making an assignment?What reasoning can I do on a dead end?
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?
•Static or dynamic?• … we aint even considered values!!
•Minimise constrainedness?
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
•Should we embed these in the search process?• MAC -- AC in BT, the heart of CP
•What level of consistency is worthwhile?• Arc/path/inverse/singleton …
•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
Inside Search
• Are the heuristic genuinely dynamic?
• Does the subproblem get easier? Harder? • What features make it easier or harder• Can we design algorithms to exploit this?
• As search proceeds the remaining subproblem gets smaller
Representation
• Three examples• change arity of constraints• view the problem as something else
• jssp at vrp • interchange variables and values (think 3COL)
• If we change the representation of the problem what effect will this have?
• Could it make constraint propagation more effective?• Could it give more information to the heuristics?• Will it make search easier?
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