Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also...

48
Graphs 황황황 Fall 2010 CSE, POSTECH

description

3 3 Graphs Undirected edge has no orientation. Directed edge has an orientation (u,v). Undirected graph  no oriented edge. Directed graph  every edge has an orientation. u v directed edge u v undirected edge

Transcript of Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also...

Page 1: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

Graphs

황승원Fall 2010CSE, POSTECH

Page 2: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

22

Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two vertices. Edges are also called arcs and lines. Vertices i and j are adjacent vertices iff (i,j) is an e

dge in the graph The edge (i,j) is incident on the vertices i and j

Page 3: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

33

Graphs Undirected edge has no orientation. Directed edge has an orientation (u,v). Undirected graph no oriented edge. Directed graph every edge has an orientation.

u vdirected edge

u vundirected edge

Page 4: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

4

Undirected Graph

23

8101

45 9 11

67

Page 5: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

5

Directed Graph (Digraph)

23

8101

45 9 11

67

Page 6: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

6

Applications—Communication Network

Vertex = city, edge = communication link.

23

8101

45 9 11

67

Page 7: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

7

Driving Distance/Time Map

Vertex = city, edge weight = driving distance/time.

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

Page 8: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

8

Street Map

Some streets are one way.

23

8101

45 9 11

67

Page 9: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

9

Complete Undirected Graph

Has all possible edges.

n = 1 n = 2 n = 3 n = 4

Page 10: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

10

Number Of Edges—Undirected Graph

Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is n(n-

1). Since edge (u,v) is the same as edge (v,u), the

number of edges in a complete undirected graph is n(n-1) /2.

Number of edges in an undirected graph is <= n(n-1)/2.

Page 11: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

11

Number Of Edges—Directed Graph

Each edge is of the form (u,v), u != v. Number of such pairs in an n vertex graph is

n(n-1). Since edge (u,v) is not the same as edge (v,u),

the number of edges in a complete directed graph is n(n-1).

Number of edges in a directed graph is <= n(n-1).

Page 12: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

12

Vertex Degree

Number of edges incident to vertex.degree(2) = 2, degree(5) = 3, degree(3) = 1

23

8101

45 9 11

67

Page 13: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

13

Sum Of Vertex Degrees

Sum of degrees = 2e (e is number of edges)why?

810

9 11

Page 14: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

14

In-Degree Of A Vertex

in-degree is number of incoming edgesindegree(2) = 1, indegree(8) = 0

23

8101

45 9 11

67

Page 15: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

15

Out-Degree Of A Vertex

out-degree is number of outbound edgesoutdegree(2) = 1, outdegree(8) = 2

23

8101

45 9 11

67

Page 16: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

16

Sum Of In- And Out-Degrees

each edge contributes 1 to the in-degree of some vertex and 1 to the out-degree of some other vertex

sum of in-degrees = sum of out-degrees = e,where e is the number of edges in the digraph

Page 17: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

1717

Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.

Page 18: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

18

Path Finding

Path between 1 and 8.

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

Path length is 20.

Page 19: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

19

Another Path Between 1 and 8

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

Path length is 28.

Page 20: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

20

Example Of No Path

No path between 2 and 9.

23

8101

45 9 11

67

Page 21: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

21

Connected Graph Undirected graph. There is a path between every pair of vertices.

Page 22: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

22

Example Of Not Connected

23

8101

45 9 11

67

Page 23: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

23

Connected Graph Example

23

8101

45 9 11

67

Page 24: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

24

Connected Components

23

8101

45 9 11

67

Page 25: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

25

Connected Component A maximal subgraph that is connected.

Cannot add vertices and edges from original graph and retain connectedness.

A connected graph has exactly 1 component.

Page 26: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

26

Not A Component

23

8101

45 9 11

67

Page 27: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

27

Communication Network

Each edge is a link that can be constructed (i.e., a feasible link).

23

8101

45 9 11

67

Page 28: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

28

Communication Network Problems Is the network connected?

Can we communicate between every pair of cities?• Find the components. Want to construct smallest number of feasible

links so that resulting network is connected.

Page 29: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

29

Cycles And Connectedness

23

8101

45 9 11

67

