David Wilson – Microsoft Research Uri Zwick – Tel Aviv Univ. A Forward-Backward Single-Source Shortest Paths Algorithm TexPoint fonts used in EMF. Read.

Slides:



Advertisements
Similar presentations
all-pairs shortest paths in undirected graphs
Advertisements

Chapter 9: Graphs Shortest Paths
CSCE 411H Design and Analysis of Algorithms Set 8: Greedy Algorithms Prof. Evdokia Nikolova* Spring 2013 CSCE 411H, Spring 2013: Set 8 1 * Slides adapted.
Greed is good. (Some of the time)
The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions.
Data Structures and Algorithms Graphs Single-Source Shortest Paths (Dijkstra’s Algorithm) PLSD210(ii)
CSE 101- Winter ‘15 Discussion Section January 26th 2015.
Graph Traversals Visit vertices of a graph G to determine some property: Is G connected? Is there a path from vertex a to vertex b? Does G have a cycle?
1 Graphs: Traversal Searching/Traversing a graph = visiting the vertices of a graph by following the edges in a systematic way Example: Given a highway.
CSCI 3160 Design and Analysis of Algorithms Tutorial 2 Chengyu Lin.
1 Greedy 2 Jose Rolim University of Geneva. Algorithmique Greedy 2Jose Rolim2 Examples Greedy  Minimum Spanning Trees  Shortest Paths Dijkstra.
Shortest Paths1 C B A E D F
Tirgul 12 Algorithm for Single-Source-Shortest-Paths (s-s-s-p) Problem Application of s-s-s-p for Solving a System of Difference Constraints.
CPSC 411, Fall 2008: Set 9 1 CPSC 411 Design and Analysis of Algorithms Set 9: More Graph Algorithms Prof. Jennifer Welch Fall 2008.
Lecture 19: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance
Jim Anderson Comp 122, Fall 2003 Single-source SPs - 1 Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph.
1 On Dynamic Shortest Paths Problems Liam Roditty Uri Zwick Tel Aviv University ESA 2004.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the path begins is the source vertex.
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Graph Algorithms: Shortest Path We are given a weighted, directed graph G = (V, E), with weight function w: E R mapping.
CSE 780 Algorithms Advanced Algorithms SSSP Dijkstra’s algorithm SSSP in DAGs.
© 2004 Goodrich, Tamassia Shortest Paths1 Shortest Paths (§ 13.6) Given a weighted graph and two vertices u and v, we want to find a path of minimum total.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
1 Exact and Approximate Distances in Graphs – A Survey Uri Zwick Tel Aviv University.
CS 253: Algorithms Chapter 24 Shortest Paths Credit: Dr. George Bebis.
Shortest Paths1 C B A E D F
Minimum Spanning Trees What is a MST (Minimum Spanning Tree) and how to find it with Prim’s algorithm and Kruskal’s algorithm.
Theory of Computing Lecture 7 MAS 714 Hartmut Klauck.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
Weighted Graphs In a weighted graph, each edge has an associated numerical value, called the weight of the edge Edge weights may represent, distances,
Shortest Path Algorithms. Kruskal’s Algorithm We construct a set of edges A satisfying the following invariant:  A is a subset of some MST We start with.
Jim Anderson Comp 122, Fall 2003 Single-source SPs - 1 Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph.
Week -7-8 Topic - Graph Algorithms CSE – 5311 Prepared by:- Sushruth Puttaswamy Lekhendro Lisham.
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Shortest Paths C B A E D F
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
Algorithm Course Dr. Aref Rashad February Algorithms Course..... Dr. Aref Rashad Part: 6 Shortest Path Algorithms.
All-Pairs Shortest Paths & Essential Subgraph 01/25/2005 Jinil Han.
Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph. Want to compute a shortest path for each possible.
Lecture 16. Shortest Path Algorithms
Shortest Paths and Dijkstra’s Algorithm CS 105. SSSP Slide 2 Single-source shortest paths Given a weighted graph G and a source vertex v in G, determine.
Shortest Path Graph Theory Basics Anil Kishore.
CSE 2331 / 5331 Topic 12: Shortest Path Basics Dijkstra Algorithm Relaxation Bellman-Ford Alg.
Shortest Path Algorithms. Definitions Variants  Single-source shortest-paths problem: Given a graph, finding a shortest path from a given source.
1 Prim’s algorithm. 2 Minimum Spanning Tree Given a weighted undirected graph G, find a tree T that spans all the vertices of G and minimizes the sum.
Analysis of Algorithms Uri Zwick March 2014 Dynamic All-Pairs Shortest-Paths 1 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this.
CSCE 411 Design and Analysis of Algorithms Set 9: More Graph Algorithms Prof. Jennifer Welch Spring 2012 CSCE 411, Spring 2012: Set 9 1.
Dijkstra animation. Dijksta’s Algorithm (Shortest Path Between 2 Nodes) 2 Phases:initialization;iteration Initialization: 1. Included:(Boolean) 2. Distance:(Weight)
Single-Source Shortest Paths (25/24) HW: 25-2 and 25-3 p. 546/24-2 and 24-3 p.615 Given a graph G=(V,E) and w: E   weight of is w(p) =  w(v[i],v[i+1])
Shortest Paths C B A E D F Shortest Paths 1
Yuval Peres Dmitry Sotnikov Benny Sudakov Uri Zwick (武熠)
David Wilson – Microsoft Research Uri Zwick – Tel Aviv Univ.
Selection in heaps and row-sorted matrices
Graphs Lecture 18 CS2110 – Fall 2009.
Shortest Paths C B A E D F Shortest Paths
A simpler implementation and analysis of Chazelle’s
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
Chapter 13 Graph Algorithms
Uri Zwick Tel Aviv University
Analysis of Algorithms
Minimum Spanning Tree.
Algorithms: Design and Analysis
Shortest Paths.
Brad Karp UCL Computer Science
Graph Algorithms: Shortest Path
CSE 417: Algorithms and Computational Complexity
Lecture 14 Minimum Spanning Tree (cont’d)
Chapter 9: Graphs Shortest Paths
Analysis of Algorithms
Presentation transcript:

