Understanding Graph Theory Basics
Understanding Graph Theory Basics
u v
u v
Definitions – Edge Type
Loop: A loop is an edge whose endpoints are
equal i.e., an edge joining a vertex to it self is called
a loop. Represented as {u, u} = {u}
w
Definitions – Graph Type
Multigraph: G(V,E), consists of set of vertices V, set of
Edges E and a function f from E to {{u, v}| u, v
V, u ≠ v}. The edges e1 and e2 are called multiple or parallel
edges if f (e1) = f (e2).No loops are allowed.
Representation Example: V = {u, v, w}, E = {e1, e2, e3}
u
e1 e2
w
e3
v
Definitions – Graph Type
Pseudograph: G(V,E), consists of set of vertices V, set of Edges
E and a function F from E to {{u, v}| u, v Î V}. Loops and multiple
edges are allowed in such a graph.
Representation Example: V = {u, v, w}, E = {e1, e2, e3, e4}
u
e1 w e4
e2
v e3
Definitions – Graph Type
Directed Graph: G(V, E), set of vertices V, and set of Edges E,
that are ordered pair of elements of V (directed edges)
Representation Example: G(V, E), V = {u, v, w}, E = {(u, v), (v,
w), (w, u)}
u v
w
Definitions – Graph Type
Directed Multigraph: G(V,E), consists of set of vertices V, set
of Edges E and a function f from E to {{u, v}| u, v V}. The
edges e1 and e2 are multiple edges if f(e1) = f(e2)
Representation Example: V = {u, v, w}, E = {e1, e2, e3, e4}
u
w e4
e1 e2
v e3
Definitions – Graph Type
Degree of Vertex (deg (v)): the number of edges incident on a vertex. A loop contributes twice to the degree
(why?).
Representation Example: For V = {u, v, w} , E = { {u, w}, {u, v} }, deg (u) = 2, deg (v) = 1, deg (w) = 1, deg
(k) = 0, w and v are pendant , k is isolated
u v
k
w
Terminology – Directed graphs
For the edge (u, v), u is adjacent to v OR v is adjacent from u, u – Initial vertex, v – Terminal vertex
Representation Example: For V = {u, v, w} , E = { (u, w), ( v, w), (u, v) }, deg- (u) = 0, deg+ (u) = 2, deg-
(v) = 1,
deg+ (v) = 1, and deg- (w) = 2, deg+ (w) = 0
u v
w
Simple graphs – special cases
Complete graph: Kn, is the simple graph that contains exactly
one edge between each pair of distinct vertices.
K1 K2 K3
K4
Simple graphs – special cases
Cycle: Cn, n ≥ 3 consists of n vertices v1, v2, v3 … vn and edges
{v1, v2}, {v2, v3}, {v3, v4} … {vn-1, vn}, {vn, v1}
Representation Example: C3, C4
C3 C4
Simple graphs – special cases
Wheels: Wn, obtained by adding additional vertex to Cn and
connecting all vertices to this new vertex by new edges.
Representation Example: W3, W4
W3 W4
Bipartite graphs
In a simple graph G, if V can be partitioned into two disjoint sets V1 and V2
such that every edge in the graph connects a vertex in V1 and a vertex V2 (so
that no edge in G connects either two vertices in V1 or two vertices in V2)
Application example: Representing Relations
Representation example: V1 = {v1, v2, v3} and V2 = {v4, v5, v6},
v4
v1
v5
v2
v6
v3
V1 V2
Complete Bipartite graphs
Km,n is the graph that has its vertex set portioned into two
subsets of m and n vertices, respectively There is an edge
between two vertices if and only if one vertex is in the first
subset and the other vertex is in the second subset.
Representation example: K2,3, K3,3
K2,3 K3,3
Subgraphs
A subgraph of a graph G = (V, E) is a graph H =(V’, E’) where V’ is a
subset of V and E’ is a subset of E
Application example: solving sub-problems within a graph
Representation example: V = {u, v, w}, E = ({u, v}, {v, w}, {w, u}},
H1 , H2
u u u
v w v w v
G H1 H2
Subgraphs
G = G1 U G2 wherein E = E1 U E2 and V = V1 U V2, G, G1 and G2 are
simple graphs of G
u
u
w v
w w v
G1 G2 G
Representation
Incidence (Matrix): Most useful when information about
edges is more desirable than information about vertices.
e1 e2 e3
u
v 1 0 1
e1 e2
u 1 1 0
v w w 0 1 1
e3
Representation- Adjacency Matrix
There is an N x N matrix, where |V| = N , the Adjacenct Matrix
(NxN) A = [aij]
v u w
u
v 0 1 1
u 1 0 1
v w
w 1 1 0
Representation- Adjacency Matrix
Example: directed Graph G (V, E)
v u w
u
v 0 1 0
u 0 0 1
v w
w 1 0 0
Representation- Adjacency List
Each node (vertex) has a list of which nodes (vertex) it is adjacent
u
node Adjacency List
u v,w
v w, u
v w
w u,v
Graph - Isomorphism
G1 = (V1, E1) and G2 = (V2, E2) are isomorphic if:
There is a one-to-one and onto function f from V1 to V2 with the property
that
a and b are adjacent in G1 if and only if f (a) and f (b) are adjacent in G2, for all a and
b in V1.
Function f is called isomorphism
Application Example:
In chemistry, to find if two compounds have the same structure
Graph - Isomorphism
Representation example: G1 = (V1, E1) , G2 = (V2, E2)
f(u1) = v1, f(u2) = v4, f(u3) = v3, f(u4) = v2,
u1 u2 v1 v2
u3 u4 v4
v3
Connectivity
Basic Idea: In a Graph Reachability among vertices by
traversing the edges
Application Example:
- In a city to city road-network, if one city can be reached
from another city.
- Problems if determining whether a message can be sent
between two computer using intermediate links
- Efficiently planning routes for data delivery in the
Internet
Connectivity – Path
A Path is a sequence of edges that begins at a vertex
of a graph and travels along edges of the graph,
always connecting pairs of adjacent vertices.
2
1 v
3
u
4 5
Connectivity – Path
Definition for Directed Graphs
A Path of length n (> 0) from u to v in G is a sequence of n
edges e1, e2 , e3, …, en of G such that f (e1) = (xo, x1), f (e2) = (x1,
x2), …, f (en) = (xn-1, xn), where x0 = u and xn = v. A path is said
to pass through x0, x1, …, xn or traverse e1, e2 , e3, …, en
v2 v5
Connectivity – Connectedness
Undirected Graph
v3
v5
v1
v2
v4
Connectivity – Connectedness
Directed Graph
A directed graph is strongly connected if there is a path from
a to b and from b to a whenever a and b are vertices in the
graph
A directed graph is weakly connected if there is a
(undirected) path between every two vertices in the underlying
undirected path
G1 G2 G3
Connectivity – Connectedness
Directed Graph
Strongly connected Components: subgraphs of a
Graph G that are strongly connected
Representation example: G1 is the strongly
connected component in G
G G1
Euler - definitions
An Eulerian path (Eulerian trail, Euler walk) in a graph is a path that
uses each edge precisely once. If such a path exists, the graph is called
traversable.
a b
c d e
The problem in our language:
For every node besides a and b, T uses an edge to exit for each
edge it uses to enter. Thus, the degree of the node is even.
a b
f c d
c d
e
Delete the simple path:
{a,b}, {b,c}, {c,f}, {f,a}
c d
a b
f c d
“Splice” the circuits in the 2 graphs:
{a,b}, {b,c}, {c,f}, {f,a}
“+”
e {c,d}, {d,e}, {e,c}
“=“
{a,b}, {b,c}, {c,d}, {d,e}, {e,c}, {c,f}
{f,a}
Euler Circuit
1. Circuit C := a circuit in G beginning at an arbitrary vertex v.
1. Add edges successively to form a path that returns to this vertex.
2. H := G – above circuit C
3. While H has edges
1. Sub-circuit sc := a circuit that begins at a vertex in H that is also in C (e.g., vertex “c”)
2. H := H – sc (- all isolated vertices)
3. Circuit := circuit C “spliced” with sub-circuit sc
4. Circuit C has the Euler circuit.
Representation- Incidence Matrix
e1 e2 e3 e4 e5 e6 e7
e1
a b a 1 0 0 0 0 0 1
e2 b 1 1 0 0 0 0 0
e7
e3 c 0 1 1 0 1 1 0
f c d
d 0 0 1 1 0 0 0
e6
e5 e 0 0 0 1 1 0 0
e e4
f 0 0 0 0 0 1 1
Hamiltonian Graph
Hamiltonian path (also called traceable path) is a path that visits
each vertex exactly once.
Is it Hamiltonian?
Yes
/No
Hamiltonian Graph
v.d().
The same pseudo-code assumptions are used.
Vertex ADT with operations:
adjacent():VertexSet
u v u v
2 2
Relax (u,v,G)
if v.d() > u.d()+G.w(u,v) then
Relax(u,v) Relax(u,v) [Link](u.d()+G.w(u,v))
2 2 [Link](u)
u v u v
Dijkstra's Algorithm
Non-negative edge weights
Greedy, similar to Prim's algorithm for MST
Like breadth-first search (if all weights = 1, one can simply use
BFS)
Use Q, a priority queue ADT keyed by v.d() (BFS used FIFO
queue, here we use a PQ, which is re-organized whenever some
d decreases)
Basic idea
maintain a set S of solved vertices
K4
Planar Graphs
Representation examples: Q3
Planar Graphs
Representation examples: K3,3 is Nonplanar
v1 v2 v3 v1 v5 v1 v5
R21
R2 R1 R1
R22
v3
v4 v5 v6 v4 v2 v4 v2
Planar Graphs
Theorem : Euler's planar graph theorem
For a connected planar graph or multigraph:
v–e+r=2
number number
number of regions
of vertices of edges
Planar Graphs
Example of Euler’s theorem
R3 v=4,e=6,r=4, v-e+r=2
Planar Graphs
Proof of Euler’s formula: By Induction
Base Case: for G1 , e1 = 1, v1 = 2 and r1= 1
v
u
R1
an+1
bn+1
Planar Graphs
Case 2:
an+1
R
bn+1
Planar Graphs
Corollary 1: Let G = (V, E) be a connected simple planar graph with
|V| = v, |E| = e > 2, and r regions. Then 3r ≤ 2e and e ≤ 3v – 6
Proof: Since G is loop-free and is not a multigraph, the boundary of
each region (including the infinite region) contains at least three
edges. Hence, each region has degree ≥ 3.
Degree of region: No. of edges on its boundary; 1 edge may occur
twice on boundary -> contributes 2 to the region degree.
Each edge occurs exactly twice: either in the same region or in 2
different regions
an+1
R
bn+1
Region Degree
R Degree of R = 3
Degree of R = ?
R
Planar Graphs
Each edge occurs exactly twice: either in the same region or in 2
different regions
2e = sum of degree of r regions determined by 2e
2e ≥ 3r. (since each region has a degree of at least 3)
r ≤ (2/3) e
From Euler’s theorem, 2 = v – e + r
2 ≤ v – e + 2e/3
2 ≤ v – e/3
So 6 ≤ 3v – e
or e ≤ 3v – 6
Planar Graphs
Corollary 2: Let G = (V, E) be a connected simple planar graph then
G has a vertex degree that does not exceed 5
Proof: If G has one or two vertices the result is true
If G has 3 or more vertices then by Corollary 1, e ≤ 3v – 6
2e ≤ 6v – 12
If the degree of every vertex were at least 6:
by Handshaking theorem: 2e = Sum (deg(v))
2e ≥ 6v. But this contradicts the inequality 2e ≤ 6v – 12
There must be at least one vertex with degree no greater than 5
Planar Graphs
Corollary 3: Let G = (V, E) be a connected simple planar graph with
v vertices ( v ≥ 3) , e edges, and no circuits of length 3 then e ≤ 2v
-4
Proof: Similar to Corollary 1 except the fact that no circuits of length
3 imply that degree of region must be at least 4.
Planar Graphs
Elementary sub-division: Operation in which a graph are
obtained by removing an edge {u, v} and adding the vertex w
and edges {u, w}, {w, v}
u v u w v
c d
c
h e
i
k e
d
g f d
e
H K5
g
f
G
Graph Coloring Problem
Graph coloring is an assignment of "colors", almost always
taken to be consecutive integers starting from 1 without loss of
generality, to certain objects in a graph. Such objects can be
vertices, edges, faces, or a mixture of the above.
C4 C5
K4 K2, 3
Vertex Covering Problem
The Four color theorem: the chromatic number of a planar
graph is no greater than 4
Example: G1 chromatic number = 3, G2 chromatic number = 4
(Most proofs rely on case by case analysis).
G1 G2