Presentation is loading. Please wait.

Presentation is loading. Please wait.

Minimum Weight Cycle Liam Roditty Bar-Ilan University Based on: Approximating the girth, (SODA`11) with Roei Tov (BIU) Minimum Weight Cycles and Triangles:

Similar presentations


Presentation on theme: "Minimum Weight Cycle Liam Roditty Bar-Ilan University Based on: Approximating the girth, (SODA`11) with Roei Tov (BIU) Minimum Weight Cycles and Triangles:"— Presentation transcript:

1 Minimum Weight Cycle Liam Roditty Bar-Ilan University Based on: Approximating the girth, (SODA`11) with Roei Tov (BIU) Minimum Weight Cycles and Triangles: Equivalences and Algorithms, with Virginia V. Williams (UC Berkeley)

2 Problem Definition Given a graph G=(V,E) find the Minimum Weight Cycle (Min-Cycle) in the graph. Variants: Undirected / Directed Unweighted / Weighted Exact / Approximation With or without Fast Matrix Multiplication (FMM)

3 The Trivial Algorithm Directed graphs: – Compute All-Pairs of Shortest Paths (APSP). – Min-Cycle = min (u,v)  E d[v,u] + w(u,v) vu

4 The Trivial Algorithm Undirected graphs: – Dijkstra/BFS from every vertex of the graph – Pick the minimum cycle detected Example (unweighted): vu s In both cases the running time is Õ(n³).

5 Previous Work (1) Itai & Rodeh (SICOMP 1978) considered only unweighted graphs: Min-Cycle in undirected graphs in O(n ω ) time. Min-Cycle in directed graphs in O(n ω log n) time. Approximation in undirected graphs in O(n²) time. – Return a min-cycle or a cycle whose length is larger by one from the minimum.

6 Previous Work (2) Yuster & Zwick (SIDMA 1997) presented an algorithm that finds the shortest even cycle in unweighted undirected graphs in O(n²) time.

7 Previous Work (3) Lingas & Lundell (IPL 2009) presented two approximation algorithms for undirected graphs: For unweighted graphs an Õ(n 3/2 ) algorithm that returns a 2.666…-approximation. For weighted graphs with integral edge weights [1,M] an O(n² log n log nM) algorithm that returns a 2-approximation.

8 Previous Work (4) V. Williams & Williams (FOCS 2010) showed that if a Min-Cycle in an undirected graph with weights [1,M] can be found in O(n 3-δ log M) for some δ>0 then it is possible to compute APSP in a directed graph with weights [-M,M] in O(n 3-δ’ log M) for some δ’>0.

9 Results (SODA'11) For undirected graphs with weights from [1,M] a 4/3-approximation algorithm with a running time of O(n² log n log nM). For undirected graphs with real edge weights a (4/3+ε)-approximation with a running time of Õ(1/ε n²). An algorithm with (4/3-ε)-approximation can multiply two Boolean matrices. (Using V.W & W ideas).

10 “A related problem is finding a minimum weighted circuit in a weighted graph. It is unclear to us whether our methods can be modified to answer this problem too.” SICOMP 1978 New Results For undirected and directed graphs with weights from [1,M] we show that the Min-Cycle problem can be efficiently reduced to finding a minimum weight triangle in graphs with weights [1,Θ(M)]. This implies an Õ(Mn ω ) algorithm for Min-Cycle problem both in undirected and directed graphs. We resolve the open problem raised by Itai & Rodeh:

11 New Results Notice! APSP in directed graphs can be computed in O(M n ) time (Zwick JACM`02). APSP in undirected graphs can be computed in Õ(Mn ω ) time (Shoshan & Zwick FOCS`99). We show that Min-Cycle in directed graphs can be solved in Õ(Mn ω ) time!

12 In this talk For undirected graphs with weights from [1,M] a 4/3-approximation algorithm with a running time of O(n² log n log nM) (SODA’11) For undirected graphs with weights from [1,M] we show that the Min-Cycle problem can be efficiently reduced to finding a minimum weight triangle in graph with weights [1,Θ(M)]. (New result)

13 Itai & Rodeh’s Additive 1- Approximataion s xyz The trivial algorithm: All edges of x are scanned in an arbitrary order. and in particular (x,y). A Min-Cycle is detected. Running time: O(m). We repeat it from every vertex. Total running time is O(mn). w Unweighted undirected.

14 Itai & Rodeh’s Additive 1- Approximataion s xyz Itai & Rodeh: Stop with the first cycle discovered. Running time O(n²). Assume x is out from the queue after z and before y. w Lucky scan (x,y) and stop. Output: Min-Cycle Unlucky scan (x,w) and stop. Output: Min-Cycle+1 Unweighted undirected.

15 Lingas & Lundell 2-Approximataion s xyz The same approach as IR with Dijkstra instead of BFS will not work. Lingas & Lundell: Run Dijkstra with a bounding parameter t, that is, grow a shortest paths tree up to depth t and report the first cycle detected. w Weighted [1,M] undirected

16 Dijkstra(G,s) Q←{s} While Q is not empty do u ← Extract-Min(Q) Relax(u) Reminder: Dijkstra’s algorithm Weighted [1,M] undirected. Relax(u) foreach (u,v)  E if d[s,v]>d[s,u]+w(u,v) d[s,v] ← d[s,u]+w(u,v)

17 Bounded Dijkstra(G,s,t) Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,t) Lingas & Lundell 2-Approximataion Weighted [1,M] undirected. Controlled-Relax(u,t) (u,v) ← Extract-Min(Q u ) While d[u]+w(u,v) ≤ t do RelaxOrStop(u,v) (u,v) ← Extract-Min(Q u ) RelaxOrStop(u,v) if d[v]   then Repot a cycle and stop else Relax(u,v) s u 1 3 X1X1 X2X2 X3X3 d[X 1 ] =  d[X 2 ] =92 4 d[X 3 ] =70 50 d[X 1 ] = 51 STOP: Min-Cycle≤145 t=100

18 Lingas & Lundell 2-Approximataion Weighted [1,M] undirected. s 50 1 ? t=100 Bounded Dijkstra with t=100 might find the red cycle and not the blue one.

19 Lingas & Lundell 2-Approximataion Weighted [1,M] undirected. The algorithm: Binary search the interval [1,nM] for the smallest value of t for which Bounded Dijkstra reports a cycle. t * =Min-Cycle Always reports ½t * May report Taking the smallest value of t for which a cycle is reported ensures that t≤t * and a 2-approximation. Running time: O(n² log n (log n+log M))

20 Our 4/3-Approximataion Weighted [1,M] undirected. Let Min-Cycle=t * and Max-Edge(Min-Cycle)=w *. Let t  t *. We present two algorithms: Alg1: Reports a cycle of weight at most t * + w *. Alg2: Given w l and w u such that w *  [ w l, w u ] reports a cycle of weight at most max{2t * - 2w l, t * + w u - w l }. Notice! max{2t * - 2w l, t * + w u - w l } is 2t * - 2w l as long as w u ≤ t * - w l w*w* Alg 1 t * + w * ≤1⅓t * w*w* Alg 2 [ ⅓ t *, ⅔t * ] 2t * - 2w * ≤1⅓t * t*t* ⅓t*⅓t* ⅔t*⅔t* w*w* Alg 2 [ ⅔t *, t * ] t * + t * - ⅔t * ≤1⅓t *

21 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Middle Edge Lemma: Let C={v 1,v 2,…v ℓ } be a cycle of weight t and let s  C. Then there exists an edge (v i,v i+1 ) such that: s vivi v i+1 d[s,v i ]≤ ½ t d[s,v i+1 ]≤ ½ t

22 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. For a given s there is a mid point in on the cycle s =t*/2

23 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. s t*/2= =t*/2 For a given s there is a mid point in on the cycle

24 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. The edge (v i,v i+1 ) is the middle edge. s vivi v i+1 We have: 1. d C [s,v i ] ≤ ½ t 2. d C [v i+1,s] ≤ ½ t 1. d[s,v i ] ≤ ½ t 2. d[s,v i+1 ] ≤½ t

25 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. And now, the algorithm! Approx-Min-Cycle(G,s,t) R ←ф Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,½t) Let (u,v) be the smallest edge of u that was not relaxed R←{(u,v)} While R is not empty do (u,v) ← Extract-Min(R) RelaxOrStop(u,v) (u,v) ← Extract-Min(Q u ) R← R  {(u,v)} Phase 1 Phase 2

26 Approx-Min-Cycle(G,s,t) R ←ф Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,½t) Let (u,v) be the smallest edge of u that was not relaxed R← R  {(u,v)} … Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Phase 1: Bounded Dijkstra(G,s,t) Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,t) s ½t u0u0 v0v0 w u1u1 u2u2 v1v1 v2v2 R = {(u 0,v 0 ), (u 1,v 1 ), (u 2,v 2 ) } R = {(u 0,v 0 )}

27 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Phase 2: Approx-Min-Cycle(G,s,t) … While R is not empty do (u,v) ← Extract-Min(R) RelaxOrStop(u,v) (u,v) ← Extract-Min(Q u ) R← R  {(u,v)} s ½t½t u0u0 v0v0 w u1u1 u2u2 v1v1 v2v2 R = {(u 0,v 0 ), (u 1,v 1 ), (u 2,v 2 ) } R = {(u 0,v 0 ), (u 1,v 2 ), (u 2,v 2 ) } R = {(u 0,v 0 ), (u 1,v 2 ) } R = {(u 0,v 0 )}

28 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. We need to prove that: We report a cycle of weight t * +w * (Weight bound). The running time from a given vertex is Õ(n) (Running time). A bound on the weight: Approx-Min-Cycle(G,s,t) R ←ф Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,½t) (1) R←{(u,v)} Phase 1: … While R is not empty do (u,v) ← Extract-Min(R) RelaxOrStop(u,v)(2) (u,v) ← Extract-Min(Q u ) R←{(u,v)} Phase 2: A cycle can be reported either in line (1) or (2). Easy case (line 1): We stopped in line (1). The weight of the reported cycle is at most t. Hard case (line 2): Next slide.

29 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Hard case (line 2): If we stopped at phase 2 before the middle edge (v i,v i+1 ) of s got out then any edge (x,y) that was popped out from R satisfies: d[s,x]+w(x,y) ≤ min {d[s,v i ]+w *,d[s,v i+1 ]+w * } In particular, if we stopped with the edge (h,g) then: d[s,h]+w(h,g)+d[s,g] ≤ 2 min {d[s,v i ]+w *,d[s,v i+1 ]+w * } ≤ d[s,v i ]+2w * +d[s,v i+1 ] ≤ t * +w * s vivi v i+1 ½t*  ≤½t* ≤w * s h g Phase 1

30 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Running time: The first time that a vertex beyond the ½t threshold is added to R for the second time we stop and report a cycle. Hence, we can charge any edge of R to its endpoint beyond the ½t threshold and the running time is Õ(n). R = {(u 0,v 0 ), (u 1,v 1 ), (u 2,v 2 ) } s ½t½t u0u0 v0v0 w u1u1 u2u2 v1v1 v2v2

31 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Summary: We have shown that given t  t* in Õ(n²) time it is possible to return a cycle of weight t* + w* This algorithm is a natural generalization of the additive 1-approximation of Itai and Rodeh for unweighted graphs. Recall that this is just one ingredient of our algorithm.

32 Our 4/3-Approximataion: Alg2 ( max{2t * - 2w l, t * + w u - w l } ). Weighted [1,M] undirected. Approx-Min-Cycle(G,s,t,w l,w u ) d[s] = 0 Controlled-Relax(s,w u ) While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,t-w l ) Sketch: Analysis: More complicated. Some intuition: when a cycle is reported it is because we reach some vertex u twice. The bound is either 2t * - 2w l or t * + w u - w l. s=v i v i+1 =w * w *  [w l,w u ]

33 In this talk For undirected graphs with weights from [1,M] a 4/3-approximation algorithm with a running time of O(n² log n log nM). (SODA’11) For undirected graphs with weights from [1,M] we show that the Min-Cycle problem can be efficiently reduced to finding a minimum weight triangle in graph with weights [1,Θ(M)]. (New result)

34 Weighted [1,M] undirected. Theorem: Given an undirected graph G with weights [1,M] there is an O(n² log n log nM) time algorithm that either find a Min-Cycle in G or compute log n graphs: G’ 1, G’ 2,G’ 3,... G’ log n With Θ(n) nodes and edge weights [1,O(M)] such that: The minimum weight triangle among all G’ i graphs has the same weight as the Min-Cycle of G. Min-Cycle to Min-Triangle

35 Simple (and important) observation: Assume that we run just the first phase of Alg1 (t * +w * ) for a given t. We either compute all distances of length at most ½t from s or report a cycle of weight at most t. Weighted [1,M] undirected. Min-Cycle to Min-Triangle Approx-Min-Cycle(G,s,t) R ←ф Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,½t) Let (u,v) be the smallest edge of u that was not relaxed R←{(u,v)} While R is not empty do (u,v) ← Extract-Min(R) RelaxOrStop(u,v) (u,v) ← Extract-Min(Q u ) R←{(u,v)} Approx-Min-Cycle(G,s,t) Q←{s} While Q is not empty do u ← Extract-Min(Q) Controlled-Relax(u,½t)

36 First stage: Binary search for the first t such that Approx-Min-Cycle(G,2t) does not report on a cycle and Approx-Min-Cycle(G,2t+2) reports. Weighted [1,M] undirected. Min-Cycle to Min-Triangle t+1 Report a cycle ≤2t+2 t No cycle is reported. All distances up to t are computed Need to show: If the Min-Cycle ≤ 2t+1 we can find it.

37 vjvj vivi v i+1 Main Lemma: Let C={v 1,v 2, …,v ℓ } and assume that Approx-Min-Cycle(G,t) does not report a cycle then there are three distinct vertices v i,v i+1, and v j  C such that: d C [v j,v i ]+w(v i,v i+1 )>t and d C [v i+1,v j ]+w(v i,v i+1 )>t Weighted [1,M] undirected. Min-Cycle to Min-Triangle ≤ 2t+1

38 vjvj vivi v i+1 Main Lemma: Let C={v 1,v 2, …,v ℓ } and assume that Approx-Min-Cycle(G,t) does not report a cycle then there are three distinct vertices v i,v i+1, and v j  C such that: d C [v j,v i ]+w(v i,v i+1 )>t and d C [v i+1,v j ]+w(v i,v i+1 )>t Weighted [1,M] undirected. Min-Cycle to Min-Triangle ≤ 2t+1 d C [v j,v i ] ≤ t d C [v i+1,v j ] ≤ t As this is a Min-Cycle d[v j,v i ] = d C [v j,v i ] d [v i+1,v j ]=d C [v i+1,v j ] and we have computed these distances !

39 Create a new graph G’: Weighted [1,M] undirected. Min-Cycle to Min-Triangle vjvj vivi v i+1 v2iv2i v1jv1j v 2 i+1 (V 1,ø) (V 2,E) Distances 

40 There are two problems with G’. We may create a triangle that corresponds to a path rather than a cycle The weights in G’ may be Ω(nM) (not covered in the talk) Weighted [1,M] undirected. Min-Cycle to Min-Triangle

41 Fixing the first problem: The last vertex on the path to z is y. We use color coding (Alon, Yuster and Zwick JACM`95 ). We use two colors. Weighted [1,M] undirected. Min-Cycle to Min-Triangle x1x1 y2y2 z2z2 y (V 1,ø) (V 2,E) Distances  We add an edge (x 1,z 2 ) only if the last vertex before z is red y cannot be red and blue at the same time! x y z

