Presentation is loading. Please wait.

Presentation is loading. Please wait.

Constraint Patterns Toby Walsh 4C, UCC & Uppsala.

Similar presentations


Presentation on theme: "Constraint Patterns Toby Walsh 4C, UCC & Uppsala."— Presentation transcript:

1 Constraint Patterns Toby Walsh 4C, UCC & Uppsala

2 Thanks Fahiem Bacchus, David Basin, Christian Bessiere, Alan Bundy, Xinguang Chen, Berthe Choueiry, Elizabeth Churchill, Dave Clarke, Simon Colton, Joe Culberson, Carmel Domshlak, Pierre Flener, Jeremy Frank, Alan Frisch, Ian Gent, Fausto Giunchiglia, Ian Green, Emmanel Hebrard, Brahim Hnich, Holger Hoos, Zeynep Kiziltan, Ewan MacIntyre, Suresh Manandhar, Pedro Meseguer, Ian Miguel, Alex Nunes, Justin Pearson, Patrick Prosser, Francesca Rossi, Roberto Sebastiani, Paul Shaw, Dan Sheridan, John Slaney, Barbara Smith, Graham Steel, Kostas Stergiou, Armagan Tarim, Neven Tomov, Peter van Beek, Hans van Maaren, Brent Venable, Adolfo Villafiorita, Tetsuya Yoshida

3 Thanks Funding agencies SFI, EPSRC, SERC, EU, Royal Society, British Council Universities & Research Institutes 4C, UCC, Uppsala Univ, ANU, Univ. of York, Strathclyde Univ., Edinburgh Univ., Univ. of Genova, IRST, INRIA

4 Outline Design patterns Constraint patterns Matrix model Matrix symmetry Dual model Implied constraints Constraint pattern repository How to help

5 Patterns Christopher Alexander Professor of architecture (UC Berkeley) A Pattern Language OUP, 1977 Patterns document the implicit knowledge people need when designing buildings

6 Patterns 151. Small Meeting Rooms May be part of University (43), Town Hall (44), Office (146).. Conflict The larger meetings are, the less people get out of them Resolution Make at least 70% of all meeting rooms really small, for 12 or less. Locate them in the most public parts, evenly scattered among the workplaces

7 Design patterns Design Patterns: Elements of Reusable OO Software Eric Gamma, Richard Helm, Ralph Johnson & John Vlissides (aka Gang of Four) 1998 Dr Dobb’s Journal Excellence in Programming award

8 Design patterns A recurring solution to a standard problem Patterns have a context in which they apply They must balance a set of opposing forces

9 Design patterns Mechanism for describing best practice & good design Well engineered code exhibits many common patterns Design patterns support and encourage good software engineering

10 So you want to be an America’s Cup helmsman? Learn the rules Port tack gives way to starboard,... Learn basic principles Cover tack to protect any lead, … Study past races to learn winning patterns Riding a gust to overtake on a downwind leg, …

11 So you want to be a good software engineer? Learn the rules Algorithms, data structures, … Learn basic principles Data abstraction, … Study other software engineers to learn winning patterns Construct an iterator method so elements of a compound object can be accessed without exposing the underlying representation

12 Constraint patterns Record recurring patterns in constraint models Deal with complex, interacting forces Capture knowledge of expert modellers Smith in a Box

13 Benefits Help tackle modelling “bottleneck” Toolkits extended to support common patterns Row & col symmetry Pattern automation Implied constraint generation

14 Possible drawbacks Hard work Effort of community not one individual Modelling will remain an art New problems often have unique feature or combination of features Patterns are not executable But we can automate aspects of them

15 Constraint pattern Pattern name Context Circumstances in which pattern occurs Problem Specific problem pattern solves Forces Opposing considerations when deciding a solution Solution Example

16 Matrix models Context for many constraint patterns Itself a pattern! Constraint program with array(s) of decision variables

17 Matrix models Often the problem has a matrix in the specification Many timetabling and scheduling problems Mike Trick schedules the College baseball league using a matrix model

18 Matrix models Common in other applications Even if the matrix is not so obvious in the problem specification

19 Matrix models Warehouse location problem What warehouses to build to supply a set of stores? Prob034 in CSPLib Problem (and solution) taken from OPL manual

20 Warehouse location 0..1 Store Warehouse Supply 0..1 Open Warehouse

21 Warehouse location  Each store has a warehouse: sum(i,Supply[i,j])=1  Warehouse capacity: sum(j,Supply[i,j]) <= c[i]  Channelling constraints: Supply[i,j] <= Open[i]  Optimization variable: Cost = sum(i,sum(j,Supply[i,j]*dist[i,j])) + c*sum(i,Open[i]) 0..1 Open Warehouse 0..1 Store Warehouse Supply

