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

Upload: deirdre-dixon

Post on 06-Jan-2018

215 views

Category:

Documents


0 download

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

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)