constraint programming
play

Constraint Programming Justin Pearson Uppsala University 1st July - PowerPoint PPT Presentation

Constraint Programming Justin Pearson Uppsala University 1st July 2016 Special thanks to Pierre Flener, Joseph Scott and Jun He CP MiniZinc Strings Other Final Outline Introduction to Constraint Programming (CP) 1 Introduction to


  1. Constraint Programming Justin Pearson Uppsala University 1st July 2016 Special thanks to Pierre Flener, Joseph Scott and Jun He

  2. CP MiniZinc Strings Other Final Outline Introduction to Constraint Programming (CP) 1 Introduction to MiniZinc 2 Constraint Programming with Strings 3 Some recent, and not so Recent Advances 4 Final Thoughts 5 Uppsala University Justin Pearson Constraint Programming

  3. CP MiniZinc Strings Other Final Constraint Programming in a Nutshell Slogan of CP Constraint Program = Model [ + Search ] CP provides: high level declarative modelling abstractions, a framework to separate search from from modelling. Search proceeds by intelligent backtracking with intelligent inference called propagation that is guided by high-level modelling constructs called global constraints. Uppsala University Justin Pearson Constraint Programming

  4. CP MiniZinc Strings Other Final Outline Introduction to Constraint Programming (CP) 1 Modelling Propagation Systematic Search History of CP Introduction to MiniZinc 2 Constraint Programming with Strings 3 Some recent, and not so Recent Advances 4 Final Thoughts 5 Uppsala University Justin Pearson Constraint Programming

  5. CP MiniZinc Strings Other Final Constraint-Based Modelling Example (Port tasting, PT) Alva Dan Eva Jim Leo Mia Ulla 2011 2003 2000 1994 1977 1970 1966 Constraints to be satisfied : Equal jury size: Every wine is evaluated by 3 judges. Equal drinking load: Every judge evaluates 3 wines. Fairness: Every port pair has 1 judge in common. Uppsala University Justin Pearson Constraint Programming

  6. CP MiniZinc Strings Other Final Constraint-Based Modelling Example (Port tasting, PT) Alva Dan Eva Jim Leo Mia Ulla 2011 ✓ ✓ ✓ 2003 ✓ ✓ ✓ 2000 ✓ ✓ ✓ 1994 ✓ ✓ ✓ 1977 ✓ ✓ ✓ 1970 ✓ ✓ ✓ 1966 ✓ ✓ ✓ Constraints to be satisfied : Equal jury size: Every wine is evaluated by 3 judges. Equal drinking load: Every judge evaluates 3 wines. Fairness: Every port pair has 1 judge in common. Uppsala University Justin Pearson Constraint Programming

  7. CP MiniZinc Strings Other Final Constraint-Based Modelling Example (Port tasting, PT) Alva Dan Eva Jim Leo Mia Ulla 2011 ✓ ✓ ✓ – – – – 2003 ✓ – – ✓ ✓ – – 2000 ✓ – – – – ✓ ✓ 1994 – – – – ✓ ✓ ✓ 1977 – ✓ – – ✓ – ✓ 1970 – – – – ✓ ✓ ✓ 1966 – – ✓ – ✓ ✓ – Constraints to be satisfied : Equal jury size: Every port is evaluated by 3 judges. Equal drinking load: Every judge evaluates 3 wines. Fairness: Every port pair has 1 judge in common. Uppsala University Justin Pearson Constraint Programming

  8. CP MiniZinc Strings Other Final Constraint-Based Modelling Example (Port tasting, PT) Alva Dan Eva Jim Leo Mia Ulla 2011 1 1 1 0 0 0 0 2003 1 0 0 1 1 0 0 2000 1 0 0 0 0 1 1 1994 0 1 0 1 0 1 0 1977 0 1 0 0 1 0 1 1970 0 0 1 1 0 0 1 1966 0 0 1 0 1 1 0 Constraints to be satisfied : Equal jury size: Every port is evaluated by 3 judges. Equal drinking load: Every judge evaluates 3 wines. Fairness: Every port pair has 1 judge in common. Uppsala University Justin Pearson Constraint Programming

  9. CP MiniZinc Strings Other Final Example (PT integer model: ✓ � 1 and – � 0) int: NbrVint; int: NbrJudges; 1 set of int: Wines = 1..NbrVint; 2 set of int: Judges = 1..NbrJudges; 3 int: JurySize; int: Capacity; int: Fairness; 4 array[Wines,Judges] of var 0..1: PT; 5 solve satisfy; 6 forall(t in Wines) 7 (JurySize = sum(j in Judges)(PT[t,j])); 8 forall(j in Judges) 9 (Capacity = sum(t in Wines)(PT[t,j])); 10 forall(t,t’ in Wines where t<t’) 11 (Fairness = sum(j in Judges)(PT[t,j]*PT[t’,j])); 12 Example (Instance data for the SMT PT instance) NbrVint = 7; NbrJudges = 7; 1 JurySize = 3; Capacity = 3; Fairness = 1; 2 Uppsala University Justin Pearson Constraint Programming

  10. CP MiniZinc Strings Other Final Example (Idea for another PT model) { Alva , Dan , Eva } 2011 2003 { Alva , Jim , Leo } { Alva , Mia , Ulla } 2000 1994 { Dan , Jim , Mia } { Ulla } 1977 Dan , Leo , 1970 { Eva , Jim , Ulla } 1966 { Eva , Leo , Mia } Constraints to be satisfied : Equal jury size: Every port is evaluated by 3 judges. Equal drinking load: Every judge evaluates 3 wines. Fairness: Every port pair has 1 judge in common. Uppsala University Justin Pearson Constraint Programming

  11. CP MiniZinc Strings Other Final Example (PT set model: each port has a judge set ) ... 1 ... 2 ... 3 ... 4 array[Wines] of var set of Judges: PT; 5 ... 6 forall(t in Wines) 7 (JurySize = card(PT[t])); 8 forall(j in Judges) 9 (Capacity = sum(t in Wines)(bool2int(j in PT[t]))); 10 forall(t,t’ in Wines where t<t’) 11 (Fairness = card(PT[t] inter PT[t’])); 12 Example (Instance data for the PT instance) ... 1 ... 2 Uppsala University Justin Pearson Constraint Programming

  12. CP MiniZinc Strings Other Final 6 1 4 5 8 3 5 6 2 1 8 4 7 6 6 3 7 9 1 4 5 2 7 2 6 9 4 5 8 7 Example (Sudoku model) array[1..9,1..9] of var 1..9: Sudoku; 1 ... 2 solve satisfy; 3 forall(r in 1..9) 4 (ALLDIFFERENT([Sudoku[r,c] | c in 1..9])); 5 forall(c in 1..9) 6 (ALLDIFFERENT([Sudoku[r,c] | r in 1..9])); 7 forall(i,j in {1,4,7}) 8 (ALLDIFFERENT([Sudoku[r,c] | r in i..i+2, c in j..j+2])); 9 Uppsala University Justin Pearson Constraint Programming

  13. CP MiniZinc Strings Other Final Global Constraints Global constraints such as A LL D IFFERENT and S UM enable the preservation of combinatorial sub-structures of a constraint problem, both while modelling it and while solving it. Dozens of n -ary constraints (Catalogue) have been identified and encapsulate complex propagation algorithms declaratively., including n-ary linear and non-linear arithmetic Rostering under balancing & coverage constraints Scheduling under resource & precedence constraints Geometrical constraints between points, segments, . . . There are many more. Uppsala University Justin Pearson Constraint Programming

  14. CP MiniZinc Strings Other Final CP Solving = Search + Propagation A CP solver conducts search interleaved with propagation: Familiar idea as in SAT solvers. Propagate until fix point. Make a choice. Backtrack on failure. Because we have global constraints we can often do more propagation than unit-propagation of clauses at each step. Uppsala University Justin Pearson Constraint Programming

  15. CP MiniZinc Strings Other Final The A LL D IFFERENT constraint Consider the n -ary constraint A LL D IFFERENT , with n = 4: A LL D IFFERENT ([ a , b , c , d ]) (1) Modelling: (1) is equivalent to n ( n − 1 ) binary constraints: 2 a � = b ∧ a � = c ∧ a � = d ∧ b � = c ∧ b � = d ∧ c � = d (2) Inference: (1) propagates much better than (2). Example: a ∈ { 4, 5 } , b ∈ { 4, 5 } , c ∈ { 3, 4 } , d ∈ { 1, 2, 3, 4, 5 } No domain pruning by (2). Uppsala University Justin Pearson Constraint Programming

  16. CP MiniZinc Strings Other Final The A LL D IFFERENT constraint Consider the n -ary constraint A LL D IFFERENT , with n = 4: A LL D IFFERENT ([ a , b , c , d ]) (1) Modelling: (1) is equivalent to n ( n − 1 ) binary constraints: 2 a � = b ∧ a � = c ∧ a � = d ∧ b � = c ∧ b � = d ∧ c � = d (2) Inference: (1) propagates much better than (2). Example: a ∈ { 4, 5 } , b ∈ { 4, 5 } , c ∈ { 3, 4 } , d ∈ { 1, 2, 3, 4, 5 } No domain pruning by (2). Uppsala University Justin Pearson Constraint Programming

  17. CP MiniZinc Strings Other Final The A LL D IFFERENT constraint Consider the n -ary constraint A LL D IFFERENT , with n = 4: A LL D IFFERENT ([ a , b , c , d ]) (1) Modelling: (1) is equivalent to n ( n − 1 ) binary constraints: 2 a � = b ∧ a � = c ∧ a � = d ∧ b � = c ∧ b � = d ∧ c � = d (2) Inference: (1) propagates much better than (2). Example: a ∈ { 4, 5 } , b ∈ { 4, 5 } , c ∈ { 3, 4 } , d ∈ { 1, 2, 3, 4, 5 } No domain pruning by (2). Uppsala University Justin Pearson Constraint Programming

  18. CP MiniZinc Strings Other Final The A LL D IFFERENT constraint Consider the n -ary constraint A LL D IFFERENT , with n = 4: A LL D IFFERENT ([ a , b , c , d ]) (1) Modelling: (1) is equivalent to n ( n − 1 ) binary constraints: 2 a � = b ∧ a � = c ∧ a � = d ∧ b � = c ∧ b � = d ∧ c � = d (2) Inference: (1) propagates much better than (2). Example: a ∈ { 4, 5 } , b ∈ { 4, 5 } , c ∈ { 3, 4 } , d ∈ { 1, 2, 3, 4, 5 } No domain pruning by (2). But perfect propagation by (1) Uppsala University Justin Pearson Constraint Programming

  19. CP MiniZinc Strings Other Final Propagator for A LL D IFFERENT Solutions to A LL D IFFERENT ([ u , v , w , x , y , z ]) correspond to maximum matchings in a bipartite graph for the domains: u ∈ { 0 , 1 } u 0 v ∈ { 1 , 2 } v 1 w ∈ { 0 , 2 } w 2 x ∈ { 1, 3 } x 3 y y ∈ { 2, 3, 4, 5 } 4 z ∈ { 5 , 6 } z 5 6 Uppsala University Justin Pearson Constraint Programming

Recommend


More recommend