22 Matrix model: spot the difference! 0..1 Store Warehouse Supply 0..1 Open  =1 …  <c1  <c2 …

23 Matrix model: spot the difference! 0..1 Course Periods Sched 0..m Load  =1 … l<  <d l<  <d …

24 Balance academic curriculum problem Very similar matrix model Channelling now to weighted sum Optimization var changes Exploit these patterns Provide high level primitives To state such problems compactly To reason effectively

25 Matrix model pattern Pattern name: MatrixModel Context An informal problem specification Problem Decision variables which occur at repeated time periods, locations, … Forces Similar constraints are posted on these variables Different data applies to the different locations, periods, … Solution Consider a model with an array of decision variables. Input the data as a separate array Example Warehouse location problem (prob034 in CSPLib)

26 Diversity of matrix models Combinatorial problems BIBDs, magic squares, projective planes, … Design Rack configuration, template and slab design, … Scheduling Classroom, social golfer, … Assignment Warehouse location, progressive party, …

27 Why use this pattern? Ease of problem statement Side constraints Variable indexing Improved constraint propagation Symmetry breaking Linear models

28 Two (new) lines of research? Matrix operations should become first class objects in CP MATLAB & EXCEL could be extended into a constraint modelling languages

29 Matrix models Common constraints: Row or column sum Weighted row/col sum Single non-zero entry Matrix sum Scalar product Channelling Ordering rows/matrices This pretty much describes all the examples! These constraints should be provided as language primitives? Efficient and powerful propagators developed?

30 Ease of problem statement Steel mill slab design Prob038 in CSPLib Nasty “colour” constraint Stops it being simple knapsack problem Channel into matrix model Colour constraint easily and efficiently stated

31 2 3 11111 2 1 abcdefghi Steel mill slab design 3 possible slab sizes (1, 3 or 4) 2 colours per slab

32 2 3 111 1 1 1 f gi e cd b h a (size 4)(size 3)(size 1) (size 3)(size 1) 2 Example solution

33 Matrix model 2 3 11111 2 1 oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof ogog ohoh oioi s1s1 1 s2s2 1 … RedGreenBlueOrangeBrown s1s1 1 s2s2 1 … sum(j,Order[i,j])=1, sum(i,Order[i,j]*w[i])<Size[j] sum(i,Colour[i,j])<2

34 Example solution oaoa obob ococ odod oeoe ofof ogog ohoh oioi s1s1 100000010 s2s2 010000000 s3s3 000011100 s4s4 001000000 …000100000 RedGreenBlueOrangeBrown s1s1 10001 s2s2 01000 s3s3 00010 s4s4 01000 …00100 2 3 111 1 1 1 f gi e cd b h a 2

35 Variable indexing Use variables to index into arrays Element constraint Typically reduces number of constraints needed by the domain size of the variable index Hooker (and others) argue that such indexing is one of the major advantages CP has over IP

36 Improved propagation Matrix models for warehouse location Supply[store]=warehouse or Supply[store,warehouse]=1 Warehouse capacity constraint Difficult to state in 1-d Card({j|Supply[j]=i}) < c[i] Difficult to propagate

37 Improved propagation Matrix models for warehouse location Supply[store]=warehouse or Supply[store,warehouse]=1 Warehouse capacity constraint Difficult to state in 1-d Card({j|Supply[j]=i}) < c[i] Difficult to propagate 2-d model purely linear!

38 Matrix symmetry pattern Often rows/cols in a decision matrix are symmetric All weeks (cols) can be permuted in a timetable All slabs (rows) of same size can be permuted Why the baby?

39 BA Matrix symmetry Two identical bins

40 Matrix symmetry 6 items to pack into bins: 341652 BA

41 Matrix symmetry 12 3 65 4 BA One packing

42 Matrix symmetry BA 1 3 5 2 6 4 Another packing

43 Matrix symmetry How do we eliminate such symmetry? 1 3 5 2 6 4 a) b) AB BA 1 3 5 2 6 4

44 Matrix model 123456 A101010 B010101 123456 A010101 B101010 1 3 5 2 6 4 a) b) AB BA 1 3 5 2 6 4

45 Matrix model 123456 A101010 B010101 123456 A010101 B101010 1 3 5 2 6 4 a) b) AB BA 1 3 5 2 6 4 If we insist that row A  lex row B, we remove a) from the solution set.

46 Row symmetry Such row symmetry frequently occurs Add constraint to order rows lexicographically Total order => eliminates all row symmetry Efficient & effective global constraints GAC(X <lex Y) [Frisch, Hnich, Kiziltan, Miguel, Walsh, 02] GAC(X0 <lex X1 <lex … <lex Xn) [Carlsson & Beldiceanu, 02] Optimal, linear in number of variables

