Analysis of Algorithms

Slides:



Advertisements
Similar presentations
Bellman-Ford algorithm
Advertisements

Introduction to Algorithms 6.046J/18.401J/SMA5503
Min Cost Flow: Polynomial Algorithms. Overview Recap: Min Cost Flow, Residual Network Potential and Reduced Cost Polynomial Algorithms Approach Capacity.
Single Source Shortest Paths
The max flow problem
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Tirgul 13. Unweighted Graphs Wishful Thinking – you decide to go to work on your sun-tan in ‘ Hatzuk ’ beach in Tel-Aviv. Therefore, you take your swimming.
Lecture 11 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Trees.
Greedy Algorithms General principle of greedy algorithm
Shortest Paths.
Minimum Spanning Trees
Chapter 22 Elementary Graph Algorithms
CSC317 Shortest path algorithms
Single-Source Shortest Paths
Binomial heaps, Fibonacci heaps, and applications
C.Eng 213 Data Structures Graphs Fall Section 3.
Algorithm Design and Analysis
Lectures on Network Flows
Algorithms and Data Structures Lecture XIII
Shortest Path Problems
Shortest Path Problems
CS330 Discussion 6.
CSE 421: Introduction to Algorithms
Lecture 10 Algorithm Analysis
Minimum Spanning Trees
ICS 353: Design and Analysis of Algorithms
Instructor: Shengyu Zhang
Analysis of Algorithms
Advanced Algorithms Analysis and Design
SINGLE-SOURCE SHORTEST PATHS
Shortest Paths C B A E D F Shortest Paths
Shortest Paths.
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
Analysis and design of algorithm
Advanced Algorithms Analysis and Design
Analysis of Algorithms
Algorithms and Data Structures Lecture XIII
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Autumn 2015 Lecture 10 Minimum Spanning Trees
Shortest Path Problems
CSE 421: Introduction to Algorithms
Lecture 13 Algorithm Analysis
Advanced Algorithms Analysis and Design
Lecture 13 Algorithm Analysis
Fundamental Data Structures and Algorithms
Algorithms (2IL15) – Lecture 7
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
EE5900 Advanced Embedded System For Smart Infrastructure
Greedy Algorithms Comp 122, Spring 2004.
Shortest Path Problems
Text Book: Introduction to algorithms By C L R S
Autumn 2016 Lecture 10 Minimum Spanning Trees
Shortest Path Problems
Chapter 16 1 – Graphs Graph Categories Strong Components
Shortest Paths.
CSE 417: Algorithms and Computational Complexity
Binomial heaps, Fibonacci heaps, and applications
Answering distance queries in directed graphs using fast matrix multiplication Raphael Yuster Haifa University Uri Zwick Tel Aviv University.
Negative-Weight edges:
Richard Anderson Lecture 5 Graph Theory
Winter 2019 Lecture 10 Minimum Spanning Trees
Chapter 24: Single-Source Shortest-Path
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Analysis of Algorithms
Premaster Course Algorithms 1 Chapter 6: Shortest Paths
Presentation transcript:

Analysis of Algorithms Shortest Paths - Finding Negative Cycles Uri Zwick Tel Aviv University November 2015 Last modified: December 5, 2017

Single Source Shortest Paths Non-negative edge weights 𝑂(𝑚+𝑛 log 𝑛 ) [Dijkstra (1959)] [Fredman-Tarjan (1987)] Undirected positively weighted graphs (word-RAM model) 𝑂(𝑚+𝑛) [Thorup (1999)] Positive and negative edge weights 𝑂(𝑚𝑛) [Bellman (1956)] [Ford-Fulkerson (1962)] Positive and negative integer edge weights 𝑂(𝑚 𝑛 log 𝑁 ) [Goldberg (1995)] All edge weights are integral and ≥−𝑁. (𝑁≥2.)

Potentials and modified weights A function 𝑝:𝑉→ℝ is called a potential function. If 𝑤:𝐸→ℝ is a weight (length) function, then the modified weight function 𝑤 𝑝 :𝐸→ℝ is defined as follows: 𝑤 𝑝 𝑢,𝑣 =𝑤 𝑢,𝑣 +𝑝 𝑢 −𝑝(𝑣) , 𝑢,𝑣 ∈𝐸 Lemma: (i) If 𝑃 is a path from 𝑢 to 𝑣, then 𝑤 𝑝 𝑃 =𝑤 𝑃 +𝑝 𝑢 −𝑝(𝑣). (ii) If 𝐶 is a directed cycle, then 𝑤 𝑝 𝐶 =𝑤(𝐶). Corollary: Shortest paths with respect to 𝑤 𝑝 are also shortest paths with respect to 𝑤.

