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

1 PDF

The document provides an introduction to graphs, including definitions of basic graph terminology. It discusses what graphs are comprised of (vertices and edges), different types of edges (directed, undirected), and various graph concepts like paths, cycles, and connectivity. It also introduces graph representations like the adjacency matrix and discusses algorithms like breadth-first search.

Uploaded by

Khoa Tran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views

1 PDF

The document provides an introduction to graphs, including definitions of basic graph terminology. It discusses what graphs are comprised of (vertices and edges), different types of edges (directed, undirected), and various graph concepts like paths, cycles, and connectivity. It also introduces graph representations like the adjacency matrix and discusses algorithms like breadth-first search.

Uploaded by

Khoa Tran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Introduction to graphs

1
Example

➢ Computer network
➢ Facebook friend
network
➢ Road map (Google
map)
➢ Airlines routes
➢ Family trees
2
Graphs
➢ A graph is a pair (V, E), where
❖ V is a set of nodes, called vertices
❖ E is a collection of pairs of vertices, called edges
❖ Vertices and edges are positions and store elements
➢ Example:
❖ A vertex represents an airport and stores the three-letter
airport code
❖ An edge represents a flight route between two airports and
stores the mileage of the route
OR 84 PVD
18 4
SFO D 9 14
3 80 2
4 LGA
17
33

2
7

HNL 255 3 138 10


9 9
5 LAX
123 7 11
DF 20
3 W
MIA 3
Edge Types
➢ Directed edge flight
OR
❖ ordered pair of vertices (u,v) PVD
❖ first vertex u is the origin
D AA 1206
❖ second vertex v is the
destination
❖ e.g., a flight OR 849
PVD
➢ Undirected edge D mile
❖ unordered pair of vertices (u,v)
❖ e.g., a flight route
s
➢ Directed graph
❖ all the edges are directed
❖ e.g., route network
➢ Undirected graph
❖ all the edges are undirected
❖ e.g., flight network
4
Terminology
➢ End vertices (or endpoints)
of an edge V
❖ U and V are the endpoints a b
of a
j
h
➢ Edges incident on a vertex U d X Z
❖ a, d, and b are incident on
V c e
➢ Adjacent vertices W g
❖ U and V are adjacent
➢ Degree of a vertex f
❖ X has degree 4 Y
➢ Self-loop
❖ j is a self-loop

5
Terminology (cont.)
➢ Path
❖ sequence of alternating V
vertices and edges a b
❖ begins with a vertex P
❖ ends with a vertex
U
d X
1 Z
❖ each edge is preceded and
followed by its endpoints
P h
c e
➢ Simple path 2
❖ path such that all its W g
vertices and edges are
distinct f
➢ Examples Y
❖ P1=(V,b,X,h,Z) is a simple
path
❖ P2=(U,c,W,e,X,g,Y,f,W,d,V) 6
is a path that is not simple
Terminology (cont.)
➢ Cycle
❖ circular sequence of V
alternating vertices and a b
edges
❖ each edge is preceded and
U
d X Z
followed by its endpoints C h
➢ Simple cycle e
c 2 C
❖ cycle such that all its W
vertices and edges are g1
distinct
➢ Examples f
Y
❖ C1=(V,b,X,g,Y,f,W,c,U,a,↵)
is a simple cycle
❖ C2=(U,c,W,e,X,g,Y,f,W,d,V,a, 7
↵) is a cycle that is not
Weighted and unweighted
graphs
5

7
2
3
9 3

5 4 7

1
2

G = (V, E) is a weighted graph if each edge


(u,v)∈E is assigned a weight
➢ Example of weighted graph?
➢ Example of unweighted graph?
8
Graph Presentation

G = (V, E); V = {0, 1,…, n-1}


➢ Present a graph by an adjacency matrix
❖ A[u][v] = 1 if (u,v) ∈ E
❖ A[u][v] = 0 Otherwise
0 1 2 3 4

0 1 0 0 1 1 0 0
1 0 0 1 0 1
2
2 0 0 0 1 1
3 1 0 0 0 0
3 4
4 0 0 0 1 0
9
Graph presentation

G = (V, E); V = {0, 1,…, n-1}

➢ Present a graph by edge list structure

0 1 3 .
1 2 4 .
2 0 3 4 .
3

4 3 .
10
Subgraphs
➢ A subgraph S of a
graph G is a graph
such that
❖ The vertices of S are a
subset of the vertices of Subgraph
G
❖ The edges of S are a
subset of the edges of
G
➢ A spanning subgraph
of G is a subgraph that
contains all the Spanning subgraph
vertices of G 11
Connectivity
➢ A graph is connected
if there is a path
between every pair
of vertices
Connected graph
➢ A connected
component of a
graph G is a maximal
connected subgraph
of G

Non connected graph with two


connected components 12
Unrooted trees
An unrooted tree is an
undirected graph T
such that
❖ T is connected
Tree
❖ T has no cycles

Note: This definition of


tree is different from
the one of a rooted tree

Forest
13
Spanning Trees and
Forests
➢ A spanning tree of a
connected graph is a
spanning subgraph that
is a tree
➢ A spanning tree is not
unique unless the graph
is a tree Graph
➢ Spanning trees have
applications to the
design of communication
networks

Spanning tree
14
Exercise
➢Represent the following graph by
matrix and linked lists. Determine
the number of connected
components
G2
G1 G3

15
Breadth-First Search

L0
A

L1
B C D

L2
E F

16
Breadth-First Search

➢ Breadth-first search (BFS)


is a general technique for
traversing a graph

➢ if vertex u is visited before


