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

Graph

This document covers various aspects of graph theory, including definitions, types of graphs, and their applications in fields like computer networks and chemical structure analysis. It explains key concepts such as graph terminology, edge types, degrees of vertices, and theorems related to undirected and directed graphs. Additionally, it discusses representations of graphs through incidence and adjacency matrices, as well as the concept of isomorphism and connectivity in graphs.

Uploaded by

Anubala
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Graph

This document covers various aspects of graph theory, including definitions, types of graphs, and their applications in fields like computer networks and chemical structure analysis. It explains key concepts such as graph terminology, edge types, degrees of vertices, and theorems related to undirected and directed graphs. Additionally, it discusses representations of graphs through incidence and adjacency matrices, as well as the concept of isomorphism and connectivity in graphs.

Uploaded by

Anubala
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 102

Graph Theory

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

Undirected: Unordered pair of vertices. Represented


as {u, v}. Disregards any sense of direction and treats
both end vertices interchangeably.

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

Type Edges Multiple Loops Allowed


Edges ?
Allowed ?
Simple Graph undirected No No
Multigraph undirected Yes No
Pseudograph undirected Yes Yes
Directed directed No Yes
Graph
Directed directed Yes Yes
Multigraph
Degree
Terminology – Undirected
graphs
 u and v are adjacent if {u, v} is an edge, e is called incident with u and v. u and v are called
endpoints of {u, v}

 Degree of Vertex (deg (v)): the number of edges incident on a vertex. A loop contributes twice
to the degree (why?).

 Pendant Vertex: deg (v) =1

 Isolated Vertex: deg (k) = 0

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

 In-degree (deg- (u)): number of edges for which u is terminal vertex

 Out-degree (deg+ (u)): number of edges for which u is initial vertex

Note: A loop contributes 1 to both in-degree and out-degree (why?)

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)
vV

(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)
vV u  V1 v  V2

 deg (v) is even for v  V1,


 The first term in the right hand side of the last inequality is even.
 The sum of the last two terms on the right hand side of
the last inequality is even since sum is 2e.
Hence second term is also even
 second term  deg(u) even
v  V2
Theorems: directed Graphs
 Theorem 3: deg +


