D IJKSTRA ' S ALGORITHM By Laksman Veeravagu and Luis Barrera Edited by: Manuela Caicedo, Francisco Morales, Rafael Feliciano, and Carlos Jimenez.

Slides:



Advertisements
Similar presentations
Single Source Shortest Paths
Advertisements

The Greedy Approach Chapter 8. The Greedy Approach It’s a design technique for solving optimization problems Based on finding optimal local solutions.
October 31, Algorithms and Data Structures Lecture XIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
1 Theory I Algorithm Design and Analysis (10 - Shortest paths in graphs) T. Lauer.
CSE 101- Winter ‘15 Discussion Section January 26th 2015.
CSC 331: Algorithm Analysis Paths in Graphs. The DFS algorithm we gave is recursive. DFS generates a search tree showing paths from one vertex to all.
The Shortest Path Problem. Shortest-Path Algorithms Find the “shortest” path from point A to point B “Shortest” in time, distance, cost, … Numerous.
CSCI 3160 Design and Analysis of Algorithms Tutorial 2 Chengyu Lin.
Shortest Paths and Dijkstra's Algorithm CS 110: Data Structures and Algorithms First Semester,
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
Chapter 9 Graph algorithms. Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Shortest Paths Definitions Single Source Algorithms –Bellman Ford –DAG shortest path algorithm –Dijkstra All Pairs Algorithms –Using Single Source Algorithms.
CS 206 Introduction to Computer Science II 11 / 10 / 2008 Instructor: Michael Eckmann.
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.
CSE 780 Algorithms Advanced Algorithms Graph Algorithms Representations BFS.
Graph Algorithms: Shortest Path We are given a weighted, directed graph G = (V, E), with weight function w: E R mapping.
Shortest Paths Definitions Single Source Algorithms
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
All-Pairs Shortest Paths
Dijkstra’s Algorithm Slide Courtesy: Uwash, UT 1.
D IJKSTRA ' S ALGORITHM By Laksman Veeravagu and Luis Barrera.
1 Shortest Path Calculations in Graphs Prof. S. M. Lee Department of Computer Science.
Dijkstra's algorithm.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
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.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms: Minimum.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms Shortest-Path.
CSCI-455/552 Introduction to High Performance Computing Lecture 18.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
1 Shortest Path Problem Topic 11 ITS033 – Programming & Algorithms C B A E D F Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program,
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Dijkstra's algorithm CS3240. The author: Edsger Wybe Dijkstra "Computer Science is no more about computers than astronomy is about telescopes."
Dr. Naveed Ahmad Assistant Professor Department of Computer Science University of Peshawar.
Representing and Using Graphs
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.
Shortest Path in Weighted Graph : Dijkstra’s Algorithm.
D IJKSTRA ' S ALGORITHM. S INGLE -S OURCE S HORTEST P ATH P ROBLEM Single-Source Shortest Path Problem - The problem of finding shortest paths from a.
The single-source shortest path problem (SSSP) input: a graph G = (V, E) with edge weights, and a specific source node s. goal: find a minimum weight (shortest)
CSE 2331 / 5331 Topic 12: Shortest Path Basics Dijkstra Algorithm Relaxation Bellman-Ford Alg.
D IJKSTRA ’ S S INGLE S OURCE S HORTEST P ATH Informatics Department Parahyangan Catholic University.
Shortest Paths CSE 2320 – Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington 1.
Most of contents are provided by the website Graph Essentials TJTSD66: Advanced Topics in Social Media.
Weighted Graphs Computing 2 COMP s1 Sedgewick Part 5: Chapter
1 Introduction to Algorithms L ECTURE 17 (Chap. 24) Shortest paths I 24.2 Single-source shortest paths 24.3 Dijkstra’s algorithm Edsger Wybe Dijkstra
Lecture 13 Algorithm Analysis
Introduction to Algorithms All-Pairs Shortest Paths My T. UF.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
TIRGUL 10 Dijkstra’s algorithm Bellman-Ford Algorithm 1.
CSE 373: Data Structures and Algorithms Lecture 21: Graphs V 1.
Graphs – Part III CS 367 – Introduction to Data Structures.
Shortest Path Dr. Yasir. Weighted Graphs In many applications, each edge of a graph has an associated numerical value, called a weight. Usually, the edge.
By Laksman Veeravagu and Luis Barrera
Network Routing.
Greedy Algorithms / Dijkstra’s Algorithm Yin Tat Lee
Analysis and design of algorithm
CSE 373: Data Structures and Algorithms
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Slide Courtesy: Uwash, UT
Lecture 13 Algorithm Analysis
Shortest Path Algorithm for Weighted Non-negative Undirected Graphs
CE 221 Data Structures and Algorithms
CSE 373 Data Structures and Algorithms
Brad Karp UCL Computer Science
Slide Courtesy: Uwash, UT
Graph Algorithms: Shortest Path
Dijkstra's Shortest Path Algorithm
CE 221 Data Structures and Algorithms
Graphs: Shortest path and mst
Presentation transcript:

D IJKSTRA ' S ALGORITHM By Laksman Veeravagu and Luis Barrera Edited by: Manuela Caicedo, Francisco Morales, Rafael Feliciano, and Carlos Jimenez

N OTE This presentation was downloaded from the internet. Our group edited the following slides: 6 and 7. We also added the slides 18 to 22.

E DSGER W YBE D IJKSTRA "Computer Science is no more about computers than astronomy is about telescopes."

