Dijk Stra
Dijk Stra
Lecture 18
Outline
Focus on Dijkstras Algorithm Importance: Where it has been used? Algorithms general description Algorithm steps in detail Example
Lecture 18
Lecture 18
Floyd-Warshall and Bellman-Ford algorithm solve the problems on graphs that do not have a cycle with negative cost.
Operations Research Methods 3
Lecture 18
Lecture 18
General Description
Suppose we want to nd a shortest path from a given node s to other nodes in a network (one-to-all shortest path problem) Dijkstras algorithm solves such a problem
It nds the shortest path from a given node s to all other nodes in the network Node s is called a starting node or an initial node How is the algorithm achieving this? Dijkstras algorithm starts by assigning some initial values for the distances from node s and to every other node in the network It operates in steps, where at each step the algorithm improves the distance values. At each step, the shortest distance from node s to another node is determined
Operations Research Methods 5
Lecture 18
Formal Description
The algorithm characterizes each node by its state The state of a node consists of two features: distance value and status label
Distance value of a node is a scalar representing an estimate of the its distance from node s. Status label is an attribute specifying whether the distance value of a node is equal to the shortest distance to node s or not. The status label of a node is Permanent if its distance value is equal to the shortest distance from node s Otherwise, the status label of a node is Temporary
The algorithm maintains and step-by-step updates the states of the nodes At each step one node is designated as current
Operations Research Methods 6
Lecture 18
Notation
In what follows:
d denotes the distance value of a node . p or t denotes the status label of a node, where p stand for permanent and t stands for temporary cij is the cost of traversing link (i, j) as given by the problem
Lecture 18
Algorithm Steps
Step 1. Initialization
Assign the zero distance value to node s, and label it as Permanent. [The state of node s is (0, p).] Assign to every node a distance value of and label them as Temporary. [The state of every other node is (, t).] Designate the node s as the current node
Lecture 18
Step 2. Distance Value Update and Current Node Designation Update Let i be the index of the current node. (1) Find the set J of nodes with temporary labels that can be reached from the current node i by a link (i, j). Update the distance values of these nodes.
For each j J , the distance value dj of node j is updated as follows new dj = min{dj , di + cij }
where cij is the cost of link (i, j), as given in the network problem. (2) Determine a node j that has the smallest distance value dj among all nodes j J , nd j such that min dj = dj
jJ
(3) Change the label of node j to permanent and designate this node as the current node.
Operations Research Methods 9
Lecture 18
Step 3. Termination Criterion If all nodes that can be reached from node s have been permanently labeled, then stop - we are done. If we cannot reach any temporary labeled node from the current node, then all the temporary labels become permanent - we are done. Otherwise, go to Step 2.
10
Lecture 18
We want to nd the shortest path from node 1 to all other nodes using Dijkstras algorithm.
Operations Research Methods 11
Lecture 18
Initialization - Step 1
Node 1 is designated as the current node The state of node 1 is (0, p) Every other node has state (, t)
12
Lecture 18
Nodes 2, 3,and 6 can be reached from the current node 1 Update distance values for these nodes
Step 2
d2 = min{, 0 + 7} = 7 d3 = min{, 0 + 9} = 9 d6 = min{, 0 + 14} = 14 Now, among the nodes 2, 3, and 6, node 2 has the smallest distance value The status label of node 2 changes to permanent, so its state is (7, p), while the status of 3 and 6 remains temporary Node 2 becomes the current node
Operations Research Methods 13
Lecture 18
Step 3
Graph at the end of Step 2
We are not done, not all nodes have been reached from node 1, so we perform another iteration (back to Step 2)
14
Lecture 18
d3 = min{9, 7 + 10} = 9 d6 = min{, 7 + 15} = 22 Now, between the nodes 3 and 4 node 3 has the smallest distance value The status label of node 3 changes to permanent, while the status of 6 remains temporary Node 3 becomes the current node
Lecture 18
Another Step 2
Nodes 6 and 4 can be reached from the current node 3 Update distance values for them
d4 = min{22, 9 + 11} = 20 d6 = min{14, 9 + 2} = 11 Now, between the nodes 6 and 4 node 6 has the smallest distance value The status label of node 6 changes to permanent, while the status of 4 remains temporary Node 6 becomes the current node
Lecture 18
Another Step 2
Node 5 can be reached from the current node 6 Update distance value for node 5
d5 = min{, 11 + 9} = 20
Now, node 5 is the only candidate, so its status changes to permanent Node 5 becomes the current node
From node 5 we cannot reach any other node. permanently labeled and we are done.
Operations Research Methods
17
Lecture 18
Chapter 6.3.2 in your book has another example of the implementation of Dijkstras algorithm
18