(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.

Representation Example: K1, K2, K3, K4

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

Representation example: V1 = {u, w}, E1 = {{u, w}}, V2 = {w, v},

E1 = {{w, v}}, V = {u, v ,w}, E = {{{u, w}, {{w, v}}

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.

 Adjacency (Matrix/List): Most useful when


information about the vertices is more desirable than
information about the edges. These two representations
are also most popular since information about the
vertices is often more desirable than edges in most
applications
Representation- Incidence
Matrix

G = (V, E) be an unditected graph. Suppose that v 1, v2, v3, …, vn are the vertices and e1, e2, …, em are the edges of G. Then the incidence matrix with respect to this
ordering of V and E is the nx m matrix M = [m ij], where

Can also be used to represent :


Multiple edges: by using columns with identical entries, since these edges are incident with the same pair of vertices
Loops: by using a column with exactly one entry equal to 1, corresponding to the vertex that is incident with the loop

1 when edge ej is incident with vi


m ij 
0 otherwise
Representation- Incidence
Matrix
 Representation Example: G = (V, E)

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]

For undirected graph


1 if {vi, vj} is an edge of G
a ij 
0 otherwise

For directed graph

1 if (vi, vj) is an edge of G


a ij 
0 otherwise

 This makes it easier to find subgraphs, and to reverse graphs if


needed.
Representation- Adjacency
Matrix
 Adjacency is chosen on the ordering of vertices. Hence,
there as are as many as n! such matrices.
 The adjacency matrix of simple graphs are symmetric
(aij = aji) (why?)
 When there are relatively few edges in the graph the
adjacency matrix is a sparse matrix
 Directed Multigraphs can be represented by using aij =
number of edges from vi to vj
Representation- Adjacency
Matrix
 Example: Undirected Graph G (V, E)

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

Example: undirectd graph G (V, E)

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.

Representation example: G = (V, E), Path P


represented, from u to v is {{u, 1}, {1, 4}, {4, 5},
{5, v}}
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

For Simple Graphs, sequence is x0, x1, …, xn

In directed multigraphs when it is not necessary to


distinguish between their edges, we can use sequence of
vertices to represent the path

Circuit/Cycle: u = v, length of path > 0

Simple Path: does not contain an edge more than once


Connectivity –
Connectedness
Undirected Graph
An undirected graph is connected if there
exists is a simple path between every pair of
vertices

Representation Example: G (V, E) is connected


since for V = {v1, v2, v3, v4, v5}, there exists a
path between {vi, vj}, 1 ≤ i, j≤ 5
v4
v1 v3

v2 v5
Connectivity –
Connectedness
Undirected Graph

 Articulation Point (Cut vertex): removal of a vertex


produces a subgraph with more connected components
than in the original graph. The removal of a cut vertex from
a connected graph produces a graph that is not connected
 Cut Edge: An edge whose removal produces a subgraph
with more connected components than in the original
graph.
Representation example: G (V, E), v3 is the articulation
point or edge {v2, v3}, the number of connected
components is 2 (> 1)
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

A strongly connected Graph can be weakly connected


but the vice-versa is not true (why?)
Connectivity –
Connectedness
Directed Graph
Representation example: G1 (Strong component), G2 (Weak
Component), G3 is undirected graph representation of G2 or G1

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.

Proof: By Mathematical Induction.

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.

By induction hypothesis, bik is the number of paths of length r


from vi to vk.

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

Number of paths of length 4 from a to d is (1,4) th entry of A 4


= 8.
The Seven Bridges of Königsberg,
Germany
 The residents of Königsberg, Germany, wondered
if it was possible to take a walking tour of the town
that crossed each of the seven bridges over the
Presel river exactly once. Is it possible to start at
some node and take a walk that uses each edge
exactly once, and ends at the starting node?
The Seven Bridges of Königsberg,
Germany

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:

 Has no tour that uses each edge exactly once.


 (Even if we allow the walk to start and finish in different
places.)
 Can you see why?
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.

 An Eulerian cycle (Eulerian circuit, Euler tour) in a graph is a


cycle that uses each edge precisely once. If such a cycle exists, the
graph is called Eulerian (also unicursal).

 Representation example: G1 has Euler path a, c, d, e, b, d, a, b

a b

c d e
The problem in our language:

Show that is not Eulerian.

In fact, it contains no Euler trail.


Euler - theorems
1. A connected graph G is Eulerian if and only if G is
connected and has no vertices of odd degree

2. A connected graph G is has an Euler trail from node a


to some other node b if and only if G is connected and
a  b are the only two nodes of odd degree
Euler – theorems (=>)
Assume G has an Euler trail T from node a to node b (a
and b not necessarily distinct).

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.

1. If a = b, then a also has even degree.  Euler circuit

2. If a  b, then a and b both have odd degree.  Euler


path
Euler - theorems
1. A connected graph G is Eulerian if and only if G is
connected and has no vertices of odd degree

a b

f c d

Building a simple path:


e {a,b}, {b,c}, {c,f}, {f,a}

Euler circuit constructed if all edges


are used. True here?
Euler - theorems
1. A connected graph G is Eulerian if and only if G is
connected and has no vertices of odd degree

c d

e
Delete the simple path:
{a,b}, {b,c}, {c,f}, {f,a}

C is the common vertex for this


sub-graph with its “parent”.
Euler - theorems
1. A connected graph G is Eulerian if and only if G is
connected and has no vertices of odd degree

c d

Constructed subgraph may not be connected.

e C is the common vertex for this sub-graph


with its “parent”.

C has even degree.

Start at c and take a walk:


{c,d}, {d,e}, {e,c}
Euler - theorems
1. A connected graph G is Eulerian if and only if G is
connected and has no vertices of odd degree

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.

 A Hamiltonian cycle (also called Hamiltonian circuit, vertex


tour or graph cycle) is a cycle that visits each vertex exactly
once (except for the starting vertex, which is visited once at
the start and once again at the end).

 A graph that contains a Hamiltonian path is called a


traceable graph. A graph that contains a Hamiltonian cycle
is called a Hamiltonian graph. Any Hamiltonian cycle can be
converted to a Hamiltonian path by removing one of its edges,
but a Hamiltonian path can be extended to Hamiltonian cycle
only if its endpoints are adjacent.
A graph of the vertices of a
dodecahedron.

Is it Hamiltonian?

Yes
.
Hamiltonian Graph

This one has a Hamiltonian path, but not a


Hamiltonian tour.
Hamiltonian Graph

This one has an Euler tour, but no Hamiltonian path.


Hamiltonian Graph
 Similar notions may be defined for directed graphs, where edges
(arcs) of a path or a cycle are required to point in the same
direction, i.e., connected tail-to-head.

 The Hamiltonian cycle problem or Hamiltonian circuit problem in


graph theory is to find a Hamiltonian cycle in a given graph. The
Hamiltonian path problem is to find a Hamiltonian path in a
given graph.

 There is a simple relation between the two problems. The


Hamiltonian path problem for graph G is equivalent to the
Hamiltonian cycle problem in a graph H obtained from G by
adding a new vertex and connecting it to all vertices of G.

 Both problems are NP-complete. However, certain classes of


graphs always contain Hamiltonian paths. For example, it is
known that every tournament has an odd number of Hamiltonian
paths.
Hamiltonian Graph
 DIRAC’S Theorem: if G is a simple graph with
n vertices with n ≥ 3 such that the degree of
every vertex in G is at least n/2 then G has a
Hamilton circuit.

 ORE’S Theorem: if G is a simple graph with n


vertices with n ≥ 3 such that deg (u) + deg (v)
≥ n for every pair of nonadjacent vertices u
and v in G, then G has a Hamilton circuit.
Shortest Path
 Generalize distance to weighted setting
 Digraph G = (V,E) with weight function W: E  R
(assigning real values to edges)
 Weight of path p = v1  v2  …  vk is
k1
w( p )  w(vi , vi 1 )
i 1
 Shortest path = a path of the minimum weight
 Applications
 static/dynamic network routing

 robot motion planning

 map/route generation in traffic


Shortest-Path Problems

 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

longer than n – 1 edges, where n is the


number of vertices
Shortest Path Tree
 The result of the algorithms – a shortest path tree. For
each vertex v, it
 records a shortest path from the start vertex s to v.

v.parent() gives a predecessor of v in this shortest


path
 gives a shortest path length from s to v, which is

recorded in v.d().
 The same pseudo-code assumptions are used.
 Vertex ADT with operations:
 adjacent():VertexSet

 d():int and setd(k:int)

 parent():Vertex and setparent(p:Vertex)


Relaxation
 For each vertex v in the graph, we maintain v.d(), the
estimate of the shortest path from s, initialized to at
the start
 Relaxing an edge (u,v) means testing whether we can
improve the shortest path to v found so far by going
through u

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

 at each step select "closest" vertex u, add it to S,

and relax all edges from u


Dijkstra’s ALgorithm
Solution to Single-source (single-

destination).

 Input: Graph G, start vertex s


Dijkstra(G,s)
01 for each vertex u  G.V()
02 u.setd(
03 u.setparent(NIL)
04 s.setd(0)
05 S // Set S is used to
explain the algorithm
06 Q.init(G.V()) // Q is a priority queue ADT
07 while not Q.isEmpty()
08 u  Q.extractMin()
09 S S {u} relaxing
10 for each v  u.adjacent() do
edges
11 Relax(u, v, G)
12 Q.modifyKey(v)
Dijkstra’s Example u v
1
Dijkstra(G,s) 10  
01 for each vertex u  G.V() 9
s  2 3
02 u.setd( 4 6
7
03 u.setparent(NIL) 5
04 s.setd(0)  2 
05 S  x y
06 Q.init(G.V())
07 while not Q.isEmpty() u v
08 u  Q.extractMin() 1
09 S S {u} 10  
10 for each v  u.adjacent() do 9
s  2 3
11 Relax(u, v, G) 4 6
7
12 Q.modifyKey(v) 5
 2 
x y
Dijkstra’s Example u v
1
10  
Dijkstra(G,s) 9
01 for each vertex u  G.V() s  2 3
4 6
02 u.setd( 7
03 u.setparent(NIL) 5
04 s.setd(0)
 2 
05 S  x y
06 Q.init(G.V())
07 while not Q.isEmpty() u v
08 u  Q.extractMin() 1
10  
09 S S {u}
10 for each v  u.adjacent() do 9
s  2 3
11 Relax(u, v, G) 4 6
7
12 Q.modifyKey(v) 5
 2 
x y
Dijkstra’s Example u v
1
10  
Dijkstra(G,s) 9
01 for each vertex u  G.V()  2 3
4 6
02 u.setd( 7
5
03 u.setparent(NIL)  2 
04 s.setd(0)
x y
05 S 
06 Q.init(G.V())
07 while not Q.isEmpty() u v
1
08 u  Q.extractMin() 10  
09 S S {u} 9
10 for each v  u.adjacent() do  2 3
4 6
11 Relax(u, v, G) 7
12 Q.modifyKey(v) 5
 2 
x y
Dijkstra’s Algorithm
 O(n2) operations
 (n-1) iterations: 1 for each vertex
added to the distinguished set S.
 (n-1) iterations: for each adjacent
vertex of the one added to the
distinguished set.
 Note: it is single source – single
destination algorithm
Traveling Salesman
Problem
 Given a number of cities and the costs of traveling from
one to the other, what is the cheapest roundtrip route
that visits each city once and then returns to the starting
city?

 An equivalent formulation in terms of graph theory is:


Find the Hamiltonian cycle with the least weight in a
weighted graph.

 It can be shown that the requirement of returning to the


starting city does not change the computational
complexity of the problem.

 A related problem is the (bottleneck TSP): Find the


Hamiltonian cycle in a weighted graph with the minimal
length of the longest edge.
Planar Graphs
 A graph (or multigraph) G is called planar if G can be drawn in the
plane with its edges intersecting only at vertices of G, such a
drawing of G is called an embedding of G in the plane.

Application Example: VLSI design (overlapping edges requires extra


layers), Circuit design (cannot overlap wires on board)

Representation examples: K1,K2,K3,K4 are planar, Kn for n>4 are


non-planar

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

A planar graph divides the plane


R1 into several regions (faces), one
K4 R2 R4
of them is the infinite region.

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

n+1 Case: Assume, rn = en – vn + 2 is true. Let {an+1, bn+1}


be the edge that is added to Gn to obtain Gn+1 and we prove
that rn = en – vn + 2 is true. Can be proved using two cases.
Planar Graphs
 Case 1:

rn+1 = rn + 1, en+1 = en + 1, vn+1 = vn => rn+1 = en+1 – vn+1 + 2

an+1

bn+1
Planar Graphs
 Case 2:

rn+1 = rn, en+1 = en + 1, vn+1 = vn + 1 => rn+1 = en+1 – vn+1 + 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

 Homeomorphic Graphs: Graphs G1 and G2 are


termed as homeomorphic if they are obtained by
sequence of elementary sub-divisions.
Planar Graphs
 Kuwratoski’s Theorem: A graph is non-planar if and only if it
contains a subgraph homeomorephic to K3,3 or K5
Representation Example: G is Nonplanar
a
b a b b
a
c
j

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.

 Application examples: scheduling, register allocation in


a microprocessor, frequency assignment in mobile
radios, and pattern matching
Vertex Coloring Problem
 Assignment of colors to the vertices of the graph such that proper
coloring takes place (no two adjacent vertices are assigned the
same color)
 Chromatic number: least number of colors needed to color the
graph
 A graph that can be assigned a (proper) k-coloring is k-colorable,
and it is k-chromatic if its chromatic number is exactly k.
Vertex Coloring Problem
 The problem of finding a minimum coloring of a graph is NP-Hard
 The corresponding decision problem (Is there a coloring which
uses at most k colors?) is NP-complete

The chromatic number for Cn = 3 (n is odd) or 2 (n is even), Kn =
n, Km,n = 2
 Cn: cycle with n vertices; Kn: fully connected graph with n
vertices; Km,n: complete bipartite graph

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

You might also like