Download presentation
Presentation is loading. Please wait.
Published byBruce Nicholson Modified over 8 years ago
1
Approximating The Minimum Equivalent Digraph S. Khuller, B. Raghavachari, and N. Young. 1995 SIAM J. Computing
2
Some Math Knowledge (1) Fourier Coefficients and Series:
3
Some Math Knowledge (2)*
4
Some Math Knowledge (3) Parseval ’ s Theorem: Parseval ’ s Theorem:
6
Some Math Knowledge (4)*
7
The MEG (minimum equivalent graph) problem Input: A directed graph G = (V, E ). Input: A directed graph G = (V, E ). Output: the smallest subset of edges that maintains reachability relations. Output: the smallest subset of edges that maintains reachability relations. BACBAC
8
MEG is NP-hard* Let G = ( V, E ) be a strongly connected digraph and |V | = n. G has a Hamiltonian Cycle |MEG(G )| = n. Let G = ( V, E ) be a strongly connected digraph and |V | = n. G has a Hamiltonian Cycle |MEG(G )| = n. Pf: (<=) a1a1a1a1 a2a2a2a2 akakakak (n – k ) nodes, each has indegree >= 1. (n – k ) nodes, each has indegree >= 1.
9
Variants Acyclic MEG problem: G is an acyclic digraph. polynomial time solvable. Acyclic MEG problem: G is an acyclic digraph. polynomial time solvable. MSCSS (minimum strongly connected spanning subgraph) problem: G is a strongly connected digraph. MSCSS (minimum strongly connected spanning subgraph) problem: G is a strongly connected digraph.
10
Reduce MEG to MSCSS (1) Step1: decompose G into Strongly connected components in polynomial time. AB CD E
11
Reduce MEG to MSCSS (2) Step 2: ∵ acyclic MEG problem is in P. AB CD E AB CD E ∴
12
Reduce MEG to MSCSS (3) Step 3: Solve MSCSS(A), …, MCSS(E). Step 3: Solve MSCSS(A), …, MCSS(E). AB CD E
13
Two Implications 1. MSCSS is NP-hard 2. If MSCSS problem has error ratio k, then MEG problem has error ratio k. Pf: After Step 1, 2, We get AB CD E Let C(A), …, C(E) be the costs of our approximating solutions. Let C*(A), …, C*(E) be costs of the optimal solutions. => C(A) ≤ kC*(A), …, C(E) ≤ kC*(E)
14
C* = C*(A)+ C*(B)+ C*(C) + C*(D)+ C*(E) + 4 C ≤ k ( C*(A)+ C*(B)+ C*(C) + C*(D)+ C*(E) ) + 4 (C / C*) ≤ k (C / C*) ≤ k AB CD E C = C(A)+ C(B)+ C(C) + C(D)+ C(E) + 4 C ≤ kC*(A)+ kC*(B)+ kC*(C) + kC*(D)+ kC*(E) + 4
15
The approximation algorithm for the MSCSS problem CONTRACT-CYCLES k (G ) 1. for i = k, k-1, k-2, …, 2 2. While the graph contains a cycle with at least i edges 3. Contract the cycle. 4. return edges on those contracted cycles.
16
Is this algorithm correct? 1 2 5 3 4 6 7 8 6 7 9
17
1. for i = k, k-1, k-2, …, 2 2. While the graph contains a cycle with at least i edges 3. Contract the cycle. 4. return edges on those contracted cycles. Let G i = the graph after after contracting cycles with ≥ i edges. Let G i = the graph after after contracting cycles with ≥ i edges. Let n i = #vertices remain in the graph after contracting cycles with ≥ i edges. Let n i = #vertices remain in the graph after contracting cycles with ≥ i edges. Let e i = #edges on the contracted cycles with i edges Let e i = #edges on the contracted cycles with i edges Symbol Definitions
18
Error ratio analysis (1)
19
(Contraction Lemma): For any digraph G and set of edges S, C*(G ) ≥ C*(G \S ) Error ratio analysis (2)
20
Error ratio analysis (3)
21
Error ratio analysis (4) Theorem: Contract-Cycles k (G ) returns at most r k C*(G ) edges, where Theorem: Contract-Cycles k (G ) returns at most r k C*(G ) edges, where
22
n i = #vertices remain in the graph after contracting cycles with ≥ i edges. e i = #edges on the contracted cycles with i edges
25
Time Complexity (1) How to find cycles with ≥ k edges ? How to find cycles with ≥ k edges ? Step 1: Find all simple paths P with k-1 edges. edges. Step 2: foreach p P, check whether there is a path from the tail there is a path from the tail of p to the head of p. of p to the head of p.
26
If k is even, there at most m k/2 such paths, where m = #edges: If k is even, there at most m k/2 such paths, where m = #edges: Time Complexity (2)* m k/2
27
Time Complexity (3)* If k is odd, there at most nm (k-1)/2 such paths: If k is odd, there at most nm (k-1)/2 such paths: m (k-1)/2 1n
28
Time Complexity (4) O(m) time to check whether there is a path from the tail of p to the head of p. O(m) time to check whether there is a path from the tail of p to the head of p. O(kn) = O(n) iterations of the while loop. O(kn) = O(n) iterations of the while loop. O(nm 1+ k/2 ), k is even. O(nm 1+ k/2 ), k is even. O(n 2 m (1+k)/2 ), k is odd. O(n 2 m (1+k)/2 ), k is odd. 1. for i = k, k-1, k-2, …, 2 2. While the graph contains a cycle with at least i edges 3. Contract the cycle. 4. return edges on those contracted cycles.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.