42 We avoid the bad case and remain with the good case Weighted [1,M] undirected. Min-Cycle to Min-Triangle vjvj vivi v i+1

43 Summary We have settled many variants of a fundamental open problem in algorithmic graph theory. But, what about approximation in directed graphs? Can we get O(n 3-δ ) for some δ>0 and constant approximation? Or maybe we can show a “lower” bound.

44 Thank you!

45 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Proof: Let (v i,v i+1 ) be an edge of C with weight strictly more than ½ t. In this case the claim holds for every vertex using this edge. Thus, we can assume that w*≤ ½ t. s=v 1 vivi v i+1 v2v2 v3v3 1. d C [s,v i ] ≤ ½ t 2. d C [s,v i+1 ]> ½ t We search for two vertices that satisfy: 1. d[s,v i ] ≤ d C [s,v i ] ≤ ½ t 2. d[s,v i+1 ] ≤½ t

46 Our 4/3-Approximataion: Alg1 (t* + w*) Weighted [1,M] undirected. Proof (cont): To complete the proof we need to show that these vertices exist. Assume on the contrary that we have not found two such vertices in the process. s=v 1 vivi v i+1 v2v2 v3v3 This means that: 1. d C [s,v ℓ-1 ] ≤ ½ t 2. d C [s,v ℓ ] ≤ ½ t A contradiction as w* ≤ ½ t vℓvℓ v ℓ-1 > ½ t


Download ppt "Minimum Weight Cycle Liam Roditty Bar-Ilan University Based on: Approximating the girth, (SODA`11) with Roei Tov (BIU) Minimum Weight Cycles and Triangles:"

Similar presentations


Ads by Google