Download presentation

Presentation is loading. Please wait.

Published byJanie Sanders Modified over 6 years ago

1
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Graphs

2
2 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Application Definition Terminology Graph Representation Outline

3
3 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Graph Application Networks Maps Shortest path Scheduling (Project Planning)

4
4 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Definition A graph G = (V, E) is composed of: V: a set of vertices/nodes E: a set of edges connecting the nodes in V An edge e = (a, b) is a pair of nodes, where a and b V

5
5 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Terminology Undirected graph Directed graph Adjacent nodes: connected by an edge Degree (of a vertex): # of adjacent nodes for directed graph in-degree out-degree

6
6 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Weighted Graph Weighted graph: each edge has a weight, or cost V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 2 3 10 6 22 4 5 1 8 4 1 V = {V 0, V 1, V 2, V 3, V 4, V 5, V 6 } |V| = 7; |E| = 12

7
7 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Path: sequence of nodes v 1, v 2,...v k such that consecutive nodes v i and v i+1 are adjacent. Simple path: no repeated nodes Cycle: simple path, except that the last vertex is the same as the first vertex DAG (Directed Acyclic Graph): directed graph with no cycles. More Terminology V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 2 3 10 6 22 4 5 1 8 4 1

8
8 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 More Terminology Connected Graph: any two nodes are connected by some path Subgraph: subset of nodes and edges forming a graph

9
9 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Representation

10
10 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Representation: Edge List Edge List: store nodes and edges as unsorted sequences. Easy to implement. Finding the edges incident on a given vertex is inefficient since it requires examining the entire edge sequence.

11
11 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Adjacency List of a vertex v: sequence of nodes adjacent to v represent the graph by the adjacency lists of all the nodes Representation: Adjacency List

12
12 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Matrix M with entries for all pairs of nodes M[i,j] = true means that there is an edge (i,j) in the graph. M[i,j] = false means that there is no edge (i,j) in the graph. There is an entry for every possible edge, therefore: Space = O(N 2 ) Representation: Adjacency Matrix

13
13 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Representation: Adjacency Matrix

14
14 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Topological Sorting A topological sort of a directed acyclic graph is an ordering on the nodes such that all edges go from left to right. Only an acyclic graph can have a topological sort, because a directed cycle must eventually return home to the source of the cycle. However, every DAG has at least one topological sort, and we can use depth-first search to find such an ordering. Topological sorting proves very useful in scheduling jobs in their proper sequence

15
15 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 1 1 2 2 3 3 Topological Sorting Start from vertex that have in-degree 0

16
16 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 1 2 2 2 2 Topological Sorting

17
17 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 2 2 1 2 Topological Sorting

18
18 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 1 2 0 2 Topological Sorting

19
19 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 0 1 0 1 Topological Sorting

20
20 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 0 0 0 1 Topological Sorting

21
21 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 0 0 0 0 Topological Sorting

22
22 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 0 0 0 0 0 0 0 V5V5 Topological Sorting

23
23 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 4 2 22 1 1 56 10 4 8 3 Topological Sorting

24
24 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 4 2 22 1 1 56 10 4 8 3 Topological Sorting

25
25 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Shortest Path: Unweighted Graph V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 V2V2 V6V6 Starting vertex: V 2 Use BFS (Breadth First Search) instead of DFS (Depth First Search) to find shortest path in unweighted graph (or each edge have the same weight) 0 1 1 2 2 3 3

26
26 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 In many applications, e.g., transportation networks, the edges of a graph have different weights. Dijkstra’s algorithm finds the shortest path from a start vertex s to all the other nodes in a graph with non-negative edge weights Dijkstra’s algorithm uses a greedy method Shortest Path: Positive Weighted Graph

27
27 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm Computes for each vertex v the distance of v from the start vertex s, that is, the weight of a shortest path between s and v. Keeps track of the set of nodes for which the shortest path has been computed (the white cloud W), the distance has been computed (the grey cloud G), and the distance has not been computed (the black cloud B) Uses a label D[v] to store an approximation of the distance between s and v When a vertex v is added to the cloud, its label D[v] is equal to the actual distance between s and v Initially, the cloud W contains s, and we set D[s] = 0 D[v] = for v s

