130 likes | 212 Views
15.082 and 6.855J. Dijkstra’s Algorithm with simple buckets (also known as Dial’s algorithm). . . 0. . 1. . . . 2. 0. 1. 2. 3. 4. 5. 6. 7. 3. 4. 5. 6. An Example. Initialize distance labels. 4. 2. 4. 2. 2. Initialize buckets. 2. 1. 3. 1. 6. 4. 2. 3.
E N D
15.082 and 6.855J Dijkstra’s Algorithm with simple buckets (also known as Dial’s algorithm)
0 1 2 0 1 2 3 4 5 6 7 3 4 5 6 An Example Initialize distance labels 4 2 4 2 2 Initialize buckets. 2 1 3 1 6 4 2 3 Select the node with the minimum temporary distance label. 3 5 1
2 0 1 2 3 4 5 6 7 3 4 5 6 Update Step 2 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 4 1 2 3
0 1 2 3 4 5 6 7 Choose Minimum Temporary Label Find Min by starting at the leftmost bucket and scanning right till there is a non-empty bucket. 2 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 4 4 5 6 2 3
0 1 2 3 4 5 6 7 Update Step 6 2 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 4 4 3 4 5 6 3 2 3 4 5
0 1 2 3 4 5 6 7 Choose Minimum Temporary Label Find Min by starting at the leftmost bucket and scanning right till there is a non-empty bucket. 2 6 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 3 4 6 3 5 4
0 1 2 3 4 5 6 7 Update 2 6 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 3 4 6 3 5 4
0 1 2 3 4 5 6 7 Choose Minimum Temporary Label 2 6 4 2 4 2 2 0 2 1 3 1 6 4 2 3 3 5 3 4 6 5 4
0 1 2 3 4 5 6 7 Update 2 6 4 2 4 2 2 0 6 2 1 3 1 6 4 2 3 3 5 3 4 6 5 4 6
0 1 2 3 4 5 6 7 Choose Minimum Temporary Label 2 6 4 2 4 2 2 0 2 1 3 6 1 6 4 2 3 3 5 3 4 4 6
0 1 2 3 4 5 6 7 Update 2 6 4 2 4 2 2 0 2 1 3 6 1 6 4 2 3 3 5 3 4 4 6
0 1 2 3 4 5 6 7 Choose Minimum Temporary Label 2 6 4 2 4 There is nothing to update 2 2 0 2 1 3 6 1 6 4 2 3 3 5 3 4 6
End of Algorithm 2 6 4 2 4 2 2 0 2 1 3 6 1 6 4 2 3 3 5 3 4 All nodes are now permanent The predecessors form a tree The shortest path from node 1 to node 6 can be found by tracing back predecessors