Removal of an edge that is on a cycle does not affect connectedness.

Page 30: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

30

Cycles And Connectedness

23

8101

45 9 11

67

Connected subgraph with all vertices and minimum number of edges has no cycles.

Page 31: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

31

Tree Connected graph that has no cycles. n vertex connected graph with n-1 edges.

Page 32: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

32

Spanning Tree Subgraph that includes all vertices of the original g

raph. Subgraph is a tree.

If original graph has n vertices, the spanning tree has n vertices and n-1 edges.

Page 33: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

33

Minimum Cost Spanning Tree

Tree cost is sum of edge weights/costs.

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

82

Page 34: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

34

A Spanning Tree

Spanning tree cost = 51.

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

82

Page 35: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

35

Minimum Cost Spanning Tree

Spanning tree cost = 41.

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

82

Page 36: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

36

Application: Wireless Broadcast

Weight=Power needed Source=1

23

8101

45 9 11

67

48

6

6

7

5

24

4 53

82

Page 37: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

37

Graph Representation Adjacency Matrix Adjacency Lists

Linked Adjacency Lists Array Adjacency Lists

Page 38: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

38

Adjacency Matrix 0/1 n x n matrix, where n = # of vertices A(i,j) = 1 iff (i,j) is an edge

23

1

45

1 2 3 4 512345

0 1 0 1 01 0 0 0 10 0 0 0 11 0 0 0 10 1 1 1 0

Page 39: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

39

Adjacency Matrix Properties

23

1

45

1 2 3 4 512345

0 1 0 1 01 0 0 0 10 0 0 0 11 0 0 0 10 1 1 1 0

•Diagonal entries are zero.

•Adjacency matrix of an undirected graph is symmetric.

A(i,j) = A(j,i) for all i and j.

Page 40: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

40

Adjacency Matrix (Digraph)

23

1

45

1 2 3 4 512345

0 0 0 1 01 0 0 0 10 0 0 0 00 0 0 0 10 1 1 0 0

•Diagonal entries are zero.

•Adjacency matrix of a digraph need not be symmetric.

Page 41: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

41

Adjacency Matrix n2 bits of space For an undirected graph, may store only lower or

upper triangle (exclude diagonal). (n-1)n/2 bits

O(n) time to find vertex degree and/or vertices adjacent to a given vertex.

Page 42: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

42

Adjacency Lists Adjacency list for vertex i is a linear list of vertices adjacent from vertex i. An array of n adjacency lists.

23

1

45

aList[1] = (2,4)

aList[2] = (1,5)

aList[3] = (5)

aList[4] = (5,1)

aList[5] = (2,4,3)

Page 43: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

43

Linked Adjacency Lists Each adjacency list is a chain.

23

1

45

aList[1]

aList[5]

[2][3][4]

2 41 555 12 4 3

Array Length = n

# of chain nodes = 2e (undirected graph)

# of chain nodes = e (digraph)

Page 44: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

44

Array Adjacency Lists Each adjacency list is an array list.

23

1

45

aList[1]

aList[5]

[2][3][4]

2 41 555 12 4 3

Array Length = n

# of list elements = 2e (undirected graph)

# of list elements = e (digraph; when sparse e << n)

Page 45: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

45

Weighted Graphs Cost adjacency matrix.

C(i,j) = cost of edge (i,j) Adjacency lists => each list element is a pair

(adjacent vertex, edge weight)

Page 46: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

46

Number Of Java Classes Needed Graph representations

Adjacency Matrix Adjacency Lists

Linked Adjacency Lists Array Adjacency Lists

3 representations Graph types

Directed and undirected. Weighted and unweighted. 2 x 2 = 4 graph types

3 x 4 = 12 Java classes

Page 47: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

47

Abstract Methods Of Graph

// ADT methods public abstract int vertices(); public abstract int edges(); public abstract boolean existsEdge(int i, int j); public abstract void putEdge(Object theEdge); public abstract void removeEdge(int i, int j); public abstract int degree(int i); public abstract int inDegree(int i); public abstract int outDegree(int i);

Page 48: Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.

4848

Coming Up Next READING: Ch 17.1~7 NEXT: Graph Search (Ch 17.8)