SlideShare a Scribd company logo
DIJKSTRA'S ALGORITHM
By Laksman Veeravagu and Luis Barrera
THE AUTHOR: EDSGER WYBE DIJKSTRA
"Computer Science is no more about computers than
astronomy is about telescopes."
http://www.cs.utexas.edu/~EWD/
EDSGER WYBE DIJKSTRA
- May 11, 1930 – August 6, 2002
- 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 2000
- 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.
SINGLE-SOURCE SHORTEST PATH PROBLEM
Single-Source Shortest Path Problem - The problem of
finding shortest paths from a source vertex v to all other
vertices in the graph.
DIJKSTRA'S ALGORITHM
Dijkstra's algorithm - is a solution to the single-source
shortest path problem in graph theory.
Works on both directed and undirected graphs. However, all
edges must have nonnegative weights.
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 all other
vertices
DIJKSTRA'S ALGORITHM - PSEUDOCODE
dist[s] ←0 (distance to source vertex is zero)
for all v ∈ V–{s}
do dist[v] ←∞ (set all other distances to infinity)
S←∅ (S, the set of visited vertices is initially empty)
Q←V (Q, the queue initially contains all vertices)
while Q ≠∅ (while the queue is not empty)
do u ← mindistance(Q,dist) (select the element of Q with the min. distance)
S←S∪{u} (add u to list of visited vertices)
for all v ∈ neighbors[u]
do if dist[v] > dist[u] + w(u, v) (if new shortest path found)
then d[v] ←d[u] + w(u, v) (set new value of shortest path)
(if desired, add traceback code)
return dist
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
DIJKSTRA ANIMATED EXAMPLE
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|)
DIJKSTRA'S ALGORITHM - WHY IT WORKS
 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…
DIJKSTRA'S ALGORITHM - WHY IT WORKS
 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.
DIJKSTRA'S ALGORITHM - WHY USE IT?
APPLICATIONS OF DIJKSTRA'S ALGORITHM
- Traffic Information Systems are most prominent use
- Mapping (Map Quest, Google Maps)
- Routing Systems
APPLICATIONS OF DIJKSTRA'S
ALGORITHM
 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, 1. 269-271.
 MIT OpenCourseware, 6.046J Introduction to Algorithms.
< http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-
Science/6-046JFall-2005/CourseHome/> Accessed 4/25/09
 Meyers, L.A. (2007) Contact network epidemiology: Bond percolation
applied to infectious disease prediction and control. Bulletin of the
American Mathematical Society 44: 63-86.
 Department of Mathematics, University of Melbourne. Dijkstra’s
Algorithm.
<http://www.ms.unimelb.edu.au/~moshe/620-
261/dijkstra/dijkstra.html > Accessed 4/25/09
REFERENCES

More Related Content

PPT
Dijkstra's algorithm for computer science
PPT
dijkstra algo.ppt
PDF
Node Path Visualizer Using Shortest Path Algorithms
PDF
04 greedyalgorithmsii
PPTX
Dijkstra's algorithm presentation
PDF
AN EFFECT OF USING A STORAGE MEDIUM IN DIJKSTRA ALGORITHM PERFORMANCE FOR IDE...
PDF
Dijkstra's Algorithm
PPTX
SEMINAR ON SHORTEST PATH ALGORITHMS.pptx
Dijkstra's algorithm for computer science
dijkstra algo.ppt
Node Path Visualizer Using Shortest Path Algorithms
04 greedyalgorithmsii
Dijkstra's algorithm presentation
AN EFFECT OF USING A STORAGE MEDIUM IN DIJKSTRA ALGORITHM PERFORMANCE FOR IDE...
Dijkstra's Algorithm
SEMINAR ON SHORTEST PATH ALGORITHMS.pptx

Similar to barrera.ppt (20)

