0% found this document useful (0 votes)
89 views

Graph Algorithms - Terminologies: Outlines: Graphs Part-1

The document defines key terminology used in graph algorithms. It discusses different types of graphs including directed and undirected graphs. It defines graph components like vertices, edges, paths, cycles, and their properties. It also covers graph representations using adjacency matrices and lists.

Uploaded by

Mohammed Hajjaj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views

Graph Algorithms - Terminologies: Outlines: Graphs Part-1

The document defines key terminology used in graph algorithms. It discusses different types of graphs including directed and undirected graphs. It defines graph components like vertices, edges, paths, cycles, and their properties. It also covers graph representations using adjacency matrices and lists.

Uploaded by

Mohammed Hajjaj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Chapter 22

Graph Algorithms - Terminologies

PART-1

Outlines: Graphs Part-1

 Applications on Graphs  Connected Graph &


 Communication Networks Component
 Driving Distance /Time Map  Strongly vs. Weakly
Connected
 Street Map  Symmetric Graph
 Computer Networks  Tree vs. Forest
 Graph Terminology  End vertices (End points)
 Undirected vs. Directed  Parallel edges
 Adjacent Vertices  Number of Edges
 Incident Edges  Sum of Vertex Degrees
 Path & Simple Path  In-degree and Out-degree
 Loops
 Cycles & Simple Cycles  Graph Representation
 Weighted Graph  Adjacency Matrix
 Complete Graph  Adjacency Lists
 Subgraph

1
Applications: Communication Network

 vertex = city, edge = communication link

2
3
8
1 10

4
5
9
11

6
7

Driving Distance/Time Map

 vertex = city,
 edge weight = driving distance/time

2
4 3
8 8
1 6 10
2 4 5
4 4 3
5
9
11
5 6

6 7
7

2
Street Map

 Some streets are one way


 A bidirectional link represented by 2 directed edge
 (5, 9) (9, 5)

2
3
8
1 10

4
5
9
11

6
7

Computer Networks

 Electronic Circuits cslab1a cslab1b

 Printed Circuit Board math.brown.edu


 Integrated Circuits (ICs)

cs.brown.edu
 Computer networks
 Local Area Network (LAN)
 Internet brown.edu

 Web qwest.net
att.net

cox.net
John

Paul
David

3
Graph Terminology

 A graph G = (V, E)
 V = set of vertices (nodes or points)
 E = set of edges (arcs or lines) = subset of V  V
 Thus |E|  |V|2 = O(|V|2)

 In an undirected graph:
 edge(u, v) = edge(v, u)

 In a directed graph:
 edge(u,v) goes from vertex u to vertex v, notated
uv
 edge(u, v) is NOT the same as edge(v, u)

Graph Terminology

A A

B C B C

D D

Directed graph: Undirected graph:

V = {A, B, C, D} V = {A, B, C, D}
E = {(A,B), (A,C), (A,D), (C,B)} E = {(A,B), (A,C), (A,D), (C,B),
(B,A), (C,A), (D,A), (B,C)}

4
Graph Terminology

 Adjacent vertices: connected by an edge


 Vertex v is adjacent to u if and only if (u, v)  E.
 In an undirected graph with edge (u, v), and hence
(v, u), v is adjacent to u and u is adjacent to v.
 Incident edges: on a vertex
 For example, edges:1, 2, and 3 are incident on vertex a.
1
a b a b
2
3
c c

d e d e

Vertex a is adjacent to c and Vertex c is adjacent to a, but


vertex c is adjacent to a vertex a is NOT adjacent to c

Graph Terminology
 A Path in a graph from u to v is a sequence of edges
between vertices w0, w1, …, wk, such that (wi, wi+1)  E, u =
w0 and v = wk, for 0  i  k
 The length of the path is k, the number of edges on the path

a b a b

c c

d e d e

abedce is a path. acde is a path.


cdeb is a path. abec is NOT a path.
bca is NOT a path.

10

5
Graph Terminology
 Loops
 If the graph contains an edge (v, v) from a vertex to itself,
then the path v, v is sometimes referred to as a loop.
a b

d e

 The graphs we will consider will generally be loopless.


 A simple path is a path such that all vertices are distinct, except that the first and
