Greedy MaxCut Algorithms and their Information Content Yatao Bian , Alexey Gronskiy and Joachim M. Buhmann Machine Learning Institute, ETH Zurich April 27, 2015 1 / 19
Contents Greedy MaxCut Algorithms Approximation Set Coding (ASC) Applying ASC: Count the Approximation Sets Applying ASC: Experiments and Analysis 2 / 19
Contents Greedy MaxCut Algorithms Approximation Set Coding (ASC) Applying ASC: Count the Approximation Sets Applying ASC: Experiments and Analysis 2 / 19
MaxCut MaxCut : classical NP-hard problem 3 / 19
MaxCut MaxCut : classical NP-hard problem • G = ( V, E ) , vertex set V , edge set E , weights w ij ≥ 0 cut 3=1+2 value 1 x y 2 3 z 3 / 19
MaxCut MaxCut : classical NP-hard problem • G = ( V, E ) , vertex set V , edge set E , weights w ij ≥ 0 • CUT c := ( S, V \ S ) , cut space C ( |C| = 2 n − 1 − 1 ) cut 3=1+2 value 1 x y 2 3 z 3 / 19
MaxCut MaxCut : classical NP-hard problem • G = ( V, E ) , vertex set V , edge set E , weights w ij ≥ 0 • CUT c := ( S, V \ S ) , cut space C ( |C| = 2 n − 1 − 1 ) • Cut value: cut( c, G ) := � i ∈ S,j ∈ V \ S w ij cut 3=1+2 value 1 x y 2 3 z 3 / 19
MaxCut MaxCut : classical NP-hard problem • G = ( V, E ) , vertex set V , edge set E , weights w ij ≥ 0 • CUT c := ( S, V \ S ) , cut space C ( |C| = 2 n − 1 − 1 ) • Cut value: cut( c, G ) := � i ∈ S,j ∈ V \ S w ij cut max 3=1+2 5=2+3 value cut:-) 1 1 x y x y 2 3 2 3 z z 3 / 19
Greedy Algorithms for MaxCut Greedy Techniques Name Heuristic Sorting Init. Vertices Deterministic Double Greedy SG (Sahni & Gonzales) Double � SG3 (variant of SG) � � Edge Contraction (EC) Backward � 4 / 19
Double Greedy Taxonomy 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions simultaneously 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do • for each vertex, decides whether it should be added to S , or removed from T 10: end for 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides whether it should be added to S , or removed from T 10: end for 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides if a i ≥ b i then 5: whether it should be add v i to S 6: added to S , or removed else 7: from T remove v i from T 8: end if 9: 10: end for 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides if a i ≥ b i then 5: whether it should be add v i to S 6: added to S , or removed else 7: from T remove v i from T 8: end if 9: 10: end for 11: return cut: ( S, V \ S ) , cut value 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides if a i ≥ b i then 5: whether it should be add v i to S 6: added to S , or removed else 7: from T remove v i from T 8: end if 9: 10: end for 11: return cut: ( S, V \ S ) , cut value Differences between the double greedy algorithms: 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides if a i ≥ b i then 5: whether it should be add v i to S 6: added to S , or removed else 7: from T remove v i from T 8: end if 9: 10: end for 11: return cut: ( S, V \ S ) , cut value Differences between the double greedy algorithms: D2Greedy → select the first 2 vertices → SG 5 / 19
Double Greedy Taxonomy D eterministic D ouble Greedy (D2Greedy) Require: graph G = ( V, E ) Ensure: cut and the cut value 1: init. 2 solutions S := ∅ , T := V • works on 2 solutions //in random order simultaneously 2: for each vertex v i ∈ V do a i := gain of adding v i to S 3: b i := gain of removing v i from T 4: • for each vertex, decides if a i ≥ b i then 5: whether it should be add v i to S 6: added to S , or removed else 7: from T remove v i from T 8: end if 9: 10: end for 11: return cut: ( S, V \ S ) , cut value Differences between the double greedy algorithms: D2Greedy → select the first 2 vertices → SG SG → sort the candidates → SG3 5 / 19
Backward Greedy – Edge Contraction Algorithm 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) Require: graph G = ( V, E ) Ensure: cut, cut value 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) Require: graph G = ( V, E ) Ensure: cut, cut value 1: repeat 5: until 2 “super" vertices left 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat 5: until 2 “super" vertices left 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat contraction 1 v x y 5: until 2 “super" vertices left 2 3 2+3 = 5 z z 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat find the lightest edge ( x, y ) in G 2: contraction 1 v x y 5: until 2 “super" vertices left 2 3 2+3 = 5 z z 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat find the lightest edge ( x, y ) in G 2: contraction 3: contract x, y to be a super vertex v 1 v x y 5: until 2 “super" vertices left 2 3 2+3 = 5 z z 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat find the lightest edge ( x, y ) in G 2: contraction 3: contract x, y to be a super vertex v 1 set the edge weights connecting v 4: v x y 5: until 2 “super" vertices left 2 3 2+3 = 5 z z 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat find the lightest edge ( x, y ) in G 2: contraction 3: contract x, y to be a super vertex v 1 set the edge weights connecting v 4: v x y 5: until 2 “super" vertices left 6: return the 2 super vertices 2 3 2+3 = 5 z z 6 / 19
Backward Greedy – Edge Contraction Algorithm E dge C ontraction (EC) • contract the lightest edge in Require: graph G = ( V, E ) each step Ensure: cut, cut value 1: repeat find the lightest edge ( x, y ) in G 2: contraction 3: contract x, y to be a super vertex v 1 set the edge weights connecting v 4: v x y 5: until 2 “super" vertices left 6: return the 2 super vertices 2 3 2+3 = 5 z z Backward greedy: EC tries to remove the lightest edge from the cut set in each step 6 / 19
Contents Greedy MaxCut Algorithms Approximation Set Coding (ASC) Applying ASC: Count the Approximation Sets Applying ASC: Experiments and Analysis 6 / 19
Glance of Approximation Set Coding (ASC) How to measure the robustness of these algorithms facing noise? 7 / 19
Glance of Approximation Set Coding (ASC) How to measure the robustness of these algorithms facing noise? • ASC : an analogy to Shannon’s communication theory learning procedure ⇔ communication process [Buhmann 2010] 7 / 19
Recommend
More recommend