graph theory arnold mesa. basic concepts n a graph g = (v,e) is defined by a set of vertices and...

26
Graph Theory Arnold Mesa

Upload: karson-cresswell

Post on 14-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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