last could be the same.

a b

c abedc is a simple path.


cdec is a simple path.
d e abedce is NOT a simple path.

11

Graph Terminology

 Simple path: no repeated vertices

12

6
Graph Terminology
 Path
 sequence of alternating vertices
and edges
 begins with a vertex
ends with a vertex

V
 each edge is preceded and a b
followed by its endpoints P1
 Simple path
U d X Z
 path such that all its vertices and P2 h
edges are distinct. c e
 Examples
 P1 = (V, X, Z) is a simple path.
W g
P2 = (U, W, X, Y, W, V) is a path

that is not simple.
f
Y

13

Graph Terminology
 Cycles
 A cycle in a directed graph is a path of length at least 2
such that the first vertex on the path is the same as the last
one; if the path is simple, then the cycle is a simple cycle.
a b
abeda is a simple cycle.
c abeceda is a cycle, but is NOT a simple cycle.
abedc is NOT a cycle.
d e
 A cycle in a undirected graph
 A path of length at least 3 such that the first vertex on the path is
the same as the last one.
 The edges on the path are distinct.
a b aba is NOT a cycle.
abedceda is NOT a cycle.
c abedcea is a cycle, but NOT simple.
abea is a simple cycle.
d e
14

7
Graph Terminology
 Cycle
 circular sequence of alternating
vertices and edges
 each edge is preceded and
followed by its endpoints V
 Simple cycle a b
 cycle such that all its vertices and
edges are distinct U d X Z
 Examples C2 h
 C1 = (V, X, Y, W, U, V) is a
c e C1
simple cycle W g
 C2 = (U, W, X, Y, W, V, U) is a
cycle that is not simple
f
Y

15

Graph Terminology
 If each edge in the graph carries a value, then the graph is
called weighted graph.
 A weighted graph is a graph G = (V, E, W), where each
edge, e  E is assigned a real valued weight, W(e).
 A complete graph is a graph with an edge between every
pair of vertices.
 A graph is called complete graph if every vertex is
adjacent to every other vertex.

16

8
Graph Terminology

 Complete Undirected Graph


 has all possible edges

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

17

Graph Terminology

 Subgraph: subset of vertices and edges forming a


graph
 A graph Gs = (Vs, Es) is a subgraph of a graph
G = (V, E) if Vs  V, Es  E, and Es  VsVs.
e
6 6
4 4 4
a d a d a d
1 5 3 1 1

b c b b
2
G is a sub-graph Not a sub-graph
since, Es = {1,4,6}  Vs  Vs =
{1,4}
18

9
Graph Terminology
 connected graph: any two
vertices are connected by
some path
 An undirected graph is
connected, if for every
pair of vertices u and v
there is a path from u to v.
 connected component:
maximal connected subgraph.
E.g., the graph below has 3
connected components.

19

Graph Terminology

 A directed graph is strongly connected if every two


vertices are reachable from each other.
 Note that in a directed graph, the existence of a
path from u to v does not imply there is a path
from v to u.

 A directed graph that is not strongly connected, but


the underlying graph is connected, is called
weakly connected.

 A symmetric digraph is a directed graph,


G = (V, E), such that if (u, v)  E, then (v, u)  E.

20

10
Graph Terminology

 tree - connected undirected graph without cycles

 forest - collection of trees

21

Graph Terminology

22

11
Graph Terminology
 End vertices (or endpoints) of an edge
 U and V are the endpoints of a
 Edges incident on a vertex
 a, d, and b are incident on V
Adjacent vertices V

a b
 U and V are adjacent h j
 Degree of a vertex
U d X Z
 X has degree 5
 Parallel edges c e i
 h and i are parallel edges
W g
 Self-loop
 j is a self-loop f
Y

23

Number of Edges

 Each edge is of the form (u, v), u  v


 Number of such pairs in an n vertex graph is n(n-1)
 Undirected Graph
 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

 Directed Graph
 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)

24

12
Vertex Degree

 degree (of a vertex): # of adjacent vertices


 degree(2) = 2, degree(5) = 3, degree(3) = 1

2
3
8
1 10

4
5
9
11

6
7

25

Sum of Vertex Degrees (Undirected Graph)


 Sum of degrees of all vertex = 2|E|
 Since adjacent vertices each count the adjoining edge,
