220 likes | 363 Views
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.
E N D
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 15 years research in 15 minutes
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 4A 2D 1A 1 across 4D 4 down 2D 2 down 4A 4 across 7D 7 down 7D Variables
An example 1 2 3 4 5 6 7 1A 4D 4 4A 2D 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 7D Constraints
An example 1 2 3 4 5 6 7 1A 4D 4 4A 2D 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 7D Domains (also unary constraints!)
An example 1 2 3 4 5 6 7 1A 4D 4 4A 2D Find an assignment of values to variables, from their domains, such that the constraints are satisfied (or show that no assignment exists) 7D A CSP!
An example 1 2 3 4 5 6 7 1A 4D 4 4A 2D Choose a variable Assign it a value Check compatibility If not compatible try a new value If no values remain re-assign previous variable 7D Good old fashioned BT!
Questions? 1 2 3 4 5 6 7 1A 4D 4 4A 2D What variable should I choose? 7D What value should I choose? 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? • Could it give more information to the heuristics? • 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