1 / 10

More Graph Algorithms

More Graph Algorithms. Applications of Graphs: Topological Sorting. Topological order A list of vertices in a directed graph without cycles such that vertex x precedes vertex y if there is a directed edge from x to y in the graph There may be several topological orders in a given graph

scarrier
Download Presentation

More Graph Algorithms

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. More Graph Algorithms

  2. Applications of Graphs: Topological Sorting • Topological order • A list of vertices in a directed graph without cycles such that vertex x precedes vertex y if there is a directed edge from x to y in the graph • There may be several topological orders in a given graph • Topological sorting • Arranging the vertices into a topological order

  3. Topological Sort • Directed graph G. • Rule: if there is an edge u  v, then u must come before v. • Ex: A B G F C I H A B E D G F C I H E D

  4. Intuition • Cycles make topological sort impossible. • Select any node with no in-edges • print it • delete it • and delete all the edges leaving it • Repeat • What if there are some nodes left over? • Implementation? Efficiency?

  5. Implementation • Start with a list of nodes with in-degree = 0 • Select any edge from list • mark as deleted • mark all outgoing edges as deleted • update in-degree of the destinations of those edges • If any drops below zero, add to the list • Running time?

  6. Topological Sorting Figure 13.14 A directed graph without cycles Figure 13.15 The graph in Figure 13-14 arranged according to the topological orders a) a, g, d, b, e, c, f and b) a, b, g, d, e, f, c

  7. Topological Sorting • Simple algorithms for finding a topological order • topSort1 • Find a vertex that has no successor • Remove from the graph that vertex and all edges that lead to it, and add the vertex to the beginning of a list of vertices • Add each subsequent vertex that has no successor to the beginning of the list • When the graph is empty, the list of vertices will be in topological order

  8. Topological Sorting • Simple algorithms for finding a topological order (Continued) • topSort2 • A modification of the iterative DFS algorithm • Strategy • Push all vertices that have no predecessor onto a stack • Each time you pop a vertex from the stack, add it to the beginning of a list of vertices • When the traversal ends, the list of vertices will be in topological order

  9. Implementation • Start with a list of nodes with in-degree = 0 • Select any edge from list • mark as deleted • mark all outgoing edges as deleted • update in-degree of the destinations of those edges • If any drops below zero, add to the list • Running time? In all, algorithm does work: • O(|V|) to construct initial list • Every edge marked “deleted” at most once: O(|E|) total • Every node marked “deleted” at most once: O(|V|) total • So linear time overall (in |E| and |V|)

  10. Why should we care? • Shortest path problem in directed, acyclic graph • Called a DAG for short • General problem: • Given a DAG input G with weights on edges • Find shortest paths from source A to every other vertex

More Related