A branch-and-cut algorithm for the Minimum Labeling Hamiltonian Cycle Problem and two variants Nicolas Jozefowiez 1 , Gilbert Laporte 2 , Fr´ eric Semet 3 ed´ 1. LAAS-CNRS, INSA, Universit´ e de Toulouse, Toulouse, France, nicolas.jozefowiez@laas.fr 2. CIRRELT, HEC, Montr´ eal, Canada, gilbert@crt.umontreal.ca 3. LAGIS, Ecole Centrale de Lille, Villeneuve d’Ascq, France, frederic.semet@ec-lille.fr 1 / 21
The Minimum Labeling Hamiltonian Cycle Problem (MLHCP) Data: G = ( V, E ) : an undirected graph C is a set of colors Each e ∈ E has a color k ∈ C Goal: Find a Hamiltonian cycle Minimize the number of colors appearing on the cycle 2 / 21
State-of-the-art Minimum labelling hamiltonian cycle problem (Tabu search) [Cerulli, Dell’Olmo, Gentili, Raiconi, 2006] Colorful traveling salesman problem (heuristic, GA) [Xiong, Golden, Wasil, 2007] Traveling salesman problem with labels (approximation algorithm) [Gourv` es, Monnot, Telelis, 2008] Minimum labelling spanning tree problem 3 / 21
Two variants ◮ Valuations on the edges ◮ Minimum Labeling Hamiltonian Cycle Problem with Length Constraint (MLHCPLC) ◮ Minimize the number of colors appearing on the cycle ◮ Impose a bound on the length of the tour ◮ Label Constrained Traveling Salesman Problem (LCTSP) ◮ Minimize the length of the tour ◮ Impose a bound on the number of colors appearing on the tour 4 / 21
Integer program for the MLHCP ( 1 if e ∈ E is used, Variables x e = 0 otherwise. ( 1 if k ∈ C is used, u k = 0 otherwise. Constants and notations ∀ e ∈ E, δ ( e ) = k ∈ C the color of e ∀ k ∈ C, ζ ( k ) = { e ∈ E | δ ( e ) = k } ∀ S ⊂ V, ω ( S ) = { e = ( i, j ) ∈ E | i ∈ S and j ∈ V \ S } 5 / 21
Integer program for the MLHCP X Objective functions min u k k ∈ C X Constraints x e = 2 ∀ i ∈ V e ∈ ω ( { i } ) X x e ≥ 2 ∀ S ⊂ V, 3 ≤ | S | ≤ | V | − 3 e ∈ ω ( S ) x e ≤ u δ ( e ) ∀ e ∈ E x e ∈ { 0 , 1 } ∀ e ∈ E u k ∈ { 0 , 1 } ∀ k ∈ C X Valid constraints u k ≤ x e ∀ k ∈ C e ∈ ζ ( k ) 6 / 21
Adaptations to the MLHCPLC and LCTSP MLHCPLC : Add constraint P e ∈ E c e x e ≤ ǫ LCTSP : Replace objective with min P e ∈ E c e x e Add constraint P k ∈ C u k ≤ ǫ 7 / 21
Valid inequalities Proposition. Let T ⊆ E . If the constraint X α e x e ≤ β e ∈ T is valid for the TSP, then for a label k ∈ C , the inequality X α e x e ≤ βu k e ∈ T ∩ ζ ( k ) is valid for the MLHCP, the MLHCPLC, and the LCTSP. 8 / 21
Valid inequalities (cont.) Proposition. The constraints X x e ≤ 2 u k ( i ∈ V, k ∈ C, 3 ≤ | ω ( { i } ) ∩ ζ ( k ) | ≤ | V | − 3) e ∈ ω ( { i } ) ∩ ζ ( k ) are valid for the MLHCP, the MLHCPLC, and the LCTSP. Proposition. The constraints X x e ≤ ( | S | − 1) u k ( k ∈ C, S ⊂ V, 3 ≤ | S | ≤ | V | − 3) e ∈ E ( S ) ∩ ζ ( k ) are valid for the MLHCP, the MLHCPLC, and the LCTSP. S i j 0,5 1 0,5 1 1 0,5 0,5 1 0,5 i 1 1 0,5 0,5 0,5 1 1 0,5 1 0,5 1 l k 9 / 21
Valid inequalities (cont.) Proposition. Let T ⊆ E . If the inequality X α e x e ≥ β e ∈ T is valid for the TSP, then the inequality X X min { α e , β } u k ≥ β k ∈ C e ∈ T ∩ ζ ( k ) is valid for the MLHCP, the MLHCPLC, and the LCTSP. Proposition. The inequalities X γ k ( S ) u k ≥ 2 ( S ⊂ V, 3 ≤ | S | ≤ | V | − 3) k ∈ C with 8 if ∄ e ∈ ω ( S ) , e ∈ ζ ( k ) 0 > < γ k ( S ) = 1 if ∃ ! e ∈ ω ( S ) , e ∈ ζ ( k ) > 2 otherwise. : are valid for the MLHCP, the MLHCPLC, and the LCTSP. 10 / 21
Polyhedral results for the MLHCP Lemma A solution for the TSP is also a solution for the MLCHP. Lemma If constraints u k ≤ P e ∈ ζ ( k ) x e are added to the model, there is a one to one correspondence between the solutions of the TSP and those of the MLHCP. Theorem. Let k ∈ C and i ∈ V , if 3 ≤ | ω ( { i } ) ∩ ζ ( k ) | ≤ | V | − 3 and ζ ( k ) \ ( ω ( { i } ) ∩ ζ ( k )) � = ∅ , then F ki = { ( x, u ) ∈ C MLHCP | P e ∈ ω ( { i } ) ∩ ζ ( k ) x e − 2 u k = 0 } is a proper face of 1 C MLHCP . Theorem. Let k ∈ C and S ⊂ V , if 3 ≤ | S | ≤ | V | − 3 and ∀ i ∈ S, | ω ( { i } ) ∩ ζ ( k ) | ≥ | S | 2 , then F kS = { ( x, u ) ∈ C MLHCP | P e ∈ E ( S ) ∩ ζ ( k ) x e − ( | S | − 1) u k = 0 } is a proper face of 2 C MLHCP . 11 / 21
Heuristic for the LCTSP STEP 1: Solve the following mixed integer program (with a time limit) to obtain a solution (¯ x, ¯ u ): X X min c e x e + m u k e ∈ E k ∈ C X x e = 2 ∀ i ∈ V e ∈ ω ( { i } ) x e ≤ u δ ( e ) ∀ e ∈ E X u k ≤ x e ∀ k ∈ C e ∈ ζ ( k ) X u k ≤ ǫ k ∈ C 0 ≤ x e ≤ 1 ∀ e ∈ E u k ∈ { 0 , 1 } ∀ k ∈ C STEP 2: If no feasible solution was found, ǫ ← ǫ − 1. Go to STEP 1 STEP 3: Solve a TSP on G ′ = ( V, E ) with new costs c ′ e = 1 if ¯ u δ ( e ) = 1, | V | max v ∈ E c v + c e otherwise ( e ∈ E ). STEP 4: If the tour obtained uses less than ǫ colors, return the solution, otherwise ǫ ← ǫ − 1 and go to STEP 1. 12 / 21
Branch-and-cut algorithm Step 1 (Root of the tree) Generate an initial upper bound ub . Define a first subproblem. Insert the subproblem in a list L . Step 2 (Stopping criterion) If L = ∅ then STOP, else choose a subproblem from L and remove it from L . Step 3 (Subproblem solution) Solve the subproblem to obtain the lower bound lb . Step 4 (Constraint generation) if lb ≥ ub then Go to Step 2. else if the solution is integer then ub ← lb . Go to Step 2. else if violated constraints are identified then Add them to the model and go to Step 3. else Go to Step 5. end if end if Step 5 (Branching) Branch on a variable and introduce the corresponding subproblems in L . Go to Step 2. 13 / 21
Branch-and-cut algorithm : initial subproblem X min u k k ∈ C X x e = 2 ∀ i ∈ V e ∈ ω ( { i } ) x e ≤ u δ ( e ) ∀ e ∈ E X u k ≤ x e ∀ k ∈ C e ∈ ζ ( k ) X γ k ( S ) u k ≥ 2 ( S ⊂ V, 3 ≤ | S | ≤ | V | − 3) k ∈ C X ≤ ( | S | − 1) u k ( k ∈ C, S = i, j, k ⊂ V, ∀ e ∈ S × S, u δ ( e ) = k ) x e e ∈ E ( S ) ∩ ζ ( k ) 0 ≤ x e ≤ 1 ∀ e ∈ E 0 ≤ u k ≤ 1 ∀ k ∈ C 14 / 21
Branch-and-cut algorithm: constraint generation Connectivity constraints X x e ≥ 2 ( S ⊂ V, 3 ≤ | S | ≤ | V | − 3) e ∈ ω ( S ) X γ k ( S ) u k ≥ 2 ( S ⊂ V, 3 ≤ | S | ≤ | V | − 3) k ∈ C with 8 if ∄ e ∈ ω ( S ) , e ∈ ζ ( k ) 0 > < γ k ( S ) = 1 if ∃ ! e ∈ ω ( S ) , e ∈ ζ ( k ) > 2 otherwise. : Min-cut problem : G m = ( V m , E m ), find S ⊂ V m minimizing P e ∈ ω ( S m ) c e CONCORDE function [Padberg & Rinaldi, 1990] 15 / 21
Branch-and-cut algorithm: branching and initial upper bound Branching In priority on the fractional u K with the largest value of | ζ ( k ) Then, on the fractional variable x e closest to 0.5 Initial upper bound MLHCP : none MLHCPLC, LCTSP : heuristic 16 / 21
Computational results C Intel Core 2 Duo E6550 2.33Ghz CPU CPLEX 11.1.2 CONCORDE library TSPLIB for the MHLCPLC and LCTSP √ An edge ( i, j ) is given the label ⌊| C | ( ijA − ⌊ ijA ⌋ ) ⌋ , where A = ( 5 − 1) / 2 17 / 21
Computational results: MLHCP | V | | C | Opt lb/Opt #Nodes #u #x #Cuts Seconds 50 50 4 0.552 113 56 0 33 19 50 100 5 0.691 37 18 0 2 4 50 150 6 0.749 41 20 0 4 3 50 200 7 0.783 3427 1711 2 75 295 100 50 3 0.572 13 6 0 0 26 100 100 4 0.561 143 68 3 7 290 100 150 5 0.587 973 486 0 6 2036 100 200 6 0.602 6587 3289 4 87 12583 150 50 2 0.826 5 1 1 7 46 150 100 3 0.667 11 5 0 9 91 150 150 4 0.626 81 40 0 2 524 150 200 5 0.580 1379 688 1 16 8872 200 50 2 0.812 3 1 0 4 152 200 100 3 0.643 31 3 12 17 289 200 150 4 0.564 285 140 2 12 4105 200 200 4 0.617 133 59 7 40 2630 18 / 21
Computational results: LCTSP Inst./ | C | /% Opt lb/Opt #Nodes #u #x #Cuts Seconds kroA100/50/25 36423/12 0.901 11623 5815 0 1139 3600 kroA100/50/50 24812/25 0.945 43106 21246 315 664 3600 kroA100/50/75 21639/37* 0.984 72289 21890 14254 221 909 kroA100/100/25 30056/25 0.933 20689 10350 0 957 3600 kroA100/100/50 21833/50* 0.989 79747 38602 1271 290 2100 kroA100/100/75 21282/62* 0.984 206817 78684 24724 212 1860 kroB100/50/25 35882/12 0.908 12028 5986 31 1246 3600 kroB100/50/50 24912/25* 0.976 14701 7255 95 447 1192 kroB100/50/75 22361/37* 0.988 23503 6769 4982 207 379 kroB100/100/25 30764/25 0.943 25196 12600 5 778 3600 kroB100/100/50 23095/50 0.982 126400 61772 1436 344 3600 kroB100/100/75 22211/68 0.983 256317 98252 29918 236 3600 eil101/50/25 931/12 0.899 13084 6503 43 1158 3600 eil101/50/50 693/25* 0.968 23581 11759 31 1104 2174 eil101/50/75 638/37* 0.994 431 214 1 88 12 eil101/100/25 803/25 0.936 27371 13661 31 897 3600 eil101/100/50 643/50* 0.994 1059 528 1 125 30 eil101/100/75 629/66* 0.998 12459 5598 631 208 227 lin105/50/25 23803/12* 0.921 2153 1071 5 470 558 lin105/50/50 16208/25* 0.980 1885 902 40 228 136 lin105/50/75 14635/37* 0.999 7 3 0 37 1 lin105/100/25 20420/25 0.946 23169 11583 5 772 3600 lin105/100/50 15021/50* 0.994 10971 5440 45 135 248 lin105/100/75 14379/68* 0.999 3 1 0 33 0 19 / 21
Recommend
More recommend