Graph
Graph
Unit 5
Varying Applications (examples)
Computer networks
Distinguish between two chemical
compounds with the same molecular
formula but different structures
Solve shortest path problems between
cities
Scheduling exams and assign channels
to television stations
Topics Covered
Introduction to Graphs
Terminology
Directed and Undirected Graphs
Degree
Adjacency and Incidence Matrices
Isomorphism
Paths
Dijkstra’s Algorithm
Trees
Properties
Spanning Tree
Kruskal’s Algorithm
Definitions - Graph
A graph G is a pair (V, E) where V is a set
(almost always finite in this course) and E is a
collection of 2-element subsets of V.
Elements of V are called vertices and V is the vertex
set.
Elements of E are called edges and E is the edge set
Terminology
Usually, we write uv is an edge in G,
or uv E rather than {u,v} E.
Of course, uv is an edge if and only
if vu is an edge.
When uv is an edge, we say u and
v are adjacent.
When u and v are distinct and uv
is not an edge, we say that u and
v are non-adjacent.
Terminology (Contd.)
e is said to be incident on v and w.
Isolated vertex = a vertex without
incident edges.
Definitions – Edge Type
Definitions – Graph Type
Simple (Undirected) Graph: consists of V, a
nonempty set of vertices, and E, a set of unordered
pairs of distinct elements of V called edges (undirected)
Representation Example: G(V, E), V = {u, v, w}, E =
{{u, v}, {v, w}, {u, w}}
u v
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}
u
e1 e2
w
e3
v
Definitions – Graph Type
Pseudograph:
Definitions – Edge Type
Directed: Ordered pair of vertices. Represented as (u,
v) directed from vertex u to v.
u v
u v
Definitions – Graph Type
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+ (u) = 0
u v
w
Theorems: Undirected Graphs
Theorem 1
The Handshaking theorem:
2e deg(v)
vV
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
(u) = deg - (u) = |E|
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
Simple graphs – special
cases
N-cubes: Qn, vertices represented by 2n bit strings of
length n. Two vertices are adjacent if and only if the bit
strings that they represent differ by exactly one bit
positions
Representation Example: Q1, Q2
10 11
0 1
00 01
Q1 Q2
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
V V
2
1
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
nod Adjacency List
e
u v,w
v w v w, u
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.
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.
v2 v5
Connectivity –
Connectedness
Undirected Graph
v2
v4
Connectivity –
Connectedness
Directed Graph
A directed graph is strongly connected if there is a
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.
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:
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
Shortest-Path problems
Single-source (single-destination). Find a
shortest path from a given source (vertex s) to
each of the vertices. The topic of this lecture.
Single-pair. Given two vertices, find a
shortest path between them. Solution to
single-source problem solves this problem
efficiently, too.
All-pairs. Find shortest-paths for every pair of
vertices. Dynamic programming algorithm.
Unweighted shortest-paths – BFS.
Optimal Substructure
Theorem: subpaths of shortest
paths are shortest paths
Proof (”cut and paste”)
if some subpath were not the shortest
path, one could substitute the shorter
subpath and create a shorter total
path
Negative Weights and
Cycles?
Negative edges are OK, as long as there are no
negative weight cycles (otherwise paths with
arbitrary small “lengths” would be possible)
Shortest-paths can have no cycles (otherwise
we could improve them by removing cycles)
Any shortest-path in graph G can be no
recorded in 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) v.setd(u.d()+G.w(u,v))
v.setparent(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
destination).
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.
an+1
Each edge occurs exactly twice: either in the same region or
in 2 different regions
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