E DSGER W YBE D IJKSTRA - May 11, 1930 – August 6, Received the 1972 A. M. Turing Award, widely considered the most prestigious award in computer science. - The Schlumberger Centennial Chair of Computer Sciences at The University of Texas at Austin from 1984 until Made a strong case against use of the GOTO statement in programming languages and helped lead to its deprecation. - Known for his many essays on programming. -Was one of the most influential members of computing science's founding generation.

S INGLE -S OURCE S HORTEST P ATH P ROBLEM Single-Source Shortest Path Problem - The problem of finding shortest paths from a source vertex v to all other vertices in the graph.

D IJKSTRA ' S ALGORITHM Dijkstra's algorithm - An algorithm for finding the shortest path between two vertices in a graph.algorithmverticesgraph Works on both directed and undirected graphs. However, all edges must have nonnegative weights. A weighted graph associates a label (weight) with every edge in the graph. Weights are usually real numbers. Approach: Greedy Input: Weighted graph G={E,V} and source vertex v ∈ V, such that all edge weights are nonnegative Output: Lengths of shortest paths (or the shortest paths themselves) from a given source vertex v ∈ V to a given vertex or to all other vertices

D IJKSTRA ' S ALGORITHM - P SEUDOCODE 1:function Dijkstra(Graph, source): 2:for each vertex v in Graph:// Initialization 3:dist[v] := infinity// initial distance from source to vertex v is set to infinite 4:previous[v] := undefined// Previous node in optimal path from source 5:dist[source] := 0// Distance from source to source 6:Q := the set of all nodes in Graph// all nodes in the graph are unoptimized - thus are in Q 7:while Q is not empty:// main loop 8:u := node in Q with smallest dist[ ] 9:remove u from Q 10:for each neighbor v of u:// where v has not yet been removed from Q. 11:alt := dist[u] + dist_between(u, v) 12:if alt < dist[v]// Relax (u,v) 13:dist[v] := alt 14:previous[v] := u 15:return previous[ ]

D IJKSTRA A NIMATED E XAMPLE

E XERCISE 1 Find the shortest path to every vertices on this graph

S OLUTION

E XERCISE 2 Find the shortest path from s to t. Hint: It could be more than one

S OLUTION Path 1 is in Blue and Path 2 is in red.

D IJKSTRA A NIMATED E XAMPLE Here you can find a flash application with an example of this algorithm server.sce.carleton.ca/POAnimations2007/DijkstrasAlgo.htm l

IMPLEMENTATIONS AND RUNNING TIMES The simplest implementation is to store vertices in an array or linked list. This will produce a running time of O(|V|^2 + |E|) For sparse graphs, or graphs with very few edges and many nodes, it can be implemented more efficiently storing the graph in an adjacency list using a binary heap or priority queue. This will produce a running time of O((|E|+|V|) log |V|)

D IJKSTRA ' S A LGORITHM - W HY I T W ORKS As with all greedy algorithms, we need to make sure that it is a correct algorithm (e.g., it always returns the right solution if it is given correct input). A formal proof would take longer than this presentation, but we can understand how the argument works intuitively. If you can’t sleep unless you see a proof, see the second reference or ask us where you can find it.

To understand how it works, we’ll go over the previous example again. However, we need two mathematical results first: Lemma 1 : Triangle inequality If δ(u,v) is the shortest path length between u and v, δ(u,v) ≤ δ(u,x) + δ(x,v) Lemma 2 : The subpath of any shortest path is itself a shortest path. The key is to understand why we can claim that anytime we put a new vertex in S, we can say that we already know the shortest path to it. Now, back to the example… D IJKSTRA ' S A LGORITHM - W HY I T W ORKS

As mentioned, Dijkstra’s algorithm calculates the shortest path to every vertex. However, it is about as computationally expensive to calculate the shortest path from vertex u to every vertex using Dijkstra’s as it is to calculate the shortest path to some particular vertex v. Therefore, anytime we want to know the optimal path to some other vertex from a determined origin, we can use Dijkstra’s algorithm. D IJKSTRA ' S A LGORITHM - W HY USE IT ?

A PPLICATIONS OF D IJKSTRA ' S A LGORITHM - Traffic Information Systems are most prominent use - Mapping (Map Quest, Google Maps) - Routing Systems

A PPLICATIONS OF D IJKSTRA ' S A LGORITHM One particularly relevant this week: epidemiology Prof. Lauren Meyers (Biology Dept.) uses networks to model the spread of infectious diseases and design prevention and response strategies. Vertices represent individuals, and edges their possible contacts. It is useful to calculate how a particular individual is connected to others. Knowing the shortest path lengths to other individuals can be a relevant indicator of the potential of a particular individual to infect others.

Dijkstra’s original paper: E. W. Dijkstra. (1959) A Note on Two Problems in Connection with Graphs. Numerische Mathematik, MIT OpenCourseware, 6.046J Introduction to Algorithms. Accessed 4/25/09http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer- Science/6-046JFall-2005/CourseHome/ Meyers, L.A. (2007) Contact network epidemiology: Bond percolation applied to infectious disease prediction and control. Bulletin of the American Mathematical Society 44 : Department of Mathematics, University of Melbourne. Dijkstra’s Algorithm. Accessed 4/25/09 Wu, Dekai. (2005) COMP 271 Design and Analysis of Algorithms class at Hong Kong University of Science and Technology. Loring, Terry. (2009) Math318 Graph Theory class at University of New Mexico. R EFERENCES