it will be counted twice

8
10

9
11

 deg(v)  2(# of edges)


vV

26

13
In-Degree of a Vertex (Digraph)
 In-degree is number of incoming edges
 indegree(2) = 1, indegree(8) = 0

2
3
8
1 10

4
5
9
11

6
7

27

Out-Degree of a Vertex (Digraph)


 Out-degree is number of outbound edges
 outdegree(2) = 1, outdegree(8) = 2

2
3
8
1 10

4
5
9
11

6
7

28

14
Sum of In- and Out-Degrees (Digraph)
 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.

29

Graphs

 We will typically express running times in terms of


 |V| = number of vertices, and
 |E| = number of edges
 If |E|  |V|2 the graph is dense
 If |E|  |V| the graph is sparse

 If you know you are dealing with dense or sparse


graphs, different data structures may make sense.

30

15
Graph Representation

 Adjacency Matrix

 Adjacency Lists

31

Adjacency Matrix

 Assume V = {1, 2, …, n}
 An adjacency matrix represents the graph as a
n  n matrix A:
 A[i, j] = 1 if edge(i, j)  E (or weight of edge)
= 0 if edge(i, j)  E

32

16
Adjacency Matrix

 Example:

A 1 2 3 4
1 1
a
d 2
2 4
b c 3
??
3 4

33

Adjacency Matrix

 Example:

A 1 2 3 4
1 1 0 1 1 0
a
d 2 0 0 1 0
2 4
b c 3 0 0 0 0

3 4 0 0 1 0

34

17
Adjacency Matrix

 0/1 n  n matrix, where n = # of vertices


 A(i, j) = 1 iff (i, j) is an edge

1 2 3 4 5
2
3 1 0 1 0 1 0
2 1 0 0 0 1
1
3 0 0 0 0 1
4 4 1 0 0 0 1
5
5 0 1 1 1 0

35

Adjacency Matrix

1 2 3 4 5
2
3 1 0 1 0 1 0
2 1 0 0 0 1
1
3 0 0 0 0 1
4 4 1 0 0 0 1
5
5 0 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

36

18
Adjacency Matrix

1 2 3 4 5
2
3 1 0 0 0 1 0
2 1 0 0 0 1
1
3 0 0 0 0 0
4 4 0 0 0 0 1
5
5 0 1 1 0 0
• Diagonal entries are zero
• Adjacency matrix of a digraph need not be symmetric

37

Adjacency Matrix
 How much storage does the adjacency matrix
require?
 Answer: O(|V|2)

 What is the minimum amount of storage needed


by an adjacency matrix representation of an
undirected graph with 4 vertices? (|V|-1)|V|/2
 Answer: 6 bits
 Undirected graph  matrix is symmetric
 No self-loops  don’t need diagonal

38

19
Adjacency Matrix

 The adjacency matrix is a dense representation


 Usually too much storage for large graphs
 But can be very efficient for small graphs
 If graph is unweighted, there is an additional
advantage in storage for the adjacency matrix
presentation; rather than using one word of
computer memory for each matrix entry, the
adjacency matrix uses only one bit per entry.
 Prefer to be a directed graph.
 Most large interesting graphs are sparse
 For this reason the adjacency list is often a more
appropriate representation

39

Adjacency List
 Adjacency list: for each vertex v  V, store a list of vertices adjacent to v.
 Adjacency list for vertex i is a linear list of vertices adjacent from vertex i
 Each adjacency list is a chain.

2
2 aList[1] 4
3
[2] 1 5

1 [3] 5
[4] 5 1
4
5
aList[5] 2 4 3

# of chain nodes = 2|E| (undirected graph)


# of chain nodes = |E| (digraph)

40

20
Adjacency List

41

Adjacency List

 How much storage is required?


 The degree of a vertex v = # incident edges
Directed graphs have in-degree and out-degree
 For directed graphs:
 # of items in adjacency lists is  out-degree(v) = |E|
takes (V + E) storage (Why?)
 For undirected graphs:
# items in adjacency lists is  degree(v) = 2|E|
also (V + E) storage

 So: Adjacency lists take O(V + E) storage

42

21

You might also like