47 0000111 0011001 0101010 0110100 1001100 1010010 1100001 Matrix symmetry Symmetry in multiple dimensions Balanced incomplete block design v rows. b columns. r 1s per row. k 1s per column. s is scalar product between every pair of rows. Prob028 in CSPLib

48 Matrix symmetry Lex order both rows and columns Lex order must be in same direction Called “double LEX” Extends to higher dimensions

49 ABC DEF GHI ABC DEF GHI ABC DEF GHI ABC DEF GHI Consistent Inconsistent

50 Double LEX leaves symmetry 01 01 10 01 10 10 Swap 2 columns Swap row 1 and 3 Surprising as lex ordering rows breaks all row symmetry, & lex ordering cols breaks all col symmetry!

51 Matrix symmetry All symmetry can be broken When variables take distinct values Simply push largest value to a particular corner Order 1st row and 1st col 0/1 variables, 1 occurs once in each row/col Double LEX then leaves an unique solution

52 Matrix symmetry pattern Pattern name: MatrixSymmetry Context A matrix model with partial row and/or column symmetry. Problem Symmetry increases the size of the search space. Forces Eliminating all symmetry can be too expensive. Elimination no symmetry can leave too much search. Solution Consider posting lex ordering constraints on symmetric rows/cols Alternatively post lex ordering in one dimension, and multiset in other Example Balanced incomplete block design (prob028 in CSPLib)

53 Dealing with matrix symmetry Active research area Breaking Row and Column Symmetries in Matrix Models, CP02 Global Constraints for Lexicographic Orderings, CP02 Multiset Ordering Constraints, IJCAI-03 Constraints for Breaking more Row and Column Symmetries, CP03 Generic SBDD using GAP and ECLIPSE, CP03 Symmetry Breaking for Matrix Models using Stabilizers, CP03 ….

54 Dual model pattern Often choice for the decision variables? Consider scheduling the World Cup. Are Vars=games, vals=times or Vars=times, vals=games ?

55 TSP problem = find permutation of cities which makes a tour of minimum length Permutation problems |vars|=|vals| each var has unique val Many examples scheduling timetabling routing assignment problems Permute vars for vals which do we choose?

56 Dual model pattern Pattern name: DualModel Context An informal problem specification. Problem Choosing between a primal & an alternative dual viewpoint. Forces Certain constraints can be easier to post on primal or dual. Certain constraint can propagate better on primal or dual. Solution Consider combined model with channelling between primal & dual variables. Example Balanced academic curriculum problem (prob030 in CSPLib)

57 Implied constraints pattern Pattern name: ImpliedConstraints Context A basic constraint model. Problem Search going down obviously futile branches. Forces Overhead of introducing additional constraints. Applicability of the new implied constraints. Solution Introduce implied constraints that prune such branches. Example Golomb ruler problem (prob006 in CSPLib)

58 Model transformation Can greatly reduce the effort of solving a problem Experts work hard to identify useful transformations, e.g. Adding implied constraints. Breaking symmetry. Removing redundant constraints. Replacing constraints with their logical equivalents.

59 CGRASS Constraint GeneRation And Symmetry-breaking. Designed to automate the task of finding useful model transformations. Based on, and extends, Bundy’s proof planning. Modelling expertise captured by methods. Methods selectively applied to transform the problem. [Frisch, Miguel, Walsh, 02]

60 Golomb ruler problem Place n ticks at integer points on a ruler of length m All inter-tick distances unique Astronomy, crystallography Previously, implied constraints added by hand [Smith et al ‘00]

61 Input to CGRASS x1  x2x1  x2 x1  x3x1  x3 x2  x3x2  x3 x 1 - x 2  x 2 – x 1 x 1 - x 2  x 2 – x 3 x 1 - x 2  x 3 – x 1 x 1 - x 3  x 2 – x 1 x 1 - x 3  x 3 – x 1 x 1 - x 3  x 3 – x 2 x 2 - x 1  x 3 – x 2 x 2 - x 3  x 3 – x 1 x 2 - x 3  x 3 – x 2

62 Output of CGRASS x 1 < x 2 x 2 < x 3 x1  x3x1  x3 z 0 = x 1 – x 2 z 1 = x 2 – x 3 z 2 = x 3 – x 1 Alldiff(z 0, z 1, z 2 )

63 Constraint patterns repository 4c.ucc.ie/patterns Catalog of patterns Mailing list Links … How you can help Submit your patterns now!

64

65

66

67 Conclusions Constraint patterns Useful way to describe modelling expertise MatrixModel, MatrixSymmetry, DualModel, ImpliedConstraints, … How you can help Send me your patterns!


Download ppt "Constraint Patterns Toby Walsh 4C, UCC & Uppsala."

Similar presentations


Ads by Google