28
28 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 0 D[V 2 ] = 0, others Add V 2 to “white cloud”

29
29 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Expanding The White Cloud meaning of D[z]: length of shortest path from s to z that uses only intermediate nodes in the white cloud after a new vertex u is added to the cloud, we need to check whether u is a better routing vertex to reach z let u be a vertex not in the white cloud that has smallest label D[u] we add u to the white cloud W we update the labels of the adjacent nodes of u as follows for each vertex z adjacent to u do if z is not in the cloud W then if D[u] + weight(u,z) < D[z] then D[z] = D[u] + weight(u,z)

30
30 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 0 After V 2 added to cloud, update D[V x ] where V x is adjacent to V 2

31
31 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 0 Add node with minimum total weight (V 3 ) to cloud.

32
32 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 6 4 0 After V 3 added to the white cloud, update D[V x ] where V x is adjacent to V 3

33
33 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 6 4 0 Add node with minimum total weight (V 4 ) to cloud.

34
34 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 5 4 0 After V 4 added to the white cloud, update D[V x ] where V x is adjacent to V 4

35
35 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 2 5 5 4 0 Add node with minimum total weight (V 0 ) to cloud.

36
36 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 7 2 5 5 4 0 After V 0 added to the white cloud, update D[V x ] where V x is adjacent to V 0

37
37 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 7 2 5 5 4 0 Add node with minimum total weight (V 5 ) to cloud. after V 5 added into the white cloud, update D[V x ] which V x is the adjacent of V 5

38
38 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 7 2 5 5 4 0 Add node with minimum total weight (V 6 ) to cloud. After V 6 added to the white cloud, update D[V x ] where V x is adjacent to V 6

39
39 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Dijkstra’s Algorithm: Stages V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 5 2 1 2 5 8 1 4 2 3 10 1 5 7 2 5 5 4 0 Add node with minimum total weight (V 1 ) to cloud. After V 1 added to the white cloud, update D[V x ] where V x is adjacent to V 1

40
40 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 V6V6 2 3 -10 6 22 4 5 1 8 4 1 Other Shortest Path Problems Negative-weighted Shortest-path All-Pair Shortest Path: Floyd

41
41 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Minimum Spanning Tree (MST) A tree formed from graph edges that connects all the nodes at lowest total cost. The cost of a spanning tree is the sum of the costs of the edges in the tree Application: find the least amount of wire necessary to connect a group of homes or cities connect all the computers in a building with the least amount of cable

42
42 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Minimum Spanning Tree (MST)

43
43 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V2V2 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 Minimum Spanning Tree: A Graph

44
44 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V2V2 V3V3 V4V4 V6V6 6 2 1 4 1 V5V5 V7V7 Minimum Spanning Tree

45
45 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Prim’s Algorithm Start from one vertex Grow the rest of the tree one edge at a time. repeatedly selects the smallest weight edge that will enlarge the tree Greedy algorithms: we make the decision of what to do next by selecting the best local option from all available choices without regard to the global structure.

46
46 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

47
47 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

48
48 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

49
49 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

50
50 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

51
51 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

52
52 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

53
53 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Prim’s Algorithm

54
54 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 6 2 1 4 1 V5V5 V2V2 Prim’s Algorithm

55
55 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Kruskal’s Algorithm add the edges one at a time, by increasing weight accept an edge if it does not create a cycle

56
56 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

57
57 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

58
58 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

59
59 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

60
60 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

61
61 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

62
62 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 3 10 6 72 4 5 1 8 4 1 V5V5 V2V2 Kruskal’s Algorithm

63
63 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 2 V1V1 V3V3 V4V4 V6V6 V7V7 6 2 1 4 1 V5V5 V2V2 Kruskal’s Algorithm

64
64 Ruli Manurung (Fasilkom UI)IKI10100: Lecture10 th May 2007 Summary Graphs are important data structures! Maps, networks, job schedules, etc. Graphs consist of nodes and edges between them. Representation: Edge list Adjacency list Adjacency matrix Popular algorithms Topological sorting Shortest path Minimum spanning tree

Similar presentations

© 2021 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google