Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
178 views

Graphs: Nitin Upadhyay

The document discusses different types of graphs and their representations. It defines graphs, applications of graphs, and graph terminology. It describes special graph structures like Hamiltonian cycles, complete graphs, cycles, wheels, n-cubes, bipartite graphs, and complete bipartite graphs. It also discusses graph representations including adjacency matrix, incidence matrix, edge-set, adjacency-set, and adjacency list representations.

Uploaded by

purijatin
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
178 views

Graphs: Nitin Upadhyay

The document discusses different types of graphs and their representations. It defines graphs, applications of graphs, and graph terminology. It describes special graph structures like Hamiltonian cycles, complete graphs, cycles, wheels, n-cubes, bipartite graphs, and complete bipartite graphs. It also discusses graph representations including adjacency matrix, incidence matrix, edge-set, adjacency-set, and adjacency list representations.

Uploaded by

purijatin
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Graphs

Nitin Upadhyay
February 25, 2006
Discussion
 What is a Graph?

 Applications of Graphs

 Categorization

 Terminology
Discussion

 Hamiltonian Cycle

 Special Graph Structures

 Graph Representations
Hamiltonian Cycle

 Hamiltonian Cycle: A Cycle that contains all


the vertices of the graph

1 3
1,4,5,3,2,1 is a Hamiltonian
2 Cycle
4
5
Special Graph Structures

Special cases of undirected graph structures:


 Complete graphs K
n

 Cycles Cn
 Wheels Wn
 n-Cubes Qn
 Bipartite graphs
 Complete bipartite graphs Km,n
Revisiting Paths and
cycles
 A path is a sequence of nodes
v1, v2, …, vN such that (vi,vi+1)∈E for 0<i<N

 The length of the path is N-1.


 Simple path: all vi are distinct, 0<i<N

 A cycle is a path such that v1=vN


 An acyclic graph has no cycles
Complete Graphs

 For any n∈N, a complete graph on n vertices,


Kn, is a simple graph with n nodes in which
every node is adjacent to every other node: ∀
u,v∈V: u≠v↔{u,v}∈E.

K1 K2 K3 K4
K5 K6
n −1
n(n − 1)
Note that Kn has ∑i = 2 edges.
i =1
Cycles

 For any n≥3, a cycle on n vertices, Cn, is a


simple graph where V={v1,v2,… ,vn} and
E={{v1,v2},{v2,v3},…,{vn−1,vn},{vn,v1}}.

C3 C4 C5 C6 C8
C7
How many edges are there in Cn?
Wheels

 For any n≥3, a wheel Wn, is a simple graph


obtained by taking the cycle Cn and adding
one extra vertex vhub and n extra edges
{{vhub,v1}, {vhub,v2},…,{vhub,vn}}.

W3 W4 W5 W6 W8
W7
How many edges are there in Wn?
n-cubes (hypercubes)

 For any n∈N, the hypercube Qn is a simple


graph consisting of two copies of Qn-1
connected together at corresponding nodes.
Q0 has 1 node.

Q0
Q1 Q2 Q4
Q3
Number of vertices: 2n. Number of edges:Exercise to try!
Bipartite Graphs

 Let G=(V,E) be a graph, G is said to be


bipartite graph:
 If its vertex set V can be partitioned into two
nonempty disjoint subsets V1 and V2, called
a bipartition.
 And edge connecting one of its end in V1 and
other with V2.
Complete Bipartite Graphs

 A complete bipartite graph is a bipartite graph


with partition V1 and V2 in which each vertex
of V1 is joined by an edge to each vertex of
V2.
 A complete bipartite graph with | V1 | = m and
| V2 | = n is denoted as Km,n.
Subgraphs

 A subgraph of a graph G=(V, E) is a graph


H=(W, F) where W⊆V and F⊆E.

G H
Graph Representations

 Adjacency-matrix representation
 Incidence Matrix representation
 Edge-set representation
 Adjacency-set representation
 Adjacency List
Adjacency-matrix
representation
Adjacency Matrix Representation
A
B C  One simple way of
D E representing a graph
F is the adjacency
G
matrix
AB CD EF G  A 2-D array has a
A
B mark at [i][j] if there
C is an edge from node i
D to node j
E
F
 The adjacency matrix
G is symmetric about
the main diagonal
Adjacency-matrix
representation
 Adjacency Matrix (A)
 The Adjacency Matrix A=(ai,j) of a graph G=(V,E)
