Approximation Algorithms Pasi Fränti 17.10.2013 Approximation algorithms • Optimal algorithm too slow • Heuristic algorithm too uncertain • Provide result with guarantee: f OPT f f OPT f result of approximation algorithm fOPT result of optimalalgorithm Bin packing problem • Consider a set of bins (capacity 1) and a set of items xi of size wi[0,1]. • GOAL: pack the items into as few bins as possible • Finding the optimal solution is a NP-hard problem (exponential time) Bin packing example Greedy algorithm Items: [0.4, 0.7, 0.5, 0.2, 0.9, 0.6] 0.9 1.0 0.4 w i 0.9 0.9 0.7 f OPT f 2 wi 0.6 f f OPT 2 wi wi wi f f OPT f OPT w w i i 1 Traveling Salesman Problem • ASSUMPTION: All pairwise distances exist and they obey triangular inequality: w(a,c) ≤ w(a,b)+w(b,c) • GOAL: find the shortest possible route that visits each city once and returns to the origin city • Finding optimal route is slow (NP-hard) Approximation algorithm TSP-appro(V, E) T MST(V, E); R WALK-OF-TREE(T); //depth-first A-B-C-B-H-B-A-D-E-F-E-G-E-D-A S SHORTCUTS(R); // skip redundant A-B-C-H-D-E-F-G-A C A D B F H E G Algorithm example Graph with N=8 nodes A D E B F C H G Algorithm example Minimum spanning tree 2 A 11.9 D 2 2 B F 2 C 5 H 2 E 2 G Algorithm example Tree traversal 2 A 23.8 2 2 D 2 2 2 B 2 C F 5 2 5 A-B-C-B-H-B-A-D-E-F-E-G-E-D-A H 2 E 2 2 2 G Algorithm example Shortcuts A 19.1 D 20 2 17 2 B A-B-C-B-H-B-A-D-E-F-E-G-E-D-A 2 F C 5 2 H E 2 G Algorithm example Final result A 19.1 D E B F C A-B-C-H-D-E-F-G-A H G Analysis of error bound 1-approximation algorithm Tree traversal includes all edges twice: f f R 2 f MST Cutting one link from TSP is spanning tree, but not necessarily the minimum: f MST fTSP Tree traversal includes all edges twice: f 2 f MST 2 fTSP fTSP f fTSP fTSP 2 fTSP fTSP 1 1 Christofides algorithm Christofides(V, E) T MST(V, E); Find Euler tour: D FindOddNodes(T); M PerfectMatch(D); H T+M; R EulerTour(H); S SHORTCUTS(R); Christofides example Minimum spanning tree 2 A 11.9 D 2 2 B F 2 C 5 H 2 E 2 G Christofides example Detect the nodes with odd degree A D E B F C H G Christofides example Matching the nodes A D E B F 2 C 5 H 2 G Christofides example Merging MST and the matching A D E B F C H G Christofides example Euler tour A 17.0 2 D 2 2 B 2 C A-B-C-B-H-F-E-G-E-D-A 2 F 5 5 H 2 E 2 2 G Christofides example Shortcuts A 15.5 2 D 2 E 2 B F 2 C A-B-C-B-H-F-E-G-E-D-A 2∙2 5 5 H 2 G Christofides example Shortcuts A D E B F C H G Error bounds for Christofides MST + Matching Christofides produces TSP which is at most 50% longer than the optimum: f 1.5 fOPT Proof: The algorithm combines MST with the minimum-weight perfect matching: f f MST f Match Shortcuts can only shorten the tour. Error bounds for Christofides Links from matching Let v1, v2, …, v2m be the odd nodes of T. Skipping the rest of the nodes in TSP gives path that consists of two matchings: M1 ={(v1, v2), …, (v2m-1, v2m)} M2 ={(v2, v3), …, (v2m, v1)} Due to optimality of matching: 2 f Match f M1 f M 2 fTSP Odd nodes TSP f Match 0.5 fTSP Links complementing tour Links from matching v2 v1 v3 v2m v2m-1 v4 … Error bounds for Christofides 0.5-approximation algorithm Cutting one link from TSP is spanning tree, but not necessarily the minimum: f MST fTSP Combining this with the matching: f f MST f Match fTSP 0.5 fTSP 1.5 fTSP Thus we have: fTSP f fTSP fTSP 1.5 fTSP fTSP 0.5 0.5 Empty space for notes Pseudo polynomial knapsack Input: Weight of N items {w1, w2, ..., wn} Cost of N items {c1, c2, ..., cn} Knapsack limit s Goal: Select for knapsack: {x1,x2,…xn} so that n w c i 1 i i s n c x i 1 i i max! • Problem is NP hard • Pseudo polynomial solution exist • Used for approximation algorithm Pseudo polynomial knapsack Dynamic programming algorithm KNAPSACK (c[1,n], w[1,n], s} RETURNS x[1,n] If same cost prune R {(∅,0)} Include if out weaker solution item fits in FOR i 1 TO n DO FOR (S,c) R DO IF ΣjS wj+wi ≤ s THEN R R∪{(S∪{i},c+ci)} FOR (S,c), (S’,c) R DO IF ΣjS wj ≤ ΣjS’ wj THEN R R\{(S,c)} ELSE R R\{(S’,c)} (S,c) (S,c’)R for which c’ is max! FOR i1 TO n DO IF iS THEN x[i]1 ELSE x[i]0 RETURN x; Pseudo polynomial knapsack Time complexity Sample input: wi={1,1,2,4,12} ci ={1,2,2,10,4} s=15 All combinations: ∅ {1} {2} {1,2} {3} {1,3} {2,3} {1,2,3} … 1 2 3 Time complexity: O(nc) where c = cost of optimal solution …but c O(2 ) n Approximation algorithm Scaling the input Scale down input Original input: c1 c2 c3 cn Modified input: c1 d Solve by DP y1 y2 y3 c2 d c3 d cn d Solve by DP yn wi ={1,1,2,4,12} ci ={1,2,2,10,4} S =15 x1 x2 x3 xn wi ={1,1,2,4,12} ci/d ={1,1,1,5,2} S =15 Approximation algorithm Error bound Optimal for original Optimal for scaled ∙ d/d ci c ci yi ci xi d xi d Truncate ci ci d xi d yi d d z ≥ z-1 ci d 1 yi ci d yi d ci yi dyi c nd =c Σyi≤ n xi optimal for scaled and thus bigger Approximation algorithm nd/c-approximation algorithm Result of algorithm: f ci xi Optimal result: fopt c f opt f f opt c c nd c nd c • Choosing d = ε∙c/n, we can get any ε-approximation • Value c is not known but upper limited: c ≤ n∙cmax • Time complexity: T n nc d n2 n3 Note: 0 1 Empty space for notes Acknowledgements Contributions by Sharon Guardado and Pekka T. Kilpeläinen to TSP example and its proof appreciated.