cpm!. just do it! jchoco we jumped in, and took it for a spin some counting problems meeting...
TRANSCRIPT
JChoco
We jumped in, and took it for a spin
Some counting problems
Meeting scheduling problem … you got your hands dirty
JChoco
Meeting scheduling problem … you got your hands dirty
• Model and solve• Reflect on alternative models• Symmetries• Heuristics• Pre-processing• Equitable graph colouring
• with side constraints
A surprisingly rich problem!
Opening up the hood: part 1, search
So how does CP work?
BT: Chronological BackTracking
Thrashing!
FC: forward checking
Thrashing!
CBJ: Conflict-directed BackJumping
Thrashing!
Opening up the hood: part 2, arc-consistency
So how does CP work?
Arc-consistency Definition (aka 2-consistency) Covered 1-2-3-Consistency
Algorithms AC3 AC4/6/2001 AC5
Is AC a decision procedure?
We modelled some problems
number partitioning
jobshop scheduling
magic square
n-queens
bin packing knight’s tour
Ramsey number
Orthogonal Latin Squares
Crystal Maze
graph colouring
m-queens
Team allocation
Crossword PuzzleRound-robin scheduling
Meeting scheduling problem
75 integer sequence
sudoku
What a
re th
e decision varia
bles?
Are there any symmetries?
Is there a variable/value ordering heuristic?
Is there another model?
We modelled some problems
How does search go?
Redundant constr
aints?
Dual or Hidden Variable encoding?
• Variables & their domains• Constraints• Identifying the decision variables• Size of the model
• number of variables, number of constraints• Use big-O
• Size of the search space (worst case)• Use big-O
• Symmetries• And how to eliminate if possible
• Heuristics• Alternative models
• Swap the perspective variable/values?• Replace constraints with variables?
• Did this in crossword puzzle• Zero/one possible?
• Did this in team allocation and others• Channeling between models
• See above
We modelled some problems
Where are the hard problems?
Constrainedness? Who cares?
In optimisation, as a heuristic, in solving problems
Variable and value ordering heuristics
Static, topological properties
Fail-first, and it’s realisation
Constrainedness
Dual viewpoint heuristics
Promise
Regret
Domain Specific (example JSSP slack-based, Warnsdorff)
Search againLocal search (aka neighbourhood search)
HC, SA, TS, GLS, GA, ACO, …
Why we need them escape local optima
Problems in using them incompleteness, move operators, evaluation/fitness functions, tuning parameters,
Problems in using them in CP
aka meta-heuristics
Search againLimited Discrepancy Search
lds
• motivation for LDS• when might we use it?• when should we not use it?• what happens when problem is unsat?
Parallel search
• Amdahl’s law• How much speed up can we get?
• Satisfiable v Unsatisfiable problems• Optimisation
• Superlinear?• BitSet parallelism• How to split up work
• Static• Embarrassingly • Dynamic work stealing/donation
dual and hidden variable encoding
change of representation
Crossword puzzle, turn constraints into variablesInterchange values and variablesZero/one?SAT encoding of Graph Colouring
• Node Consistency (NC)• Arc-consistency (AC)• Path Consistency (PC)• Generalised arc-consistency (GAC)• Bounds consistency• Inverse Path Consistency (IPC aka PIC)• Singleton Arc-consistency (SAC)• … and others
consistency
theory
• csp <v,c,d> and it’s complexity• search (bt, fc, cbj, …)• thrashing• arc-consistency• levels of consistency• heuristics• local search & lds & parallel search• dual & hidden variables• sat• phase transition phenomena & constrainedness
summary
practice
number partitioning
jobshop scheduling
magic square
n-queens
bin packing
knight’s tour
Meeting Scheduling Orthogonal Latin Squares
Crystal Maze
graph colouring
Modelling & Solving Problems
practice
• variables (enumerated/bound/setsVar) and their domains• constraints (neq, allDiff, ifOnlyIf, …)• decision variables• what propagation might take place• size of the encoding/model (how it scales with problem size)• heuristics (dynamic/static, variable/value)• size of the search/state space• how search goes (example was knight’s tour)• alternative models (dual? hidden? values as variables?)• optimisation (with maximise/minimise, seqn of decision problems)• dealing with conflicts (soft constraints & penalties)• symmetry breaking (ramsey, bin packing, …)• redundant constraints (magic square, MOLS …)• what will make problems hard to solve and what will make them easy?
Modelling & Solving Problems
Where to next?
• smarter (explanation/interaction)• local search (comet & beyond)• exploiting multi-cores (Moore’s law ends July 2017)
• in propagation• in search
• easier to use (Miguel & Frisch)• don’t need a BSc, MSc, MRes, PhD
• a killer app• constraint spread sheet?• something on a phone?
• you