Download presentation

Presentation is loading. Please wait.

Published byKarson Cresswell Modified over 4 years ago

1
Graph Theory Arnold Mesa

2
Basic Concepts n A graph G = (V,E) is defined by a set of vertices and edges v3 v1 v2Vertex (v1) Edge (e1) A Graph with 3 vertices and 3 edges

3
Basic Concepts (cont.) n A vertex (v1) is said to be adjacent to (v2) if and only if they share a common edge (e1). v1v3v2 e1e2

4
Basic Concepts (cont.) n A directed graph or digraph is a graph where direction matters. n Movement in the graph is determined by the direction of the edge. v1 v5 v3 v6 v2 v4

5
Basic Concepts (cont.) n A path in a graph is a sequence of vertices (v1, v2, v3,…,v n ). n The path length is determined by how many edges are on the path. v1 v5 v3 v6 v2 v4 1 2 3

6
Adjacency List Representation v1 v5 v3 v6 v2 v4 v1v2 v2v3 v6 v3v4 v6 v4v3v5 v5v6 v6v1 Bi-Directional paths are allowed

7
More terms… weightcost n An edge may have a component known as a weight or cost associated to it. v1v3v2 46

8
Adjacency Matrix Representation v1 v5 v3 v6 v2 v4 4 1 3 4 6 4 7 6 v1v3v4v2 v1 v5v6 v5 v4 v3 v2 v6 0 0 0 0 0 0 000 0000 0035 0000 0000 0000 6 6 14 7 6 4 6

9
Graph Algorithms n Shortest-Path Algorithms Unweighted Shortest Paths Floyd’s Algorithm Dijkstra’s Algorithm All-Pairs Shortest Path n Network Flow Problems Maximum-Flow Algorithm n Minimum Spanning Tree Prim’s Algorithm Kruskal’s Algorithm

10
Shortest Path Algorithms n Unweighted Shortest Paths ss –Starting with a vertex s, we find the shortest path from s to all the other vertices v1 v7v6 v5 v2 v4 v3 s 1 0 1 2 2

11
Shortest Path Algorithms n Floyd’s Algorithm –Suppose we have the following adjaceny matrix v1v3v4v2 v1 v4 v3 v2 0 0 0 0 17 213 2 7411 9 10 14 v1 v3 v2 v4 9 1 7 13

12
v1v3v4v2 v1 v4 v3 v2 0 0 0 0 17 213 2 7411 9 10 14 Matrix Addition We first look at row and column v1 Then we look at each square v’ not in row or column v1 (for example look at (v2,v3) = 10) Now look at the corresponding row and column in v1. (1, 13) Add the two numbers together. (1+13 = 14) If the sum is less than v’, replace v’ with the sum. (Is 14 < 13? No, so don’t replace it.)

13
v1v3v4v2 v1 v4 v3 v2 0 0 0 0 17 213 2 7411 9 10 14 How about (v2, v4)? (1 + 2) = 3 Since this is less than 7, we replace the 7 with a 3. v1v3v4v2 v1 v4 v3 v2 0 0 0 0 13 213 2 7411 9 10 14 Matrix Addition

14
What is the purpose of doing this?

15
v1v3v4v2 v1 v4 v3 v2 0 0 0 0 17 3 213 2 7411 9 10 14 v1 v3 v2 1 7 v4 2 If we take the path from v2 to v4 it would cost us a total of 7 units However, if we move from v2 to v1. Then move from v1 to v4. The total cost would be 3 units. We have essentially found the shortest path at this moment from v2 to v4.

16
v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 213 2 7411 9 10 14 v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 213 32 7411 9 10 5 v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 213 32 7411 9 10 v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 213 32 647 9 10 5 Now do the same algorithm with row and column v2. After row and column v3. 5

17
v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 213 32 647 9 10 v1v3v4v2 v1 v4 v3 v2 0 0 0 0 1 3 26 32 647 8 7 5 Finally, after row and column v4. 5 Although we did not see it in this example. It is possible a square gets updated more than once. After Floyd’s Algorithm is complete, we have the shortest path/cost path from any node to any other node in the graph. Time Complexity: O(V 3 )

18
Shortest Path Algorithms n Dijkstra’s Algorithm –Example of a greedy algorithm. –A greedy algorithm is one that takes the shortest path at any given moment without looking ahead. Many times a greedy algorithm is not the best choice. v1 v4 v3 v2 1 2 2 9 s Greedy path

19
Dijkstra’s Algorithm s Pick a starting point s and declare it known (True). We sill start with v1. known d v p v known is a true/false value. Whether we have delclared a vertex known (true) or not (false) d v is the cost from the previous vertex to the current vertex p v is the previous vertex in the path to the current vertex V v1 v2 v3 v4 v1 v3 v2 v4 s T 0 0 F 0 0

20
known d v p v V v1 v2 v3 v4 F 0 0 v1 v3 v2v4 9 13 7 1 1014 11 2 2 4 v1 goes to v2 and v4. What is the cost of each edge? v1 to v2 = 9, v1 to v4 = 2, and v1 to v3 = 13 Now we declare 1 as known (True) and update d v and p v We have a choice now. Do we pick v2 or v4 to explore? known d v p v V v1 v2 v3 v4 T 0 0 F 9 v1 F 13 v1 F 2 v1

21
v1 v3 v2v4 9 13 7 1 1014 11 2 2 4 We pick v4. Why? Greedy Algorithm We want the shortest path. v4 goes into v3 and v2 v4 to v3 = 4 v4 to v2 = 7 Now v4 is declared known. We update the table like before. known d v p v V v1 v2 v3 v4 T 0 0 F 7 v4 F 4 v4 T 2 v1 Next we explore the next vertex that led from v1. Namely v2

22
v1 v3 v2v4 9 13 7 1 1014 11 2 2 4 v2 goes to v1 and v3 v2 to v1 = 1 v2 to v3 = 10 Now we declare v2 as known and update the table again. known d v p v V v1 v2 v3 v4 T 1 v2 T 7 v4 F 4 v4 T 2 v1 But wait! There is a problem. When updating v3 we see that the cost 10 is higher than the cost 4. We like the cost 4 so we will keep v3 the same.

23
v1 v3 v2v4 9 13 7 1 1014 11 2 2 4 The last vertex to look at is v3. v3 goes to v2, v1 and v4. v3 to v2 = 2 v3 to v1 = 13 v3 to v4 = 14 v3 is now declared known. Like before we update as before, keeping in mind to keep lower cost paths. known d v p v V v1 v2 v3 v4 T 1 v2 T 2 v3 T 4 v4 T 2 v1

24
So How Do We Use This? known d v p v V v1 v2 v3 v4 T 1 v2 T 2 v3 T 4 v4 T 2 v1 Take any vertex you want as a starting point. Now locate that vertex in the p v column. Work backwards to the vertex you want to end up in. Easy! Lets look at an example: Let’s say we want the shortest path from v1 to v2. We see that v1 goes into v4 at a cost of 2. Now v4 goes into v3 at a cost of 4. Lastly v3 goes into v2 at a cost of 2. 2 + 4 + 2 = 8

25
v1 v3 v2v4 9 13 7 1 1014 11 2 2 4 If we took a direct path from v1 to v2 it would cost us 9. But we found a way to get from v1 to v2 at a cost of 8. Time complexity of Dijkstra’s Algorithm is O(V 2 ) known d v p v V v1 v2 v3 v4 T 1 v2 T 2 v3 T 4 v4 T 2 v1

Similar presentations

© 2019 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