decisions we need to choose • Domains – values variables need to choose from • Constraints – Restrictions on valid choices • Objective – Satisfaction or Optimisation
Spanish, Polly Polish and Ron Romanian are six British interpreters at the EU. They each speak two European languages, as well as English, but none speaks the language indicated by their name. No two interpreters speak the same two foreign languages and each of the six foreign languages is spoken by only two of them. Spike speaks Dutch and German while his cousin speaks Dutch and Polish. Fran and Dudley speak all the four languages not indicated by their names. Of the two languages that Dudley is fluent in, both of their namesakes speak French. No German speaker knows any Polish.” Which two languages does Ron speak? -Alex Bellos – Guardian – July 4th 2016
Polly Polish and Ron Romanian are six British interpreters at the EU. They each speak two European languages, as well as English, but none speaks the language indicated by their name. No two interpreters speak the same two foreign languages and each of the six foreign languages is spoken by only two of them. Spike speaks Dutch and German while his cousin speaks Dutch and Polish. Fran and Dudley speak all the four languages not indicated by their names. Of the two languages that Dudley is fluent in, both of their namesakes speak French. No German speaker knows any Polish.” Which two languages does Ron speak? -Alex Bellos – Guardian – July 4th 2016
– Constraint “knows” the variables it constrains – Informed of changes to those variables’ domains – Can then remove inconsistent values • Our Polyglot.mzn model had: – Unary constraints – card(languages[i]) = 2) – Binary constraints - languages[i] != languages[j] • No Global Constraints though… – Sorry all_different. L
Fix Point. • We need to make some choices… – Branching ( x = y | x != y ) – Sometimes those are bad choices • Domain wipeout! • “When the fact’s change I change my mind” – Not Maynard Keynes • Backtracking – Restore the variables’ domains – Assert the alternate branch – Propagate. Rinse, Lather, Repeat. Or Restart...
IBM • Problem 38 of the CSP Lib -111 orders, 88 colours, 20 slab sizes • For about 10 years it was intractable • Until Gargani & Refala [2007] – Breakthrough. Or not. – Smashed the largest instance < 3s – Combined existing techniques… reified constraints, symmetry breaking, value selection, LNS, etc.
– Starts September 26th… • Hakank’s CP Blog – http://www.hakank.org/ – The Rosetta Stone of CP. • The MiniZinc modelling challenge – http://www.minizinc.org/challenge.html • The ROADEF Challenge (the French OR Society) – http://challenge.roadef.org/2016/fr/ • The Global Constraints Catalogue – http://sofdem.github.io/gccat/ • Helmut Simonis’ CP Applications Blog – https://hsimonis.wordpress.com/