Presentation is loading. Please wait.

Presentation is loading. Please wait.

Matrix Modelling Alan M. Frisch and Ian Miguel (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Toby Walsh (Cork)

Similar presentations


Presentation on theme: "Matrix Modelling Alan M. Frisch and Ian Miguel (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Toby Walsh (Cork)"— Presentation transcript:

1 Matrix Modelling Alan M. Frisch and Ian Miguel (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Toby Walsh (Cork)

2 What is matrix modelling?  Constraint programs with one or more matrix of decision vars  Common patterns in such models Extend modelling languages & solvers to exploit them

3 Obvious 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!

4 Sports scheduling. 0 vs 72 vs 72 vs 60 vs 41 vs 63 vs 54 vs 5Period 3 0 vs 5 1 vs 4 3 vs 7 Week 5 3 vs 4 0 vs 6 1 vs 5 Week 6 1 vs 31 vs 22 vs 54 vs 66 vs 7Period 4 5 vs 65 vs 70 vs 31 vs 72 vs 3Period 2 2 vs 43 vs 64 vs 70 vs 20 vs 1Period 1 Week 7Week 4Week 3Week 2Week 1 Regin’s Round Robin Tournament model

5 Matrix modelling  Matrix models are very common in other applications Even if the matrix is not so obvious in the problem specification

6 Example: warehouse location  Supply chain management  How many warehouses do we build and where do we build them? One in the middle of the US One on each coast …  Problem (and solution) taken from OPL manual

7 Matrix model: variables 0..1 Store Warehouse Supply 0..1 Open Warehouse

8 Matrix model:constraints  Each store has a warehouse: row sum Supply=1  Warehouse capacity: column sum Supply <= ci  Channelling constraints: Supply[i,j]=1 implies Open[i]=1  Optimization variable: Cost = matrix sum Supply[i,j]*distcost[i,j] + opencost * row sum Open 0..1 Open Warehouse 0..1 Store Warehouse Supply

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

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

11 Balance academic curriculum problem  Very similar matrix model Channelling now to weighted sum not 0/1 var Optimization var changes  Matrix modelling Exploiting these patterns Provide high level primitives To state such problems compactly To reason effectively

12 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, …

13 Why matrix model?  Ease of problem statement Side constraints, variable indexing, …  Improved constraint propagation Symmetry breaking, indistinguishable values, linear models, … Suggests two lines of attack 1.Matrix operations should become first class objects in constraint programming languages. 2.MATLAB should be extended so it is a constraint modelling language

14 Common constraint types  Row or column sum  Weighted row/column 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?

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

16 Steel mill slab design 2 3 11111 2 1 3 possible slab sizes (1, 3 or 4), 9 orders 5 colours, but only 2 allowed on any one slab abcdefghi

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

18 Matrix model for the slab design problem 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 … Col sum=1, row sum<slab size Col sum=1, row sum<2

19 Example solution 2 3 11111 2 1 oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof ogog ohoh oioi s1s1 000000111 s2s2 101000000 s3s3 010000000 s4s4 000111000 …000000000 RedGreenBlueOrangeBrown s1s1 00011 s2s2 11000 s3s3 01000 s4s4 00110 …00000 s 1 = 4, s 2 = 3, s 3 = 3, s 4 = 3

20 Improved propagation  Warehouse location Could have used 1-d matrix, Supply(store)=warehouse But then warehouse capacity constraint Difficult to state  Need to sum demand from all stores such that Supply(store)=warehouse Difficult to propagate

21 Improved propagation  Warehouse location Instead of 1-d matrix, Supply(store)=warehouse We used 2-d matrix, Supply(store,warehouse)=0/1 2-d matrix allows us to use purely linear constraints => can even use LP solver

22 Symmetry breaking  Often rows or columns (or both) are symmetric All weeks (cols) can be permuted in a timetable All slabs (rows) of same size can be permuted  Lex order rows/cols Can do both if row and cols are both symmetric Efficient O(n) GAC algorithm, patent pending Never work with children or animals

23 Lexicographically ordering rows breaks all row symmetry Lexicographically ordering cols breaks all col symmetry Symmetry-breaking

24 Lexicographically ordering both rows & cols does not break all row & col symmetry: 01 10 10 01 01 10 Symmetry-breaking problem Other techniques for dealing with symmetry like SBDS also have problems as there are n! symmetries

25 Indistinguishable values  Values in problem can be indistinguishable In progressive party problem: Assign(guest,period)=host But host boats of same size are indistinguishable  Channel into 0/1 matrix with extra dimension Assign3(guest,period,host)=0/1 Value symmetry => variable symmetry

26 Transforming value symmetry into variable symmetry  Suppose all values are indistinguishable {b, d}ca 100 010 100 001abcdabcd Now the rows are indistinguishable So we are in a previously solved case!

27 Variable indexing  Use variables to index into arrays E.g. channelling in progressive party problem Assign3(guest,period,Assign(guest,period))=1 compared to Assign3(guest,period,host)=1 iff Assign(guest,period)=host Reduces number of constraints from cubic to quadratic Hooker (and others) argue that such indexing is one of the significant advantages CP has over IP

28 Conclusions  Matrix models common  Common types of constraints posted on matrices Row/column sum, symmetry breaking, channelling, …  Matrix operations should be made first-class objects in modelling languages MATLAB, EXCEL, …


Download ppt "Matrix Modelling Alan M. Frisch and Ian Miguel (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Toby Walsh (Cork)"

Similar presentations


Ads by Google