case study 5: all interval series results due to simonis, puget & regin

71
Case study 5: all interval series Results due to Simonis, Puget & Regin

Upload: morgan-doyle

Post on 28-Mar-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Case study 5: all interval series Results due to Simonis, Puget & Regin

Case study 5: all interval series

Results due to Simonis, Puget & Regin

Page 2: Case study 5: all interval series Results due to Simonis, Puget & Regin

All interval series

Prob007 at www.csplib.org Comes from musical composition

Traced back to Alban Berg Extensively used by Ernst Krenek

Op.170 “Quaestio temporis”

Page 3: Case study 5: all interval series Results due to Simonis, Puget & Regin

All interval series

Take the 12 standard pitch classes c, c#, d, .. Represent them by numbers 0, .., 11

Find a sequence so each occurs once Each difference occurs once

Page 4: Case study 5: all interval series Results due to Simonis, Puget & Regin

All interval series

Can generalize to any n (not just 12)

Find Sn, a permutation of [0,n) such that |Sn+1-Sn| are all distinct

• Finding one solution is easy

Page 5: Case study 5: all interval series Results due to Simonis, Puget & Regin

All interval series

Can generalize to any n (not just 12)

Find Sn, a permutation of [0,n) such that |Sn+1-Sn| are all distinct

• Finding one solution is easy[n,1,n-1,2,n-2,.., floor(n/2)+2,floor(n/2)-1,floor(n/2)+1,floor(n/2)]

Giving the differences [n-1,n-2,..,2,1]

Challenge is to find all solutions!

Page 6: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 7: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables?

Page 8: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables?Si = j if the ith note is j

• What are the constraints?

Page 9: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables?Si = j if the ith note is j

• What are the constraints? Si in [0,n)

All-different([S1,S2,… Sn])

Forall i<i’ |Si+1 - Si| =/ |Si’+1 - Si’|

Will this model be any good? If so, why?

If not, why not?

Page 10: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 11: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Are there any loose or messy constraints

we could better (more compactly?) express via some auxiliary variables?

Page 12: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Yes, variables for the pairwise differences

Di = |Si+1 - Si|

• Now post single large all-different constraint

Di in [1,n-1]

All-different([D1,D2,…Dn-1])

Page 13: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 14: Case study 5: all interval series Results due to Simonis, Puget & Regin

Dual or combined model?

Would a dual model be useful?

Page 15: Case study 5: all interval series Results due to Simonis, Puget & Regin

Dual or combined model?

Would a dual model be useful? We already have GAC on permutations so

not there!

Would an 0/1 model be useful?

Page 16: Case study 5: all interval series Results due to Simonis, Puget & Regin

Dual or combined model?

Would a dual model be useful? We already have GAC on permutations so

not there!

Would an 0/1 model be useful? No obvious benefits here?

Page 17: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 18: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any symmetry?

Page 19: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any symmetry? Yes, we can reverse any sequence

S1, S2, … Sn is an all-inverse series

Sn, …, S2, S1 is also

• How do we eliminate this symmetry?

Page 20: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any symmetry? Yes, we can reverse any sequence

S1, S2, …, Sn is an all-inverse seriesSn, …, S2, S1 is also

• How do we eliminate this symmetry?• As with Golomb ruler!

D1 < Dn-1

Page 21: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any other symmetry?

Page 22: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any other symmetry? Yes, we can invert the numbers in any

sequence0, n-1, 1, n-2, … map x onto n-1-x

n-1, 0, n-2, 1, …

• How do we eliminate this symmetry?

Page 23: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any other symmetry? Yes, we can invert the numbers in any

sequence0, n-1, 1, n-2, … map x onto n-1-x

n-1, 0, n-2, 1, …

• How do we eliminate this symmetry?S1 < S2

Page 24: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 25: Case study 5: all interval series Results due to Simonis, Puget & Regin

Implied constraints

Are there useful implied constraints to add?

Page 26: Case study 5: all interval series Results due to Simonis, Puget & Regin

Implied constraints

Are there useful implied constraints to add? Hmm, unlike Golomb ruler, we only have

neighbouring differences So, no need to consider transitive closure

Page 27: Case study 5: all interval series Results due to Simonis, Puget & Regin

Implied constraints

Are there useful implied constraints to add? Hmm, unlike Golomb ruler, we are not

optimizing So, no need to improve propagation for

optimization variable

Page 28: Case study 5: all interval series Results due to Simonis, Puget & Regin

Performance

Basic model is poor Refined model able to compute all

solutions up to n=14 or so GAC on all-different constraints very

beneficial As is enforcing GAC on Di = |Si+1-Si|

This becomes too expensive for large nSo use just bounds consistency (BC) for larger n

Page 29: Case study 5: all interval series Results due to Simonis, Puget & Regin

Case study 6: progressive party problem

Model due to Barabra Smith

Page 30: Case study 5: all interval series Results due to Simonis, Puget & Regin

Progressive party problem

Progressive does not mean “hippy”! But people progress

round the party Yacht club party

Small number of host boats

Crews of other boats circulate round the hosts

Page 31: Case study 5: all interval series Results due to Simonis, Puget & Regin

Progressive party problem

There are h hosts, and g guests Each host boat has a maximum capacity of people Each guest boat has a crew size

In each of t time periods Each guest boat visits one of the h hosts Subject to capacity constraints on hosts In addition, no two guests should meet twice and

no guest visit the same host twice

Page 32: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 33: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables?

Page 34: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables? Hit = j if guest boat i visits host j at time t Why not the “dual” model of which guest

visits host j at time t?

Page 35: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the variables? Hit = j if guest boat i visits host j at time t Why not the “dual” model of which guest

visits host j at time t?But several guests visit each host so would need

