1 / 32

Dijkstra’s Algorithm

Dijkstra’s Algorithm. Lauren McLaughlin - 11/7/06. Quotes. “Object-oriented programming is an exceptionally bad idea which could only have originated in California.” “Don't compete with me: firstly, I have more experience, and secondly, I have chosen the weapons.”. Quotes.

kevina
Download Presentation

Dijkstra’s Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dijkstra’s Algorithm Lauren McLaughlin - 11/7/06

  2. Quotes • “Object-oriented programming is an exceptionally bad idea which could only have originated in California.” • “Don't compete with me: firstly, I have more experience, and secondly, I have chosen the weapons.”

  3. Quotes • “Program testing can be used to show the presence of bugs, but never to show their absence!” • “Perfecting oneself is as much unlearning as it is learning.”

  4. Traveling Salesman • Objective: Find the cheapest way of visiting all of the cities and returning to your starting point

  5. Dining Philosophers • Objective: To prevent deadlocks and starvation

  6. Dining Philosophers

  7. Shortest Path Algorithm

  8. Ordered pair u = Vertex @ Beginning of path v = Vertex @ End of path Has a value assigned Cost (u,v) Edge

  9. Data Structures • Set of vertices whose shortest path has been determined (F) • Set of remaining vertices (R) • Array containing shortest path (length) • Adjacency Array (W) • Array holding current vertex (touch)

  10. Basic Steps • Set F to empty set • Initialize arrays • Find shortest path • Place its vertex in F • Remove vertex from R • Relax vertices in R • Change length of shortest vertex to -1

  11. Edge Relaxation • After vertex u is placed in F, every edge in R is relaxed • Get current shortest distance (length[v]) • Determine distance by going through the recently placed vertex in R • If the path is shorter when going through u, set length[v] to that amount

  12. index i, vnear; char touch[n]; int length[n]; //Empty set F = 0; for(i = 0; i < n; i++) { touch[i] = source; if(W[source][i] == 0) W[source][i] = oo; length[ i ] = W[source][i]; } } repeat(n - 1 times) { int min = oo; for(i = 0; i < n; i++) { if(i != source) { if(0 <= length[i] < min) { min = length[i]; vnear = i; } } Pseudocode

  13. Pseudocode add vnear to F; remove vnear from R; for(i = 0; i < n; i++) { if(length[vnear] + W[vnear][i] < length[i]) { length[i] = length[vnear] + W[vnear][i]; touch[i] = vnear; } } length[vnear] = -1; }

  14. Example Objective • Find shortest path from source node, A, to all other nodes

  15. Shortest Paths

  16. Shortest Paths

  17. Shortest Paths

  18. Shortest Paths

  19. Shortest Paths

  20. Shortest Paths

  21. Shortest Paths

  22. Shortest Paths

  23. Shortest Paths

  24. Running Time • O(V2) • Linear Search • Vertices stored in array or linked list • O((E + V)logV) • Binary heap used as priority queue • Vertices stored in adjacency lists • O(E + V logV) • Fibonacci heap used as priority queue • Vertices stored in adjacency lists

  25. Binary Binary Tree More Structure Fibonacci Collection of trees satisfying the minimum-heap priority Maintains pointer to root of tree with smallest priority More flexible Binary vs. Fibonacci

  26. “The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.”

  27. Movie • \\10.1.154.4\Classes\Comp349\Dijkstra

More Related