1 / 71

Case study 5: all interval series

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”. All interval series.

herne
Télécharger la présentation

Case study 5: all interval series

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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”

  3. 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

  4. 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

  5. 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!

  6. 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

  7. Basic CSP model • What are the variables?

  8. Basic CSP model • What are the variables? Si = j if the ith note is j • What are the constraints?

  9. 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?

  10. 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

  11. 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?

  12. 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])

  13. 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

  14. Dual or combined model? • Would a dual model be useful?

  15. 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?

  16. 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?

  17. 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

  18. Break symmetry • Does the problem have any symmetry?

  19. 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?

  20. 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? • As with Golomb ruler! D1 < Dn-1

  21. Break symmetry • Does the problem have any other symmetry?

  22. Break symmetry • Does the problem have any other symmetry? • Yes, we can invert the numbers in any sequence 0, n-1, 1, n-2, … map x onto n-1-x n-1, 0, n-2, 1, … • How do we eliminate this symmetry?

  23. Break symmetry • Does the problem have any other symmetry? • Yes, we can invert the numbers in any sequence 0, 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

  24. 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

  25. Implied constraints • Are there useful implied constraints to add?

  26. 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

  27. 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

  28. 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 n So use just bounds consistency (BC) for larger n

  29. Case study 6: progressive party problem Model due to Barabra Smith

  30. 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

  31. 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

  32. 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

  33. Basic CSP model • What are the variables?

  34. 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?

  35. 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?

  36. Basic CSP model • What are the constraints? • No guest boat visits a host boat twice For all i . All-different([Hi1,Hi2,..,Hit])

  37. Basic CSP model • What are the constraints? • No guest boat visits a host boat twice For all i . All-different([Hi1,Hi2,..,Hit]) • Host boat capacity is not exceeded

  38. Basic CSP model • What are the constraints? • No guest boat visits a host boat twice For all i . all-different([Hi1,Hi2,..,Hit]) • Host boat capacity is not exceeded Hmm, hosts are values to Hit variables so would need to look at all Hit variables simultaneously!

  39. 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

  40. Improving basic CSP model • Is it worth introducing any auxiliary variables? • Could we express capacity constraints via some auxiliary variables?

  41. 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

  42. Improving basic CSP model • Introduce auxiliary 0/1 variables that can be summed • Vijt = 1 iff Hit=j

  43. 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

  44. What about other constraints? • Still have to specify that no two guest boats meet twice

  45. 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

  46. 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

  47. 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?

  48. 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!

  49. 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

  50. 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

More Related