PPTX
Spanning Tree in data structure and .pptx
PPTX
Dijkstra & flooding ppt(Routing algorithm)
PPTX
Dijkstra’s algorithm
PDF
Dijkstra Shortest Path Visualization
PDF
04 greedyalgorithmsii 2x2
PPTX
Dijkstra's Algorithm
PPTX
Algo labpresentation a_group
PDF
White Grey Minimalist Geometric Project Presentation.pdf
PPTX
Ram minimum spanning tree
PDF
306_Shortest_Paths_in_DAGs_design_andanalysisofalgorithms.pdf
PDF
Ijciras1101
PPTX
Dijkstras-Algorithm-Finding-the-Shortest-Path.pptx
PPT
17 prims-kruskals (1)
PPT
Single source stortest path bellman ford and dijkstra
PPT
(148065320) dijistra algo
PPT
Unit26 shortest pathalgorithm
PDF
Connect-the-Dots in a Graph and Buffon's Needle on a Chessboard: Two Problems...
PPTX
Floyd warshall algorithm and it's applications
PPTX
Dijkastra’s algorithm
PDF
301_DP_Elements_and_Shortest_Paths_in_DAG.pdf
Spanning Tree in data structure and .pptx
Dijkstra & flooding ppt(Routing algorithm)
Dijkstra’s algorithm
Dijkstra Shortest Path Visualization
04 greedyalgorithmsii 2x2
Dijkstra's Algorithm
Algo labpresentation a_group
White Grey Minimalist Geometric Project Presentation.pdf
Ram minimum spanning tree
306_Shortest_Paths_in_DAGs_design_andanalysisofalgorithms.pdf
Ijciras1101
Dijkstras-Algorithm-Finding-the-Shortest-Path.pptx
17 prims-kruskals (1)
Single source stortest path bellman ford and dijkstra
(148065320) dijistra algo
Unit26 shortest pathalgorithm
Connect-the-Dots in a Graph and Buffon's Needle on a Chessboard: Two Problems...
Floyd warshall algorithm and it's applications
Dijkastra’s algorithm
301_DP_Elements_and_Shortest_Paths_in_DAG.pdf
Ad

More from gopikahari7 (20)

PPTX
Tema2_ArchitectureMIPS.pptx
PPTX
cuckoosearchalgorithm-141028173457-conversion-gate02 (1).pptx
PPTX
Final PPT.pptx (1).pptx
PPTX
S12075-GPU-Accelerated-Video-Encoding.pptx
PDF
S12075-GPU-Accelerated-Video-Encoding.pdf
PPTX
batalgorithm-160501121237 (1).pptx
PPTX
batalgorithm-170406072944 (4).pptx
PPTX
Copy of Parallel_and_Cluster_Computing.pptx
PPTX
MattsonTutorialSC14.pptx
PPTX
batalgorithm-170406072944 (4).pptx
PPTX
ELEMPowerPoint.pptx
PPT
Hayes2010.ppt
PPT
plantpresentation.ppt
PPT
Plants.ppt
PPT
2_2018_12_20!06_04_28_PM.ppt
PPTX
abelbrownnvidiarakuten2016-170208065814 (1).pptx
PPTX
realtime_ai_systems_academia.pptx
PPT
ppd_seminar_110202_talk_edward_freeman_introduction_to_programmable_logic_dev...
PPT
FPGA-Arch.ppt
PDF
BEC007 -Digital image processing.pdf
Tema2_ArchitectureMIPS.pptx
cuckoosearchalgorithm-141028173457-conversion-gate02 (1).pptx
Final PPT.pptx (1).pptx
S12075-GPU-Accelerated-Video-Encoding.pptx
S12075-GPU-Accelerated-Video-Encoding.pdf
batalgorithm-160501121237 (1).pptx
batalgorithm-170406072944 (4).pptx
Copy of Parallel_and_Cluster_Computing.pptx
MattsonTutorialSC14.pptx
batalgorithm-170406072944 (4).pptx
ELEMPowerPoint.pptx
Hayes2010.ppt
plantpresentation.ppt
Plants.ppt
2_2018_12_20!06_04_28_PM.ppt
abelbrownnvidiarakuten2016-170208065814 (1).pptx
realtime_ai_systems_academia.pptx
ppd_seminar_110202_talk_edward_freeman_introduction_to_programmable_logic_dev...
FPGA-Arch.ppt
BEC007 -Digital image processing.pdf
Ad

Recently uploaded (20)

