0% found this document useful (0 votes)
83 views

Shortest Path Problems: Dijkstra's Algorithm

Dijkstra's algorithm finds the shortest path between nodes in a graph. It works by labeling each node with the shortest known distance from the starting node and iteratively adding unvisited nodes to the distinguished set based on lowest label. The algorithm is demonstrated on a sample graph to find the shortest path from node a to c. Dijkstra's algorithm runs in O(n^2) time and can be implemented as a computer program to solve shortest path problems modeled as weighted graphs.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

Shortest Path Problems: Dijkstra's Algorithm

Dijkstra's algorithm finds the shortest path between nodes in a graph. It works by labeling each node with the shortest known distance from the starting node and iteratively adding unvisited nodes to the distinguished set based on lowest label. The algorithm is demonstrated on a sample graph to find the shortest path from node a to c. Dijkstra's algorithm runs in O(n^2) time and can be implemented as a computer program to solve shortest path problems modeled as weighted graphs.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 17

Shortest Path Problems

Dijkstras Algorithm
TAT 01 Michelle Wang

Introduction
Many problems can be modeled using
graphs with weights assigned to their
edges:

Airline flight times


Telephone communication costs
Computer networks response times

Wheres my motivation?
Fastest way to get to school by car
Finding the cheapest flight home
How much wood could a woodchuck
chuck if a woodchuck could chuck
wood?

Optimal driving time


UCLA

In N Out

25

19

The Red
Garter

the beach (dude)


16

36

31

21

My cardboard box on Sunset

Tokyo Subway Map

Setup:
G = weighted graph
In our version, need POSITIVE weights.
G is a simple connected graph.

A simple graph G = (V, E) consists of V, a nonempty set of


vertices, and E, a set of unordered pairs of distinct elements
of V called edges.

A labeling procedure is carried out at each iteration

A vertex w is labeled with the length of the shortest path


from a to w that contains only the vertices already in the
distinguished set.

Outline of Algorithm
Label a with 0 and all
others with .
L0(a) = 0 and L0(v) =
Labels are shortest
paths from a to vertices
Sk = the distinguished
set of vertices after k
iterations. S0 = . The
set Sk is formed by
adding a vertex u NOT
in Sk-1 with the smallest
label.

Once u is added to Sk
we update the labels of
all the vertices not in Sk
To update labels:
Lk(a, v) = min{Lk-1(a, v),
Lk-1(a, u) + w(u, v)}

Using the previous example, we will find the


shortest path from a to c.
a

25

19

b
16

31

i
36

21

Label a with 0 and all others with . L0(a) = 0


and L0(v) =
L0(a) = 0

25
L0(r) =

19

L0(b) =
16

31

L0(i) =

36

L0(c) =

21

Labels are shortest paths from a to vertices.


S1 = {a, i}
L1(a) = 0

25
L1(r) =

19

L1(b) =
16

31

L1(i) = 9

36

L1(c) =

21

Lk(a, v) = min{Lk-1(a, v), Lk-1(a, u) + w(u, v)}


S2 = {a, i, b}
L2(a) = 0

25
L2(r) =

19

L2(b) = 19
16

31

L2(i) = 9

36

L2(c) =

21

S3 = {a, i, b, r}
L3(a) = 0

25
L3(r) = 24

19

L3(b) = 19
16

31

L3(i) = 9

36

L3(c) =

21

S4 = {a, i, b, r, c}
L4(a) = 0

25
L4(r) = 24

19

L4(b) = 19
16

31

L4(i) = 9

36

L4(c) = 45

21

Remarks
Implementing this algorithm as a computer
program, it uses O(n2) operations [additions,
comparisons]
Other algorithms exist that account for
negative weights
Dijkstras algorithm is a single source one.
Floyds algorithm solves for the shortest path
among all pairs of vertices.

Endnotes 1

Endnotes 2

For Math 3975:

You might also like