Potentials and negative cycles Theorem: A digraph 𝐺= 𝑉,𝐸,𝑤 has no negative cycles if and only if there is a potential function 𝑝 such that 𝑤 𝑝 𝑢,𝑣 =𝑤 𝑢,𝑣 +𝑝 𝑢 −𝑝(𝑣)≥0, for every 𝑢,𝑣 ∈𝐸. If there is such an admissible potential function, then by part (ii) of the previous lemma, there are no negative cycles. Suppose that there are no negative cycles. Add a vertex 𝑠 and an edge (𝑠,𝑣) of weight 0 for each 𝑣∈𝑉. As there are still no negative cycles, distances from 𝑠 are well-defined and satisfy the triangle inequality. Let 𝑝 𝑣 =𝛿 𝑠,𝑣 = distance from 𝑠 to 𝑣. 𝛿 𝑠,𝑣 ≤𝛿 𝑠,𝑢 +𝑤(𝑢,𝑣) , 𝑢,𝑣 ∈𝐸 𝑤 𝑝 𝑢,𝑣 =𝑤 𝑢,𝑣 +𝛿 𝑠,𝑢 −𝛿 𝑠,𝑣 ≥0 , 𝑢,𝑣 ∈𝐸

Scaling We want to solve a problem with a given integer weight function 𝑤:𝐸→ℤ Define a ‘coarser’ integer weight function 𝑤 ′ :𝐸→ℤ 𝑤 ′ 𝑒 = 𝑤(𝑒) 2 , 𝑒∈𝐸. Solve the problem (recursively) with respect to 𝑤′. Convert the solution for 𝑤′ into a solution for 𝑤.

Scaling and negative cycles Given a digraph 𝐺= 𝑉,𝐸,𝑤 , where 𝑤:𝐸→ℤ, find a negative cycle, or find a potential function 𝑝 such that 𝑤 𝑝 𝑒 ≥0, for every 𝑒∈𝐸. Let 𝑤 ′ 𝑒 = 𝑤(𝑒) 2 , 𝑒∈𝐸. A negative cycle with respect to 𝑤′ is also a negative cycle with respect to 𝑤. Otherwise, let 𝑝 ′ :𝑉→ℤ be such that 𝑤 𝑝 ′ ′ 𝑒 ≥0, 𝑒∈𝐸. Let 𝑝 𝑢 =2𝑝′(𝑢) , 𝑢∈𝑉. 𝑤 𝑝 𝑢,𝑣 =𝑤 𝑢,𝑣 +𝑝 𝑢 −𝑝 𝑣 ≥ 2 𝑤 ′ 𝑢,𝑣 −1 +2 𝑝 ′ 𝑢 −2 𝑝 ′ 𝑣 ≥−1 We thus only need to consider the case 𝑤 𝑒 ≥−1 , 𝑒∈𝐸.

Goldberg’s algorithm Let 𝐺= 𝑉,𝐸,𝑤 , where 𝑤:𝐸→{−1,0,1,…}. If a strongly connected component of 𝐺 − contains a negative edge, then a negative cycle in 𝐺 is easily found. Otherwise, contract each strongly connected component of 𝐺 − . The contracted graph is acyclic. Add a source vertex 𝑠 to 𝐺 − and connect it with 0-edges to all vertices of 𝐺 − . Compute the distances 𝛿 − 𝑠,𝑣 , for all 𝑣∈𝑉. Can be done in 𝑂 𝑚 time as 𝐺 − is acyclic. Let 𝐿 𝑖 = 𝑣∈𝑉 𝛿 − 𝑠,𝑣 =−𝑖}.