to deal with set of guests for each host?

Page 36: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the constraints?

No guest boat visits a host boat twiceFor all i . All-different([Hi1,Hi2,..,Hit])

Page 37: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the constraints?

No guest boat visits a host boat twiceFor all i . All-different([Hi1,Hi2,..,Hit])

• Host boat capacity is not exceeded

Page 38: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic CSP model

What are the constraints?

No guest boat visits a host boat twiceFor all i . all-different([Hi1,Hi2,..,Hit])

• Host boat capacity is not exceededHmm, hosts are values to Hit variables so would

need to look at all Hit variables simultaneously!

Page 39: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 40: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Could we express capacity constraints via

some auxiliary variables?

Page 41: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Could we express capacity constraints via

some auxiliary variables? Of course, I wouldn’t be asking the

question otherwise

Page 42: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Introduce auxiliary 0/1 variables that can be summed Vijt = 1 iff Hit=j

Page 43: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Introduce auxiliary 0/1 variables that can be summed Vijt = 1 iff Hit=j

Capacity constraint now easy to specify: Sum_i Vijt * crew_i <= capacity_j

where crew_i is crew size of boat j and capacity_j is capacity of host boat j

Page 44: Case study 5: all interval series Results due to Simonis, Puget & Regin

What about other constraints?

Still have to specify that no two guest boats meet twice

Page 45: Case study 5: all interval series Results due to Simonis, Puget & Regin

What about other constraints?

Still have to specify that no two guest boats meet twice Quantify over all pairs of guest, all host

boats and all time periods O(g^2 h t) constraints

Page 46: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 47: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Could we express “don’t meet twice”

constraints more compactly/efficiently via some auxiliary variables?

Page 48: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving basic CSP model

Is it worth introducing any auxiliary variables? Could we express “don’t meet twice”

constraints more compactly/efficiently via some auxiliary variables?

Yes, of course. I wouldn’t be asking otherwise!

Page 49: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving CSP model

Introduce auxiliary 0/1 variables to represent meetings Mklt = 1 iff Hkt=Hlt I.e. if guest k meets guest l at time t

Page 50: Case study 5: all interval series Results due to Simonis, Puget & Regin

Improving CSP model

Introduce auxiliary 0/1 variables to represent meetings Mklt = 1 iff Hkt=Hlt I.e. if guest k meets guest l at time t

Meeting constraints easily specified Sum_t Mklt <= 1

Page 51: Case study 5: all interval series Results due to Simonis, Puget & Regin

Basic methodology

Devise basic CSP model What are the variables? What are the

constraints?

Introduce auxiliary variables if needed Consider dual or combined models Break symmetry Introduce implied constraints

Page 52: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any symmetry?

Page 53: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any symmetry? Yes, of course. The world is full of

symmetry!

Page 54: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Host boats of the same capacity are symmetric

Guest boats of the same crew size are symmetric Guest boat symmetry is more important

than host boat. Why?

Page 55: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any other symmetry?

Page 56: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Does the problem have any other symmetry?

Yes, of course. Time periods are symmetric

Page 57: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

How do we deal with symmetry of time periods?

Page 58: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

How do we deal with symmetry of time periods? Largest guest boat visits host boats in

order Similar trick to assigning first row of

orthogonal Latin square Why largest?

Page 59: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Guest boats with the same crew size are symmetric How do we break this symmetry?

Page 60: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Guest boats with the same crew size are symmetric If j<k have same crew size then

Hj1 <= Hk1

Page 61: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Guest boats with the same crew size are symmetric If j<k have same crew size then

Hj1 <= Hk1

• They might still meet at t=1!• We cannot rule this out• If they do, we still have this symmetry

Page 62: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Guest boats with the same crew size are symmetric If j<k have same crew size then

Hj1 <= Hk1

• They might still meet at t=1!Hj1<Hk1 or Hj2<Hk2

They cannot meet at t=1 and t=2

Page 63: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Host boats with the same capacity are symmetric How do we break this symmetry?

Page 64: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Host boats with the same capacity are symmetric Partial solution If j<k have identical capacity, then guest

boat 1 visits k implies it also visits j

Page 65: Case study 5: all interval series Results due to Simonis, Puget & Regin

Break symmetry

Host boats with the same capacity are symmetric Partial solution If j<k have identical capacity, then guest

boat 1 visits k implies it also visits j

Can you improve on this?

Page 66: Case study 5: all interval series Results due to Simonis, Puget & Regin

Solving choices

Which variables to branch on? Hit, Vijt or Mijt ?

Page 67: Case study 5: all interval series Results due to Simonis, Puget & Regin

Solving choices

Which variables to branch on? Hit and let others follow

What variable ordering heuristic

Page 68: Case study 5: all interval series Results due to Simonis, Puget & Regin

Solving choices

Which variables to branch on? Hit and let others follow

What variable ordering heuristic Fail first

What value ordering?

Page 69: Case study 5: all interval series Results due to Simonis, Puget & Regin

Solving choices

Which variables to branch on? Hit and let others follow

What variable ordering heuristic Fail first

What value ordering? Host boats by their spare capacity Alias succeed first

Page 70: Case study 5: all interval series Results due to Simonis, Puget & Regin

Performance

Party held before problem solved! 13 hosts, 29 guests, 6 time periods

Heuristic tweaked to assign each period in turn

Solution found for 7 period problem They could have partied longer

12 host problem easy to show insoluble Simple capacity argument

Page 71: Case study 5: all interval series Results due to Simonis, Puget & Regin

Conclusions

Constraint programming can improve your social life!

Modelling is an art but there are patterns Develop basic model Use auxiliary variables to represent constraints

compactly/efficiently Consider dual, combined and 0/1 models Break symmetry Add implied constraints