vertex v, then adjacent
vertices of u will be visited
before adjacent vertices of
v

➢ A BFS traversal is used to


determine whether G is
connected
17
Breadth-First Search
3 3
➢ A BFS traversal is used to 3
determine whether G is 3
connected 2
2
2
➢ BFS can be used to find a 3
3 4
path with the minimum
4 3 2 1 2
number of edges between
two given vertices 3 3 4
2
➢ Applications: 2
2
3
3
❖ Crawlers in search 3
engines 3 3
❖ Social network website 4 Shortest path to
Goa goal
l

18
Breadth-First Search

1
2
5

4 6

Take Node 1 as
start

19
Breadth-First Search

1
2
5

4 6

Node 2 is visited next as it was unvisited and at distance of one


edge

20
Breadth-First Search

1
2
5

4 6

Node 5 is visited next as it was unvisited


and at distance of 1 edge from node 1

21
Breadth-First Search

1
2
5

4 6

Node 3 is visited next as it was unvisited


and at distance of 1 edge from node 2

22
Breadth-First Search

1
2
5

4 6

Node 4 is visited next as it was unvisited


and at distance of 1 edge from node 2

23
Breadth-First Search

1
2
5

4 6

Node 6 is visited next as it was unvisited


and at distance of 1 edge from node 5

24
Breadth-First Search
BreadthFirstSearch (G, s) { 1
2 3
1 6
5
(1) Set a queue Q empty;
(3) enqueue s onto Q; 4 8
2

(2) Mark s as visited;


S 2 5
4 7
6
(4) while (Q not empty) {
(5) w = dequeue Q;
(6) for (each u adjacent w) Start with all White
vertices except s
(7) if ( u not visited) {
(8) visit and enqueue u onto Q;
(9) mark u as visited Q S
} =
}

25
Breadth-First Search
BreadthFirstSearch (G, s) { 1
2 3
1 6
5
(1) Set a queue Q empty;
(3) enqueue s onto Q; 4 8
2

(2) ark s as visited;


S 2 5
4 7
6
(4) while (Q not empty) {
(5) w = dequeue Q;
(6) for (each u adjacent w) After first time through
loop
(7) if ( u not visited) {
(8) visit and enqueue u onto Q;
(9) mark u as visited Q 1 2
} =
}
}
26
Breadth-First Search
BreadthFirstSearch (G, s) { 1
2 3
1 6
5
(1) Set a queue Q empty;
(3) enqueue s onto Q; 4 8
2

(2) ark s as visited;


S 2 5
4 7
6
(4) while (Q not empty) {
(5) w = dequeue Q;
(6) for (each u adjacent w) After second time
through loop
(7) if ( u not visited) {
(8) visit and enqueue u onto Q;
(9) mark u as visited Q 2 3
} =
}

27
Breadth-First Search
BreadthFirstSearch (G, s) { 1
2 3
1 6
5
(1) Set a queue Q empty;
(3) enqueue s onto Q; 4 8
2

(2) ark s as visited;


S 2 5
4 7
6
(4) while (Q not empty) {
(5) w = dequeue Q;
(6) for (each u adjacent w) After third time
through loop
(7) if ( u not visited) {
(8) visit and enqueue u onto Q;
(9) mark u as visited Q 3 4 5
} =
}

28
Breadth-First Search
BreadthFirstSearch (G, s) { 1
2 3
1 6
5
(1) Set a queue Q empty;
(3) enqueue s onto Q; 4 8
2

(2) Mark s as visited;


S 2 5
4 7
6
(4) while (Q not empty) {
(5) w = dequeue Q;
(6) for (each u adjacent w) After fourht time
through loop
(7) if ( u not visited) {
(8) visit and enqueue u onto Q;
(9) mark u as visited Q 4 5 6
} =
}
}
29
Breadth-First Search
// Travel on G=(V, E) by BFS
BreadthFirstSearch_traversal (G) {
(10) for (each v ∈V)
(11) mark v as unvisited;
(12) for (each v ∈V)
(13) if (v not visited)
(14) BreadthFirstSearch(v);
}

Complexity: BFS on a graph with n vertices and m edges


takes O(n + m ) time

30
Exercises

➢ Use the BFS to determine the number of connected


components.

➢ Use the BFS to find the path with minimum number


of edges between the vertices a and b. Consider that
the set of vertices is alphabetically ordered.

31
Depth-First Search
➢ Depth-first search (DFS) is a 1
general technique for
traversing a graph
2 7 8
➢ DFS starts from a node and
explores as far as possible 1
along each branch before 3 6 9
2
backtracking.
1 1
4 5
➢ Applications: 0 1
❖ Scheduling jobs
❖ Check if a network is
connected

32
Depth-First Search
1
//Depth first search from vertex v
DepthFirstSearch (v) {
for (each u adjacent v) 2 7 8
if (u not visited) {
visit and mark u as visited; 1
3 6 9
DepthFirstSearch (u); 2
} 1 1
} 4 5
0 1

33
Depth-First Search
//Travel on G=(V, E) by DFS
DepthFirstSearch_traversal (G) {
(10) for (each v ∈V)
(11) mark v as unvisted;
(12) for (each v ∈V)
(13) if (v not visited)
(14) DepthFirstSearch(v);
}

DFS on a graph with n vertices and m edges takes O(n


+ m ) time

34
Travel on graphs

BFS DFS

1 1

2 3 4 2 7 8

1
5 6 7 8 3 6 9
2

1 1 1 1 1
9 4 5
0 1 2 0 1

35
Exercises

Use the DFS to determine the number of connected


components

36

You might also like