PDF
Foundation of Data Science unit number two notes
PPTX
Computer network topology notes for revision
PDF
Mega Projects Data Mega Projects Data
PPTX
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
PPTX
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
PPTX
Introduction to Knowledge Engineering Part 1
PDF
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
PPTX
Business Ppt On Nestle.pptx huunnnhhgfvu
PPTX
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PPTX
1_Introduction to advance data techniques.pptx
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PDF
Business Analytics and business intelligence.pdf
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
Foundation of Data Science unit number two notes
Computer network topology notes for revision
Mega Projects Data Mega Projects Data
The THESIS FINAL-DEFENSE-PRESENTATION.pptx
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
Introduction to Knowledge Engineering Part 1
22.Patil - Early prediction of Alzheimer’s disease using convolutional neural...
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
Business Ppt On Nestle.pptx huunnnhhgfvu
Introduction to Basics of Ethical Hacking and Penetration Testing -Unit No. 1...
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
oil_refinery_comprehensive_20250804084928 (1).pptx
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
Introduction-to-Cloud-ComputingFinal.pptx
1_Introduction to advance data techniques.pptx
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
Business Analytics and business intelligence.pdf
Miokarditis (Inflamasi pada Otot Jantung)
Data_Analytics_and_PowerBI_Presentation.pptx

barrera.ppt

  • 1. DIJKSTRA'S ALGORITHM By Laksman Veeravagu and Luis Barrera
  • 2. THE AUTHOR: EDSGER WYBE DIJKSTRA "Computer Science is no more about computers than astronomy is about telescopes." http://www.cs.utexas.edu/~EWD/
  • 3. EDSGER WYBE DIJKSTRA - May 11, 1930 – August 6, 2002 - 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 2000 - 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.
  • 4. SINGLE-SOURCE SHORTEST PATH PROBLEM Single-Source Shortest Path Problem - The problem of finding shortest paths from a source vertex v to all other vertices in the graph.
  • 5. DIJKSTRA'S ALGORITHM Dijkstra's algorithm - is a solution to the single-source shortest path problem in graph theory. Works on both directed and undirected graphs. However, all edges must have nonnegative weights. 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 all other vertices
  • 6. DIJKSTRA'S ALGORITHM - PSEUDOCODE dist[s] ←0 (distance to source vertex is zero) for all v ∈ V–{s} do dist[v] ←∞ (set all other distances to infinity) S←∅ (S, the set of visited vertices is initially empty) Q←V (Q, the queue initially contains all vertices) while Q ≠∅ (while the queue is not empty) do u ← mindistance(Q,dist) (select the element of Q with the min. distance) S←S∪{u} (add u to list of visited vertices) for all v ∈ neighbors[u] do if dist[v] > dist[u] + w(u, v) (if new shortest path found) then d[v] ←d[u] + w(u, v) (set new value of shortest path) (if desired, add traceback code) return dist
  • 17. 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|)
  • 18. DIJKSTRA'S ALGORITHM - WHY IT WORKS  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.
  • 19.  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… DIJKSTRA'S ALGORITHM - WHY IT WORKS
  • 20.  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. DIJKSTRA'S ALGORITHM - WHY USE IT?
  • 21. APPLICATIONS OF DIJKSTRA'S ALGORITHM - Traffic Information Systems are most prominent use - Mapping (Map Quest, Google Maps) - Routing Systems
  • 22. APPLICATIONS OF DIJKSTRA'S ALGORITHM  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.
  • 23.  Dijkstra’s original paper: E. W. Dijkstra. (1959) A Note on Two Problems in Connection with Graphs. Numerische Mathematik, 1. 269-271.  MIT OpenCourseware, 6.046J Introduction to Algorithms. < http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer- Science/6-046JFall-2005/CourseHome/> Accessed 4/25/09  Meyers, L.A. (2007) Contact network epidemiology: Bond percolation applied to infectious disease prediction and control. Bulletin of the American Mathematical Society 44: 63-86.  Department of Mathematics, University of Melbourne. Dijkstra’s Algorithm. <http://www.ms.unimelb.edu.au/~moshe/620- 261/dijkstra/dijkstra.html > Accessed 4/25/09 REFERENCES