with n nodes is an nXn matrix
 Each element of A is either 0 or 1, depending on
the adjacency of the nodes.

1 if (i,j) Є E
aij =
0 otherwise
Adjacency-matrix
representation
 Find the adjacency matrices of the following
graphs 1 2 3 4 5

1 3 1 0 1 1 1 0
2 1 0 1 0 0
2 3 1 1 0 0 1

4 4 1 0 0 0 1

5 5 0 0 1 1 0

1 2 3
1 3 1 0 1 0
2 0 0 1
2 3 1 1 0
Adjacency-matrix
representation
Representation
 An adjacency matrix
A
B C can equally well be
E used for digraphs
D
(directed graphs)
F
G  A 2-D array has a
AB CD EF G mark at [i][j] if there
A
B
is an edge from node i
C to node j
D
E
F
G
Incidence Matrices

 Let G = (V, E) be an undirected graph and v1,


v2, …, vn be the vertices and e1, e2, …, em be
the edges of G. Then the incidence matrix
with respect to this ordering of V and E is the
n x m matrix M = [mij], where
1 when edge ej is incident with vi,
mij =
0 otherwise
Incidence Matrix Example

 Represent the graph shown below with an


incidence matrix.
e1 e2 e3 e4 e5 e6 e7 e8 e9
v1 v2 v3
v 1 1 1 0 0 0 0 0 0 0
v 2 1 0 
e1 e3
 0 1 1 1 1 0 0
e6

v3  0 0
e7

0 1 0 0 0 1 1
e4

 
e2

e5

e8

v4  x x x x x x x x x
v4 e9 v5 v6 v5  x x x x x x x x x
 
v6  x x x x x x x x x 

For your exercise


Edge-set representation
 An edge-set representation uses a set of nodes and a set of
edges
 The sets might be represented by, say, linked lists

 The set links are stored in the nodes and edges themselves

 The only other information in a node is its element (that is, its
value)—it does not hold information about its edges
 The only other information in an edge is its source and
destination (and attribute, if any)
 If the graph is undirected, we keep links to both nodes, but don’t

distinguish between source and destination


 This representation makes it easy to find nodes from an edge,
but you must search to find an edge from a node
 This is seldom a good representation
Edge-set representation
nodeSet = {A, B, C, D, E, F, G}
 edge
q
A
p B C edgeSet = { p: (A, E),
t r
D E q: (B, C), r: (E, B),
v
s u
w F s: (D, D), t: (D, A),
G
u: (E, G), v: (F, E),
 Here we have a set of nodes,
and each node contains only its w: (G, D) }
element (not shown)
 Each edge contains references to its source
and its destination (and its attribute, if any)
Adjacency-set
representation
 An adjacency-set representation uses a set
of nodes
 Each node contains a reference to the set of its
edges
 For a directed graph, a node might only know
about (have references to) its out-edges
 Thus, there is not one single edge set, but
rather a separate edge set for each node
 Each edge would contain its attribute (if any) and
its destination (and possibly its source)
Adjacency-set
representation
A {p} p: (A, E)
 Adjacency B {q} q: (B, C)
q
A C {} r: (E, B)
p B C
t r
D { s, t } s: (D, D)
D E
v t: (D, A)
s u E { r, u }
w F
G F {v} u: (E, G)
 Here we have a set of v: (F, E)
G {w}
nodes, and each node
w: (G, D)
refers to a set of edges
 Each edge contains references to its
source and its destination (and its
attribute, if any)
Adjacency-set
representation
 If the edges have no associated attribute, there is no
need for a separate Edge class
 Instead, each node can refer to a set of its neighbors
 In this representation, the edges would be implicit in the
connections between nodes, not a separate data structure
 For an undirected graph, the node would have
references to all the nodes adjacent to it
 For a directed graph, the node might have:
 references to all the nodes adjacent to it, or
 references to only those adjacent nodes connected by an
out-edge from this node
Adjacency-set
representation A {E}
 Adjacency B {C}
A
B C C {}

D E D { D, A }
F E { B, G }
G
F {E}
 Here we have a set of
G {D}
nodes, and each node
refers to a set of other
(pointed to) nodes
 The edges are implicit
Adjacency List

 An Adjacency list is an array of lists, each list


showing the vertices a given vertex is
adjacent to

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

5 5
Adjacency List

 Adjacency List of a Weighted Graph


 The weight is included in the list

9 1 2 4
1 3
2 3 5
4 2 5 3 2 5
1 9
Questions

Questions ?

You might also like