Graph Theory Arnold Mesa. Basic Concepts n A graph G = (V,E) is defined by a set of vertices and...
-
Upload
karson-cresswell -
Category
Documents
-
view
223 -
download
1
Transcript of Graph Theory Arnold Mesa. Basic Concepts n A graph G = (V,E) is defined by a set of vertices and...
![Page 1: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/1.jpg)
Graph Theory
Arnold Mesa
![Page 2: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/2.jpg)
Basic Concepts
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 A Graph with 3 vertices and 3 edgesedges
![Page 3: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/3.jpg)
Basic Concepts (cont.)
A vertex (v1) is said to be adjacent to (v2) if and only if they share a common edge (e1).
v1 v3v2
e1 e2
![Page 4: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/4.jpg)
Basic Concepts (cont.)
A directed graph or digraph is a graph where direction matters.
Movement in the graph is determined by the direction of the edge.
v1
v5
v3
v6
v2
v4
![Page 5: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/5.jpg)
Basic Concepts (cont.)
A path in a graph is a sequence of vertices (v1, v2, v3,…,vn).
The path length is determined by how many edges are on the path.
v1
v5
v3
v6
v2
v4
1
2
3
![Page 6: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/6.jpg)
Adjacency List Representation
v1
v5
v3
v6
v2
v4
v1 v2
v2 v3 v6
v3 v4 v6
v4 v3 v5
v5 v6
v6 v1
Bi-Directional paths are allowed Bi-Directional paths are allowed
![Page 7: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/7.jpg)
More terms…
An edge may have a component known as a weightweight or costcost associated to it.
v1 v3v2
44 66
![Page 8: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/8.jpg)
Adjacency Matrix Representation
v1
v5
v3
v6
v2
v4
44
11
33
44
66
44
77
66
v1 v3 v4v2
v1
v5 v6
v5
v4
v3
v2
v6
0
0
0
0
0
0
0 0 0
00 00
0 0 3355
0 00 0
00 0 0
0 000
66
66
11 44
77
66
44
66
![Page 9: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/9.jpg)
Graph Algorithms
Shortest-Path AlgorithmsShortest-Path Algorithms• Unweighted Shortest Paths• Floyd’s Algorithm• Dijkstra’s Algorithm• All-Pairs Shortest Path
Network Flow ProblemsNetwork Flow Problems• Maximum-Flow Algorithm
Minimum Spanning TreeMinimum Spanning Tree• Prim’s Algorithm• Kruskal’s Algorithm
![Page 10: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/10.jpg)
Shortest Path Algorithms
Unweighted Shortest PathsUnweighted Shortest Paths– Starting with a vertex ss, we find the shortest path from ss to
all the other vertices
v1
v7v6
v5
v2
v4
v3
ss
11
00
11 22
22
![Page 11: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/11.jpg)
Shortest Path Algorithms
Floyd’s AlgorithmFloyd’s Algorithm– Suppose we have the following adjaceny matrix
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 7
213
13 2
7 411
9
10
14
v1
v3
v2 v4
9
1
7
13
![Page 12: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/12.jpg)
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 7
213
13 2
7 411
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.)
![Page 13: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/13.jpg)
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 7
213
13 2
7 411
9
10
14
• How about (v2, v4)? (1 + 2) = 3
• Since this is less than 7, we replace the 7 with a 3.
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
13 2
7 411
9
10
14
Matrix Addition
![Page 14: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/14.jpg)
What is the purpose of doing What is the purpose of doing this?this?
![Page 15: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/15.jpg)
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 7 3
213
13 2
7 411
9
10
14
v1
v3
v2
1
7v4
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.
![Page 16: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/16.jpg)
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
13 2
7 411
9
10
14
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
3 2
7 411
9
10
5
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
3 2
7 411
9
10
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
3 2
6 47
9
10
5
Now do the same algorithm with row and column v2.Now do the same algorithm with row and column v2.
After row and column v3.After row and column v3.
5
![Page 17: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/17.jpg)
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
213
3 2
6 47
9
10
v1 v3 v4v2
v1
v4
v3
v2
0
0
0
0
1 3
26
3 2
6 47
8
7
5
Finally, after row and column v4.Finally, after row and column v4.
5
Although we did not see it in this example. It is Although we did not see it in this example. It is possible a square gets updated more than once. possible a square gets updated more than once.
After Floyd’s Algorithm is complete, we have the After Floyd’s Algorithm is complete, we have the shortest path/cost path from any node to any other shortest path/cost path from any node to any other node in the graph. node in the graph.
Time Complexity: O(VTime Complexity: O(V33))
![Page 18: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/18.jpg)
Shortest Path Algorithms
Dijkstra’s AlgorithmDijkstra’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
v211
22 22
99
ss
Greedy pathGreedy path
![Page 19: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/19.jpg)
Dijkstra’s Algorithm
Pick a starting point ss and declare it known (True). We sill start with v1.
known dv pv
known is a true/false value. Whether we have delclared a vertex known (true) or not (false)
dv is the cost from the previous vertex to the current vertex
pv is the previous vertex in the path to the current vertex
V
v1
v2
v3
v4
v1
v3
v2 v4
ss
T 0 0
F 0 0
F 0 0
F 0 0
![Page 20: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/20.jpg)
known dv pvV
v1
v2
v3
v4
F 0 0
F 0 0
F 0 0
F 0 0
v1
v3
v2 v4
9
13
7
1
10 14
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 dv and pv
We have a choice now. We have a choice now.
Do we pick v2 or v4 to explore?Do we pick v2 or v4 to explore?
known dv pvV
v1
v2
v3
v4
T 0 0
F 9 v1
F 13 v1
F 2 v1
![Page 21: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/21.jpg)
v1
v3
v2 v4
9
13
7
1
10 14
11
2
2 4
We pick v4. Why?
Greedy AlgorithmGreedy 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 dv pvV
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
![Page 22: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/22.jpg)
v1
v3
v2 v4
9
13
7
1
10 14
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 dv pvV
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.
![Page 23: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/23.jpg)
v1
v3
v2 v4
9
13
7
1
10 14
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 dv pvV
v1
v2
v3
v4
T 1 v2
T 2 v3
T 4 v4
T 2 v1
![Page 24: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/24.jpg)
So How Do We Use This?known dv pvV
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 pv column.
•Work backwards to the vertex you want to end up in.
Easy!Easy!
Lets look at an example:Lets look at an example:
Let’s say we want the shortest path from v1 to v2. Let’s say we want the shortest path from v1 to v2.
We see that v1 goes into v4 at a cost of 2.We see that v1 goes into v4 at a cost of 2.
Now v4 goes into v3 at a cost of 4.Now v4 goes into v3 at a cost of 4.
Lastly v3 goes into v2 at a cost of 2.Lastly v3 goes into v2 at a cost of 2.
2 + 4 + 2 = 82 + 4 + 2 = 8
![Page 25: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/25.jpg)
v1
v3
v2 v4
9
13
7
1
10 14
11
2
2 4
If we took a direct path from v1 to If we took a direct path from v1 to v2 it would cost us v2 it would cost us 99..
But we found a way to get from v1 But we found a way to get from v1 to v2 at a cost of to v2 at a cost of 8.8.
Time complexity of Dijkstra’s Time complexity of Dijkstra’s Algorithm is O(VAlgorithm is O(V22))
known dv pvV
v1
v2
v3
v4
T 1 v2
T 2 v3
T 4 v4
T 2 v1
![Page 26: Graph Theory Arnold Mesa. 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.](https://reader030.fdocuments.net/reader030/viewer/2022032516/56649c755503460f949289a8/html5/thumbnails/26.jpg)