𝑤 𝑢,𝑣 =−1 , 𝑢∈ 𝐿 𝑖 , 𝑣∈ 𝐿 𝑗 ⟹ 𝑖<𝑗 Goldberg’s algorithm Layers: 𝐿 𝑖 = 𝑣∈𝑉 𝛿 − 𝑠,𝑣 =−𝑖}. 𝑤 𝑢,𝑣 =0 , 𝑢∈ 𝐿 𝑖 , 𝑣∈ 𝐿 𝑗 ⟹ 𝑖≤𝑗 𝑤 𝑢,𝑣 =−1 , 𝑢∈ 𝐿 𝑖 , 𝑣∈ 𝐿 𝑗 ⟹ 𝑖<𝑗 s −1 2 𝐿 0 𝐿 1 𝐿 2 𝐿 𝑟

≈ Dilworth’s theorem ≈ 𝐿 0 𝐿 1 𝐿 2 𝐿 𝑟 Let 𝑟 be the index of the last layer. Let 𝑘 be the number of negative vertices, i.e., vertices with an incoming negative edge. If 𝑟≤ 𝑘 , there is a layer 𝐿 𝑖 with at least 𝑘 negative vertices. If 𝑟> 𝑘 , there is a path with at least 𝑘 negative vertices. s −1 𝐿 0 𝐿 1 𝐿 2 𝐿 𝑟

−1 A layer with negative vertices 𝐿 0 𝐿 1 𝐿 𝑖 𝐿 𝑟 Suppose that 𝐿 𝑖 contains many (at least 𝑘 ) negative vertices. Assign the vertices of 𝐿 0 ∪ 𝐿 1 ∪…∪ 𝐿 𝑖−1 a potential of 0. Assign the vertices of 𝐿 𝑖 ∪ 𝐿 𝑖+1 ∪…∪ 𝐿 𝑟 a potential of −1. Vertices of 𝐿 𝑖 are no longer negative. No negative vertices introduced. There are new 0 edges. Need to recompute 𝐺 − . s −1 −1 1 𝐿 0 𝐿 1 𝐿 𝑖 𝐿 𝑟

A path with negative vertices 1 2 𝑅 3 −1 −1 −1 𝑣 1 𝑣 2 𝑣 3 Let 𝑅 3 be the set of vertices reachable from 𝑣 3 by 0 and −1 edges. (As 𝐺 − is acyclic, 𝑣 3 is the only vertex on the path in 𝑅 3 .) (We cannot reach −1 edges if the path is ‘maximal’.) Decrease the potential of all vertices in 𝑅 3 by 1. 𝑣 3 is no longer negative. No new negative vertices. But, there are new 0 edges.

A path with negative vertices 𝑅 1 𝑅 3 1 𝑅 2 −1 −1 𝑣 1 𝑣 2 𝑣 3 Let 𝑅 2 be the set of vertices reachable from 𝑣 2 by 0 and −1 edges. If 𝑅 2 contains a vertex preceding 𝑣 2 on the path  negative cycle. Decrease the potential of all vertices in 𝑅 2 by 1. (Vertices in 𝑅 3 have their potential decreased by 2.)

A path with negative vertices Let 𝑣 1 , 𝑣 2 ,…, 𝑣 𝑟 be the negative vertices on the path. For 𝑖=𝑟,𝑟−1,…,1 do: Let 𝑅 𝑖 be the vertices reachable from 𝑣 𝑖 by 0 and −1 edges. If 𝑅 𝑖 contains a vertex preceding 𝑣 𝑖 on the path, or if a path to 𝑣 𝑖 containing at least one −1 edge is discovered  negative cycle. Decrease the potential of all the vertices in 𝑅 𝑖 by 1. (This may create new 0 edges emanating from vertices of 𝑅 𝑖 .) Claim: If no negative cycles are discovered, then: (i) 𝑣 1 , 𝑣 2 ,…, 𝑣 𝑟 are no longer negative. (ii) No new negative vertices introduced. (iii) No edge weight drops below −1. Exercise 1: Prove the above claim. Exercise 2: Implement the process above in 𝑂 𝑚 time. (We will essentially solve these exercise below. Try to do it directly.)

