Applications of Graph Theory Explained
Applications of Graph Theory Explained
Chapter 4
Varying Applications (examples)
◼ Computer networks
◼ Distinguish between two chemical compounds
with the same molecular formula but different
structures
◼ Solve shortest path problems between cities
Topics Covered
◼ Definitions
◼ Types
◼ Terminology
◼ Representation
◼ Sub-graphs
◼ Connectivity
◼ Hamilton and Euler definitions
◼ Shortest Path
◼ Planar Graphs
◼ Graph Coloring
Definitions - Graph
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).
Representation Example: V = {u, v, w}, E = {e1, e2, e3}
No self loop
but contain multiedge
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 allowed in
such a graph.
Representation Example: V = {u, v, w}, E = {e1, e2, e3, e4}
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
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
u v
w
Theorems: Undirected Graphs
Theorem 1
The Handshaking theorem:
2e deg(v)
vV
sum of degree of verteces = 2 * edges
(why?) Every edge connects 2 vertices
Theorems: Undirected Graphs
Theorem 2:
An undirected graph has even number of vertices with odd degree
Pr oof V 1 is the set of even degree vertices and V2 refers to odd degree vertices
2e deg(v) deg(u) deg(v)
vV u V1 v V2
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.
v edges
e e1 e2 e3
u r
ti v 1 0 1
e1 e2 c
u 1 1 0
e
v w s w 0 1 1
e3
vertices
v
v u w
u e
r v 0 1 1
ti
c u 1 0 1
v w e
s w 1 1 0
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, E2) 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. [Link] vertices are same
◼ Function f is called isomorphism [Link]. of edges are same
[Link] is same
[Link] to one
Application Example: correspondance with same
degree
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
Isomorphism - revisited
A isomorphic invariant for simple graphs is the
existence of a simple circuit of length k , k is an
integer > 2 (why ?)
Representation example: G1 and G2 are isomorphic since we
have the invariants, similarity in degree of nodes, number of
edges, length of circuits
G1 G2
Counting Paths
◼ Theorem: Let G be a graph with adjacency matrix A with respect to the
ordering v1, v2, …, Vn (with directed on undirected edges, with multiple
edges and loops allowed). The number of different paths of length r from
Vi to Vj, where r is a positive integer, equals the (i, j)th entry of
(adjacency matrix) Ar.
Base Case: For the case N = 1, aij =1 implies that there is a path of length 1. This
is true since this corresponds to an edge between two vertices.
We assume that theorem is true for N = r and prove the same for N = r +1.
Assume that the (i, j)th entry of Ar is the number of different paths of length r from
vi to vj. By induction hypothesis, bik is the number of paths of length r from vi to vk.
Counting Paths
Case r +1: In Ar+1 = Ar. A,
The (i, j)th entry in Ar+1 , bi1a1j + bi2 a2j + …+ bin anj
where bik is the (i, j)th entry of Ar.
The (i, j)th entry in Ar+1 corresponds to the length between i and j
and the length is r+1. This path is made up of length r from vi to vk
and of length from vk to vj. By product rule for counting, the number of
such paths is bik* akj The result is bi1a1j + bi2 a2j + …+ bin anj ,the
desired result.
Counting Paths
a ------- b
| |
| |
c -------d
A=0110 A4 = 8 0 0 8
1001 0880
1001 0880
0110 8008
You can redraw the original picture as long as for every edge between
nodes i and j in the original you put an edge between nodes i and j in
the redrawn version (and you put no other edges in the redrawn
version).
Original:
2 3
4
Redrawn: 2
4 1
3
The Seven Bridges of Königsberg, Germany
Euler:
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
.
Hamiltonian Graph
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))
[Link](u)
2 2
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
v=4,e=6,r=4, v-e+r=2
R3
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
j
d
c
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