Graph Algorithm Recap n A topological sort of




















- Slides: 20
Graph Algorithm
Recap n A topological sort of a DAG G is a linear ordering of all its vertices such that if G contains a link (u, v), then node u appears before node v in the ordering b c 1 b a d 2 c a 3 4 d
Algorithm Example n find source nodes (indegree = 0) n if there is no such node, the graph is NOT DAG in_deg=1 a f in_deg=0 in_deg=3 c b in_deg=2 Sorted: - e d in_deg=1 c Queue
Degrees Summary n number of edges connected to a vertex n for undirected graphs n n sum of all degrees = 2 X edges n the number of nodes with odd numbered degrees is even? for directed graph n sum of in-degree = sum of out-degree
Conectivity n connected n n there exists a path between every pair of vertices articulation vertex n n n deleting this vertex makes the graph disconnected a graph without any such vertex is biconnected deleting a bridge edge makes the graph disconnected
Cycles n n A tree does not have a cycle Eulerian cycle n n a tour that visits every edge exactly once Hamiltonian cycle (path) n a tour that visits every vertex exactly once
Spanning Tree n Given a graph G = (V, E) and tree T = (V, E ) n n E E for all (u, v) in E u, v V for all connected graph, there exists a spanning tree A spanning tree can be constructed using DFS or BFS
Minimal Spanning Tree n n sum of edge weights is minimal if there is no weight n n the number of edges is minimal why is it so important? n search space is minimal for most problems
Example of MST: Prim’s Algorithm
1. Vertex D has been chosen as a starting point ① ② Vertices A, B, E, F are connected to D through a single edge. A is the nearest to D and thus chosen as the 2 nd vertex along with the edge AD
2. The next vertex chosen is the vertex nearest to either D or A. So the vertex F is chosen along with the edge DF
3. same as 2, Vertex B is chosen.
4. among C, E, G, E is chosen.
5. among C and G, C is chosen.
6. G is the only remaining vertex.
7. The finally obtained minimum spanning tree the total weight is 39
Kruskal’s algorithm
Dijkstra’s Algorithm n Goal: Find the shortest path from s to t 24 2 9 s 3 18 14 6 30 15 11 5 5 16 20 7 6 2 44 4 19 6 t
All Pairs Shortest Paths n Use Dijkstra’s method for all the vertices n n complexity? Floyd’s method n Given the adjacency matrix with vertices numbered (1. . n)
Network Flow n Think edges as pipes n what’s the maximum flow from node 1 to node 5?