Title: Constraint Satisfaction
1(No Transcript)
2- 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
3Constraint Satisfaction
Patrick Prosser
- What is it?
- Who cares (any applications?)
- Whats the challenge?
4(No Transcript)
5Constraint Satisfaction
- 15 years research in 15 minutes
6An 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)
7An 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
8An 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
9An 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!)
10An 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!
11An 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!
12Questions?
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!
13Search Algorithms
- BT (1960s)
- BM (1979)
- FC (1980)
- MAC (1979)
- CBJ (1993)
- DB (1993)
- Combinations of the above (1993-),
- LDS (1995)
- DDS (1997)
- Incomplete Search (min conflicts?)
14Heuristics
- 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,
- Minimise constrainedness?
- we aint even considered values!!
15What makes a problem hard?
- Size?
- More words in our crossword?
- Bigger dictionary?
- Tightness?
- A smaller dictionary?
- More crossings between words
- Phase transition phenomena
16(No Transcript)
17Constraint 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
18Inside 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?
19Representation
- 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)
20Applications
- 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
-
21Challenges
- 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
22(No Transcript)