Solving Steiner Triple Covering Problems Jeff Linderoth Dept. of Industrial and Systems Engineering Univ. of Wisconsin-Madison linderoth@wisc.edu Jim Ostrowski University of Waterloo Fabrizio Rossi Stefano Smriglio Universit` a di L’Aquila 14th Combinatorial Optimization Workshop Aussois, France January, 2010 L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 1 / 22
Introduction Steiner Triple Covering Steiner Triple Covering Partition the edges of K v into triangles A Steiner Triple System of order v (STS ( v ) ) Set S with v elements Collection B of triples of S Each pair of elements in S appears together in a unique triple of B . A covering of a STS is a subset C of the elements of S such that C ∩ T � = ∅ for each triple T ∈ B . The incidence width of a STS is its smallest-size covering. A Very Good Question Why do we care? L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 2 / 22
Introduction Steiner Triple Covering Because George Said So! Fulkerson, Nemhauser, and Trotter (’74) suggested that computing the incidence width of a STS ( v ) may be a difficult IP x ∈ { 0,1 } v { e T x | A v x ≥ 1 } , min where A v ∈ { 0, 1 } | B | × v is the incidence matrix of the STS ( v ) . They created instances based on STS of orders v ∈ { 9, 15, 27, 45 } , and posed these instances as a challenge to the integer programming community. The instance STS ( 45 ) was not solved until five years later by Don Ratliff Instances STS ( 3v ) created from STS ( v ) by a well-known “tripling” procedure. L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 3 / 22
Introduction Steiner Triple Covering Steiner Triple Incidence Matrices 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 A n 0 0 0 1 0 0 1 0 0 1 0 0 A n 0 0 0 1 0 0 1 0 0 1 A 9 = A 3n = 0 0 A n 1 0 0 0 1 0 0 0 1 I I I 1 0 0 0 0 1 0 1 0 G 1 G 2 G 3 n n n 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 4 / 22
Introduction Steiner Triple Covering Upper Bounds z ∗ ( STS15 ) = 9 (Fulkerson, Nemhauser, Trotter, ’74) z ∗ ( STS27 ) = 18 (Fulkerson, Nemhauser, Trotter, ’74) z ∗ ( STS45 ) = 30 (Ratliff, ’79) z ∗ ( STS81 ) = 61 (Mannino, Sassano, ’95) z ∗ ( STS135 ) ≤ 103 (Odijk and Maaren, ’98) z ∗ ( STS243 ) ≤ 198 (Odijk and Maaren, ’98) STS ( 81 ) is also easily solved by the isomorphism pruning (Margot) and orbital branching (Ostrowski et al. ) Our Challenge! STS ( 135 ) and STS ( 243 ) remain unsolved Neither isomorphism pruning nor orbital branching can solve them L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 5 / 22
Introduction Symmetry Symmetry π ∈ Π n is a symmetry of IP if... x feasible ⇔ π ( x ) feasible 1 c T x = c T π ( x ) 2 The set of symmetries of IP (with composition of permutations) forms the symmetry group of IP G ( IP ) = { π ∈ Π n | π ( x ) ∈ F , c T x = c T π ( x ) ∀ x ∈ F } , where F = { x ∈ { 0, 1 } n | Ax ≥ b } is the set of feasible solutions G ( IP ) is a property of the feasible region: F = ∅ ⇒ G ( IP ) = Π n For our methods, we can work with any subgroup Γ ⊂ G ( IP ) If c = e , b = e , we can use the symmetry group of the matrix A : G ( A ) def = { π ∈ Π n | ∃ σ ∈ Π m such that P σ AP π = A } L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 6 / 22
Introduction Symmetry Orbits and Inequalities For a point z ∈ R n , the orbit of z under the action of the group G is the set of all elements of R n to which z can be sent by permutations in G , i.e. orb ( G , z ) def = { π ( z ) | π ∈ G } . If π ∈ G , then imposing the constraint λ T x ≤ λ 0 is “equivalent” to imposing the constraint π ( λ ) T x ≤ λ 0 If orb ( G , λ ) = { λ, µ 1 , µ 2 , . . . , µ K } , then the inequalities µ T j x ≤ λ 0 are all equivalent to (symmetric with) λ T x ≤ λ 0 Constraint Orbital Branching: branches on symmetric inequalities L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 7 / 22
Introduction Exploiting Symmetry in Disjunction Constraint Orbital Branching Branch with following disjunction: � µ T ∨ � µ T j x ≤ λ 0 j x ≥ λ 0 + 1 µ j ∈ orb ( G ,λ ) µ j ∈ orb ( G ,λ ) But all of the µ T j x ≤ λ 0 are equivalent by symmetry So branch on two-node disjunction � ( λ T x ≤ λ 0 ) ∨ µ T j x ≥ λ 0 + 1 µ j ∈ orb ( G ,λ ) The orbital branching method is a special case of constraint orbital branching for ( λ, λ 0 ) = (− e k , − 1 ) . L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 8 / 22
Introduction Finding Good Disjunctions Branching Disjunctions in Constraint Orbital Branching We would like to find branching disjunction ( λ, λ 0 ) such that 1 | orb ( G , λ ) | is large. This will move the LP bound a lot on the right branch. 2 Solving the left branch ( λ T x ≤ λ 0 ) is “easy” We so far have not thought of good ways doing this in general. We have for certain problem classes identified good disjunctions STS ( 3v ) : Branch using optimal solution to STS ( v ) Covering Design: Branch on Sch¨ onheim Inequalities Using these disjunctions has enabled us to solve instances that variable orbital branching cannot L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 9 / 22
Solving STS ( 135 ) and STS ( 243 ) The Disjunction Back to STS135: The Branching Disjunction Let λ = ( e 45 , 0 90 ) T be the characteristic vector of the first 45 components 12 vectors µ j share an orbit with λ (shown in blocks of size 15) µ 1 e e e 0 0 0 0 0 0 µ 2 0 0 0 e e e 0 0 0 STS ( n ) Incidence Matrix µ 3 0 0 0 0 0 0 e e e µ 4 e 0 0 e 0 0 e 0 0 µ 5 e 0 0 0 e 0 0 0 e A n 0 0 µ 6 e 0 0 0 0 e 0 e 0 = 0 A n 0 µ 7 0 e 0 e 0 0 0 e 0 A 3n = 0 0 A n µ 8 0 e 0 0 e 0 0 e 0 µ 9 0 e 0 0 0 e e 0 0 I I I µ 10 0 0 e e 0 0 0 e 0 G 1 G 2 G 3 n n n µ 11 0 0 e 0 e 0 e 0 0 µ 12 0 0 e 0 0 e 0 0 e STS ( 243 ) : 363 vectors share an orbit with λ = ( e 81 , 0 162 ) . L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 10 / 22
Solving STS ( 135 ) and STS ( 243 ) The Disjunction Solving STS ( 135 ) and STS ( 243 ) z ∗ ( STS ( 45 )) = 30 , z ∗ ( STS ( 81 )) = 61 . ⇒ λ T x ≥ 30 for any feasible solution to STS ( 135 ) ⇒ λ T x ≥ 61 for any feasible solution to STS ( 243 ) Idea: Constraint orbital branching disjunction ( λ T x ≤ 30 ) ∨ ( µ T x ≥ 31 ) ∀ µ ∈ orb ( G , λ ) for STS ( 135 ) ( λ T x ≤ 61 ) ∨ ( µ T x ≥ 62 ) ∀ µ ∈ orb ( G , λ ) for STS ( 243 ) In fact, we can continue this branching for a few levels. Sometimes we also branch on σ T x = [ e n/9 , 0 8n/9 ] x ≤ K , exploiting known optimality of solutions to STS ( n/9 ) . L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 11 / 22
Solving STS ( 135 ) and STS ( 243 ) Enumerating Solutions STS ( 135 ) Branching Tree λ T x ≤ 30 µ T x ≥ 31 ∀ µ ∈ orb ( G ,λ ) µ T x ≥ 32 ∀ µ ∈ orb ( G ,λ ) λ T x ≤ 31 A µ T x ≥ 33 ∀ µ ∈ orb ( G ,λ ) λ T x ≤ 32 B σ T x ≤ 9 µ T x ≥ 10 ∀ µ ∈ orb ( G ,σ ) C λ T x ≤ 33 µ T x ≥ 34 ∀ µ ∈ orb ( G ,λ ) D µ T x ≥ 12 ∀ µ ∈ orb ( G ,σ ) σ T x ≤ 11 E F G z LP ( D ) = 105 , z LP ( F ) = 103 , z LP ( G ) = 108 L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 12 / 22
Solving STS ( 135 ) and STS ( 243 ) Enumerating Solutions STS ( 243 ) Branching Tree λ T x ≤ 61 µ T x ≥ 62 ∀ µ ∈ orb ( G ,σ ) λ T x ≤ 62 µ T x ≥ 63 ∀ µ ∈ orb ( G ,λ ) A µ T x ≥ 19 ∀ µ ∈ orb ( G ,σ ) σ T x ≤ 18 B µ T x ≥ 64 ∀ µ ∈ orb ( G ,λ ) λ T x ≤ 63 C µ T x ≥ 20 ∀ µ ∈ orb ( G ,σ ) σ T x ≤ 19 D λ T x ≤ 64 µ T x ≥ 65 ∀ µ ∈ orb ( G ,λ ) E σ T x ≤ 21 µ T x ≥ 22 ∀ µ ∈ orb ( G ,σ ) F G H z LP ( C ) = 198, z LP ( E ) = 199, z LP ( H ) = 198 L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 13 / 22
Solving STS ( 135 ) and STS ( 243 ) Enumerating Solutions Solving STS ( 135 ) in 4 Nodes, STS ( 243 ) in 5 Nodes Sadly, “evaluating” the unpruned nodes is a non-trivial task. Smart Things We Tried CPLEX Isomorphism pruning Orbital Branching Generating MIR/Split closures Running “on the grid” Dumb Things We Tried Instead, we resorted to something far less intelligent: enumeration L., Ostrowski, Rossi, Smriglio (UW ISyE) Solving Steiner Triple Covering Problems Aussois XIV 14 / 22
Recommend
More recommend