David Wilson – Microsoft Research Uri Zwick – Tel Aviv Univ. A Forward-Backward Single-Source Shortest Paths Algorithm TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAA “Single-Source Shortest Paths in O(n) time” Deuxièmes journées du GT CoA Complexité et Algorithmes novembre Université Paris Diderot (LIAFA)

Single-Source Shortest Paths in weighted directed graphs with non-negative edge weights Worst case result Dijkstra (1959) m + n log n Arbitrary graph, random U[0,1] edge weights Meyer (2003) Goldberg (2008) Hagerup (2006) m + n

All-Pairs Shortest Paths in weighted directed graphs Worst case results n  Dijkstra mn + n 2 log n Pettie (2004)mn + n 2 log log n Chan (2007)  n 3 / log 2 n

All-Pairs Shortest Paths in randomly weighted complete directed graphs Expected running times (some with high probability) Spira (1973) n 2 log 2 n Bloniarz (1983) n 2 log n log * n Moffat-Takaoka (1987) Mehlhorn-Priebe (1997) n 2 log n First three results hold in the endpoint independent model Peres-Sotnikov- Sudakov-Z (2010) n2n2 Demetrescu-Italiano (2004)

Single-Source Shortest Paths in randomly weighted complete directed graphs with sorted adjacency lists Spira (1973) O(n log 2 n) Bloniarz (1983) O(n log n log * n) Moffat-Takaoka (1987) Mehlhorn-Priebe (1997) O(n log n) Mehlhorn-Priebe (1997)  (n log n) Wilson-Z (2013) O(n)O(n) Using only out-going adjacency lists Using both out-going and in-coming adjacency lists

Endpoint independent model [Spira (1973)] For each vertex v use an arbitrary process to generate n  1 edge weights Randomly permute the n  1 edge weights and assign them to the out-going edges of v

Dijkstra’s algorithm Priority-queue holds vertices When a vertex is “settled”, relax all its out-going edges

Spira’s algorithm [Spira (1973)] Uses sorted out-going adjacency lists Edges are examined one at a time Lazy version of Dijkstra’s algorithm current edge

Spira’s algorithm [Spira (1973)] Priority-queue holds current edges After extracting an edge, examine the next out- going edge Fewer edges examined More extractions from priority queue

Analysis of Spira’s algorithm in the endpoint independent model Suppose that k vertices were found Each edge extracted from PQ has prob. > (n  k)/n of leading to a new vertex Can it be further improved? Sub-linear algorithm

Verification of Shortest Paths Trees Is this a SPT?

Verification of Shortest Paths Trees Is this a SPT?

Could in-coming adjacency lists help?

Distances in a complete graph with independent EXP(1) edge weights [Davis-Prieditis (1993)] [Janson (1999)]

Distances in a complete graph with independent EXP(1) edge weights [Janson (1999)]

Forward-only verification

Pertinent edges out-pertinent edges in-pertinent edges

Forward-backward verification Check only pertinent edges! !

Number of pertinent edges Expected number of pertinent edges is  (n) Probability that number of pertinent edges is more than  (n) is exponentially small

Number of pertinent edges Condition on a SPT and distances

Number of out-pertinent edges Comparison with a Poisson process

Goal: Run Spira’s algorithm on the subgraph composed of pertinent edges Run Spira’s algorithm until median distance M is found Out-pertinent edges are easy to identify How do we identify the in-pertinent edges? Backward scans used to identify in-pertinent edges When an in-pertinent edge is found, a request is issued for its forward scan Forward-backward SSSP algorithm

Adjacency lists Out[u] out-pertinentin-pertinent Req[u] in-pertinent In[v] in-pertinent v v u

Identifying in-pertinent edges

( (u,v) is an in-pertinent edge ) Append (u,v) to Req[u] If u has no current edge, the request is urgent, and (u,v) is immediately inserted into P

Identifying in-pertinent edges

… Bucket-based priority queues

Two-level Bucket-based priority queues If a bucket contains k items when it becomes active, split it into k sub-buckets Store the items in each sub-bucket in a binary heap Probability of more than  (n) time is

Open problems More edge weight distributions? (We already have some extensions) End-point independent model? n+o(m) for arbitrary graphs with random edge weights? Could the new forward-backward algorithm be useful in practical applications?