DAA Approximation Algorithms
DAA Approximation Algorithms
Pasi Fränti
16.9.2020
Approximation algorithms
0.2
0.5
1.0 0.9
0.4 0.7 0.6
w i f OPT f 2 wi
o n
t i
f f OPT 2 wi wi wi im m
a !
o x h
t
f f OPT
w i
1 -
p
a lg
r
p o ri
f OPT w i
1 a
Traveling Salesman Problem
A D
E
B F G
C
H
Algorithm example
Graph with N=8 nodes
A D
B F G
H
Algorithm example
Minimum spanning tree
2
A D
11.9 2
2
E
2 2
B F G
2
5
C
H
Algorithm example
Tree traversal
2
A D
2 2
23.8
2 2 2
E
2 2
2 2
B F G
2
5
2
C
5
H
A-B-C-B-H-B-A-D-E-F-E-G-E-D-A
Algorithm example
Shortcuts
A D
19.1
20 2
2
E
2
17
B F G
2 2
5
H
A-B-C-B-H-B-A-D-E-F-E-G-E-D-A
Algorithm example
Final result
A D
19.1
E
B F G
H
A-B-C-H-D-E-F-G-A
Analysis of error bound
1-approximation algorithm
f 2 f MST 2 fTSP
fTSP f fTSP 2 fTSP
1 1
fTSP f TSP
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 D
11.9 2
2
E
2 2
B F G
2
5
C
H
Christofides example
Detect the nodes with odd degree
A D
B F G
H
Christofides example
Matching the nodes
A D
2
B F G
2
5
C
H
Christofides example
Merging MST and the matching
A D
B F G
H
Christofides example
Euler tour
2
A D
17.0 2
2
E
2 2
2
B F G
2
2 5 5
C
H
A-B-C-B-H-F-E-G-E-D-A
Christofides example
Shortcuts
2
A D
15.5 2∙2
2
E
2
2
B F G
2
5
C
5
H
A-B-C-B-H-F-E-G-E-D-A
Christofides example
Shortcuts
A D
B F G
H
Error bounds for Christofides
MST + 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)} Odd nodes
v4
Links complementing tour v2m-1
Links from matching …
Error bounds for Christofides
0.5-approximation algorithm
Thus we have:
fTSP f fTSP 1.5 fTSP
0 .5 0 .5
fTSP fTSP
Empty space for notes
Pseudo polynomial knapsack
w x i i s c x
i 1
i i max!
i 1
• Problem is NP hard
• Pseudo polynomial solution exist
• Used for approximation algorithm
Pseudo polynomial knapsack
Dynamic programming algorithm
Ne mb
IF ΣjS wj ≤ ΣjS’ wj THEN R R\{(S’,c)}
co
w y
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
Original input: down Modified input:
input
c1 c2 c3 cn c1 c2 c3 cn
d d d d
Solve by DP Solve by DP
y1 y2 y3 yn x1 x2 x3 xn
wi ={1,1,2,4,12} wi ={1,1,2,4,12}
ci ={2,3,3,10,4} [ci/d] ={1,1,1,5,2}
S =15 S =15
Approximation algorithm
Error bound
Optimal Optimal
for original for scaled ∙ d/d
ci
c ci yi ci xi d xi
d
Truncate xi optimal for scaled
ci ci
d xi d yi and thus bigger
d d
z ≥ z-1
ci
d 1 yi ci d yi
d
ci yi dyi c nd
=c Σyi≤
n
Approximation algorithm
nd/c-approximation algorithm
Result of algorithm: f ci xi
Note: 0 1
Empty space for notes
A
1 B
2 C
4 D
3
4 3 1
E F
?
Acknowledgements