A path with negative vertices A clever way of implementing the previous process. Let 𝑤 + 𝑢,𝑣 = max 0,𝑤(𝑢,𝑣) . Add a source vertex 𝑠, and edges (𝑠,𝑣), for every 𝑣∈𝑉. Let 𝑤 + 𝑠, 𝑣 𝑖 =𝑟−𝑖, for 1≤𝑖≤𝑟. Let 𝑤 + 𝑠,𝑣 =𝑟, for 𝑣∈𝑉∖ 𝑣 1 , 𝑣 2 ,…, 𝑣 𝑟 . Compute the distances 𝛿 + 𝑣 = 𝛿 + (𝑠,𝑣) from 𝑠 with respect to 𝑤 + . Can be done in 𝑂(𝑚+𝑛) time using Dial’s algorithm. Let 𝑝 𝑣 = 𝛿 + (𝑣) , 𝑣∈𝑉. If the graph contains no negative cycles then: (i) 𝑣 1 , 𝑣 2 ,…, 𝑣 𝑟 are no longer negative. (ii) No new negative vertices introduced. (iii) No edge weight drops below −1.

A path with negative vertices 𝑠 𝑟−1 𝑟−2 𝑟−𝑖 𝑟 −1 −1 −1 −1 𝑣 1 𝑣 2 𝑟 𝑣 𝑖 𝑣 𝑟 (ii) 𝑤 𝑢,𝑣 ≥0 ⟹ 𝑤 + 𝑢,𝑣 =𝑤(𝑢,𝑣) 𝛿 + 𝑣 ≤ 𝛿 + 𝑢 +𝑤(𝑢,𝑣) 𝑤 𝑝 𝑢,𝑣 ≥0 (iii) 𝑤 𝑢,𝑣 =−1 ⟹ 𝑤 + 𝑢,𝑣 =0 𝛿 + 𝑣 ≤ 𝛿 + 𝑢 𝑤 𝑝 𝑢,𝑣 ≥−1

A path with negative vertices 𝑠 𝑟−1 𝑟−𝑖 𝑟−𝑗 −1 −1 −1 −1 𝑣 1 −1 𝑣 𝑖 𝑣 𝑗 𝑣 𝑟 𝐶 𝑢 𝑃 Suppose that 𝑤 𝑢, 𝑣 𝑖 =−1. If 𝛿 + 𝑢 > 𝛿 + ( 𝑣 𝑖 ), then 𝑤 𝑝 𝑢, 𝑣 𝑖 =𝑤 𝑢, 𝑣 𝑖 + 𝛿 + 𝑢 − 𝛿 + 𝑣 𝑖 ≥0. Otherwise, 𝛿 + 𝑢 ≤ 𝛿 + 𝑣 𝑖 ≤𝑟−𝑖. A shortest path from 𝑠 to 𝑢 starts with (𝑠, 𝑣 𝑗 ), where 𝑗≥𝑖, and then a path 𝑃 from 𝑣 𝑗 to 𝑢. By the triangle inequality, 𝑤 𝑃 ≤ 𝑤 + 𝑃 =𝛿 + ( 𝑣 𝑗 ,𝑢)≤𝑗−𝑖. Let 𝑄 be the portion of the path from 𝑣 𝑖 to 𝑣 𝑗 . Clearly 𝑤 𝑄 =𝑖−𝑗. 𝑄,𝑃,(𝑢, 𝑣 𝑖 ) is a negative cycle. 𝑤 𝐶 ≤ 𝑗−𝑖 + 𝑖−𝑗 −1≤−1.

… Dial’s algorithm [Dial (1969)] Let 𝐺=(𝑉,𝐸,𝑤), where 𝑤:𝐸→ ℤ + . Let 𝑠∈𝑉. Let 𝐷= max 𝑣∈𝑉 𝛿 𝑤 (𝑠,𝑣) be the maximum distance from 𝑠. The SSSP from 𝑠 can be solved in 𝑂(𝑚+𝐷) time. Use a bucket-based priority queue to implement Dijkstra. The priority queue used by Dijkstra is monotone. (Keys of extracted items cannot decrease.) … 1 𝐷 ≥𝐷

Complexity of Goldberg’s algorithm Number of recursive calls is log 𝑁 . After each recursive call, we adjust the potential, or find a negative cycle, by the process above. If there are 𝑘 negative vertices, we get rid of 𝑘 of them, without creating new ones, in 𝑂(𝑚) time. How many such iterations, 𝑘→𝑘− 𝑘 , do we need? If 𝑘≤ 1 4 𝐴 2 , then 𝑘− 𝑘 < 1 4 𝐴−1 2 . (𝑘− 𝑘 is increasing.) As 𝑘 0 ≤𝑛≤ 1 4 4𝑛 2 , number of iterations is at most 4𝑛 . Thus, the total runtime is 𝑂(𝑚 𝑛 log 𝑁 ).