Title: Graphs
1Chapter 9
2Chapter 8. Graphs
- Old subject with many modern applications
- Introduced by L. Euler, who used it to solve the
famous Konisberg bridge problem. - Example applications
- determine if a circuit can be implemented on a
planer circuit board (planer graph) - distinguish b/t two chemical compounds with the
same molecular formula but with different
structures. - determine if two computers are connected in a
network. - schedule (with task precedence information given,
find an execution plan.) - ..
3table of contents
- Introduction
- Graph terminology
- Representing graph and graph isomorphism
- Connectivity
- Euler and Hamilton paths
- Shortest path problems
- Planer graphs
- Graph coloring
48.1 Introduction
- Graph discrete structure consisting of vertices
and edges that connects these vertices. - Types of graphs
- simple graph G(V,E) where E is a set of
unordered pairs of distinct elements of V. - multi-graph allow multiple edges b/t two
distinct vertices. - pseudograph allow self-loop and multiple edges
- digraph (directed graph) edges are ordered pairs
of vertices. - Directed multigraph allow multiple edges b/t any
two (possibly identical) vertices. - Hybrid Graph allow both directed and undirected
edges. - Weighted (or labeled) graph Each edge is
associated with a weight (or a label).
5Formal definitions
- Def 2 (multigraph) G(V,E,f) where
- f E-gt u,v u,v ?V and u ? v with f(e)
containing the two vertices the edge e is
connected to. - If f(e1) f(e2) gt e1 and e2 are parallel or
multiple edges. - Def 3 A pseudo graph G (V,E,f) where
- f E -gt u,v u,v ? V.
- Note if f(e) u gt e is a self-loop on u.
- Note If there is no worry of confusion, we
usually use u,v to identify the edge e with
f(e) u,v. - Def 4 a digraph G(V,E) where E is a subset of
V2. - Def 5 A directed multigraph G(V,E,f) where f
E -gt V2. - If f(e1) f(e2) gt e1 and e2 are parallel
or multiple edges. - note f(e1) (u,v) /\ f(e2) (v,u) /\ u ¹ v
gt e1 and e2 are not parallel edges.
6Labeled (or weighted) grapgh
- A labeled graph G (V,E,f, L, l) where
- (V,E,f) is a graph of any kind (without
labeling), - L is the set of labels, and
- l E-gtL is the labeling function. if f(e) w, we
say e is an w-labeled edge or simply an w-edge. - Hyper graph edges can connect more than 2
vertices - e.g hyper k-graph G(V,E,f) where fE-gt Vk.
- Summary
- type directed edge?
multiedge? loop? - simple no no no
- multigraph no yes no
- pseudo no yes yes
- digraph yes no yes
- directed- yes yes yes
- -multigraph
7Graph models
- Ex1 Niche overlap graphs in ecology
- G(V,E) is a simple graph where
- V is the set of species.
- u,v ? E iff u and v compete for food.
- Ex2V Persons
- (u,v) ? E iff u can influence v.
gtInfluence graph (digraph) - (u,v) ? E iff u, V know each othergt
Acquaintance graph -
(undirected graph) - Ex3 Round-Robin Tournaments
- One where each team plays each other team
exactly once. - V the set for all teams
- (u,v) in E iff team u beats team v.
- Ex 4-team Round-Robin tournament
8Graph model (cont'd)
- Ex 4 (precedence graph and concurrent
processing) - eg 1. x y 1
- 2. z f(x)
- gt (1) must be executed before (2) no matter
which processors execute (1) or (2), since (2)
must use the execution result of (1). - The executed-before relation in a program can be
represented by a digraph G(V,E) where - V the set of statements in the program
- (u,v) ? E means u must be executed before v.
- note if (u,v) and (v,w) ? E, gt (u,w) ? E .
- Hence E is transitive.
9Precedence graph of a program
- Ex 4
- s1 a 0
- s2 b 1
- s3 a a1
- s4 d ba
- s5 e d1
- s6 e cd
- gt What is the precedence graph of this program?
-
s1
s2
s3
s4
s6
s5
10Precedence graph of a program
- Ex 4
- s1 a 0
- s2 b 1
- s3 a a1
- s4 d ba
- s5 e d1
- s6 e cd
- gtProblems
- 1. Minimum time needed to complete the program
using multiple processors? (Depth) - gt length of longest paths 1
- 2. Minimum of processors needed to complete
the program in minimum time ? (Width) - gt p1 s1,s3,s4,s6, p2s2,-,-,s5
-
s1
s2
s3
s4
s6
s5
117.2 Graph terminology
- Def 1 G (V,E) undirected graph
- if u --e-- v gt
- u and v are adjacent (or neighbors)
- Edge e is incident with u ( v).
- e connects u and v.
- u and v are end points of e.
- Def 2 G(V,E) undirected graph v ? V gt
- degree of v deg(v) edges incident with it
e v is an end point of e and e is an edge. - If deg(v) 0 gt v is isolated.
- If deg(v) 1 gt v is pendant (or hang).
- Ex In Fig 1, E has degree 3, D is pendant and G
is isolated.
12Handshaking theorem
- Theorem 1 G (V,E) a undirected graph
- gt S v ? V deg(v) 2 E. // ??? ???
- pf Simple induction on the number of edges E.
- (Intuition vertex deg socket, edge end
plug ) - Ex G(V,E) with V10 each vertex with degree
6. - gt E ?
- Corollary The sum of the degrees of the vertices
of an undirected graph is even. - Theorem 2 The number of vertices in a graph with
odd degree is even. - pf
- Sv in V deg(v) Sv in V /\ deg(v) is odd deg(v)
Sv in V /\ deg(v) is even deg(v) - gt Sv in V /\ deg(v) is odd deg(v) is even gt
v in V deg(v) is odd is even. QED
13Terminology for digraphs
- Def 3 G(V,E) a digraph
- if u --e--gt v then
- u is adjacent to v
- v is adjacent from u
- u is the initial (or starting) vertex of e
- v is the end (or terminal) vertex of e
- e is an edge from u to v.
- Def. 4 in-degree out-degree
- In-deg(v) edge coming into v e ? E v is
the terminal vertex of e . - out-deg(v) edge going out from v e ? E
v is the starting vertex of e . - Theorem 3 Sv in V in-deg(v) Sv in V
out-deg(v) E.
14underlying undirected graph
- G (V,E,f) a directed graph
- gt Its underlying undirected graph is a pseudo
graph G'(V,E,f') where f'E -gt u,v u,v ?
V s.t. - f'(e) a,b iff f(e) (a,b).
- Note
- 1. Both G and G' has the same number of edges (
E ). - 2. If both (u,v) and (v,u) are edges in G gt
(u,v) and (v,u) are two distinct edges in G'. - Ex G(1,2,3, (1,2),(1,2),(1,3),(2,3),(3,2))
- gt G' ?
15Special simple graphs
- Ex 4 complete graphs Kn (V,E) where
- V n and E x,y x and y are distinct
vertices of V. - Ex K1,..., K5 ?
- Ex 5 Cycles Cn (n gt2) (V, E) where V
1,2,..., n and - E i, i1 i 1,..., n-1 U n, 1.
- Ex C3,C4,C5,C6 ?
- Ex 6 wheels (n gt 2) Wn (V,E) where V
0,1,...,n and - E 0, i i 1,...,n U i,i1 i
1,...,n-1 U n,1. - W3,W4,W5 ?
- Ex7 n-cubes Qn (V,E) where V 0,1n is the
set of all bit strings of length n and E x,y
x and y differ at exactly one position. Ex
11011 and 11111 is connected. - Ex Q1, Q2, Q3, Q4 ?
16Bipartite Graphs
- Def 5 G (V,E) is bipartite iff there is a
binary partition V1,V2 of V s.t. for all e ? E,
one end point of E is in V1 and the other end
point is in V2. - Ex8 Is C6 bipartite ? (yes! why?)
- Ex9 Is K3 bipartite ? (no! why ?)
- Ex10 Which of Fig G and H is bipartite ?
- Ex11 Km,n (complete bipartite graph)
- Km,n (u1,...,um U v1,...,vn, E , where
- E ui, vj i1..m v 1..n
- eg K2,3, K3,3 ?
- problem Km,n has ? edges
17Ex 13 interconnection network for processors
- Types of connections
- Linear array
- mesh
- Hyper cube (m-cube)
- Main measures 1. links 2. longest
distance - linear array n-1 n-1
- mesh 2sqrt(n)(sqrt(n)-1) 2(sqrt(n) -1)
- m-cube(n2m) nm/2 O(n lg n) m lg n
18New graphs from old
- Def 6 subgraph G(V,E) a graph
- H (V',E') is a subgraph of G iff
- V'Í V and E' Í E and
- H is a graph (i.e., if e Î E' is an edge
connecting u and v in V, then u, v must belong to
V'.) - Ex G K5 find a subgraph H of K5.
- Def 7 union of simple graphs G1(V1,E1)
G2(V2,E2) two graphs. gt G1UG2 def (V1 U
V2, E1U E2) - Note Not only V1 and V2, but also E1 and E2 may
overlap. - ExG1 (a,b,c,d,e, ab,bc,ce,be,ad,de)
- G2 (a,b,c,d,f, ab,bc,bd,bf
- gt G1 U G2 ?
- Def 7' Disjoint union of graphs
- Disjoin union of G1 and G2 ?
198.3 Graph representation and Graph isomorphism
- Graph representation suitable only for finite
graphs - adjacent list (for graphs w/o multiple edges)
O(EV) - adjacent matrices O(V2)
- incident matrices (or list) O(VxE).
- adjacent list for each vertex v, av is the
list of all adjacent vertices of v. - adjacent matrix Mu,v1 iff u,v (or (u,v) if
directed) is an edge. - incident matrix Iu,e 1 iff u in f(e), or
(for directed graph) - iu,e 1 (or -1) iff u is the
starting (or ending) vertex of e. - Ex (p558 fig2)
-
20Graph isomorphism
- Def . 1 G1(V1,E1), G2(V1,E2) two simple or
digraphs - G1 and G2 are isomorphic iff a bijection
hV1-gtV2 s.t. - for all u,v in V1,
- u,v (or (u,v)) Î E1 iff
h(u),h(v) (or (h(u),h(v))) Î E2. - Such h is called an isomorphism (b/t G1 and G2).
- Ex 8 Are G (1234, 12,23,34,41) and
H(abcd,ad,ac,bc,bd) isomorphic ? - Fact If G1 and G2 are isomorphic gt V1V2
E1E2. - and G1 and G2 has the same degree
type. - Def For each G(V,E), type(G) is the multiset
deg(v) v ? V.
218.4 Connectivity
- Def 1 G (V,E,f) an undirected multi-graph
- A path a of length n gt 0 from u to v is a
sequence of edges e1, e2, ...,en s.t. f(e1)
u,x1, f(e2) x1,x2,,f(en) xn-1,v. - e1 e2 e3 e4 e5
e6 en-1 en - ux0----x1-----x2----x3----x4----x5----
.----xn-1----Xnv - If G is a simple graph gt a can be identified by
the sequence of vertices x0u, x1,..., xn-1, xn
v. - a is a circuit (or cycle) iff x0 xn.
- a is simple if all edges in the path are distinct
(i.e., for all 0 iltj n, ei ¹ ej ).
22Connectivity (cont'd)
- Def. 2 G (V,E,f) a directed multigraph
- A path a of length n gt 0 from u to v is a
sequence of edges e1, e2, ...,en s.t. f(e1)
(u,x1), f(e2) (x1,x2),...f(en) (xn-1,v). - If G is a digraph gt a can be identified by the
sequence of vertices x0u, x1,..., xn-1, xn v. - a is a circuit (or cycle) iff x0 xn.
- a is simple if all edges in the path are distinct
(i.e., for all 0ltiltjltn1, ei ¹ ej ). - Def 3 A undirected graph is connected if there
is a path between every pair of distinct vertices.
23Theorem about simple paths
- Theorem 1 There is a simple path between every
pair of distinct vertices of a connected
undirected multi-graph. - Pf (u,v) any two distinct vertices of G.
- Since G is connected, there exist paths from u
to v. - Let a e1,e2,...,en be any path of least length
from u to v. - Then a must be a simple path. If it were not,
then there would be - 0 i ltj n s.t. ei ej.
- gt the path b e1,..,ei-1,ej1,..,en or
e1,..,ei,ej1,..,en is another path from u to v
with length lt a, a contradiction!. QED -
-
join xi and xj if xi xj
24Note Theorem 1 does not hold for circuit (cycle)
25A theorem about simple circuits
- G(V,E) a undirected multi-graph, u,v two
vertices in G. - Theorem if there are two distinct simple paths
from u to v, then there is a simple circuit in G. - PfLet
- a1 x0 --(e1)-- x1 --(e2)-- x2 --(e3)----(et)--xt
--(et1)--xt1-----xnv, - and
- a2 x0 --(e1)-- x1 --(e2)-- x2 --(e3)----(et)--xt
--(et1)--yt1-----ymv, - be two distinct simple paths fro u to v in G,
- if either a1 or a2 contains a (simple) circuit,
then we are done. - Otherwise let et1, et1 the first edges with
et1 ?et1 . - let J be the least number in t1,,m such that
yJ xs where s is any vertex occurring in path
a1 (I.e., yJxs ? x0,,xn). - Note since ym xn v, such J must exist.
26A theorem about simple circuits
- Now it is easy to see that
- 1. if s t then xs --(es1)--
xs1----(et)xt U - xt--(et1)--yt1----(eJ-1)-yJ is a
circuit. This is not possible since all edges of
the circuit are part of a2. - 2. If s gt t then xt--(et1)--xt1---(es-1)--xs
U - xt--(et1)--yt1----(eJ-1)-yJ ---() is
a simple circuit. - Note xt,xt1,,xs ? xt,yt1,,yJ xt,
yJxs - if there were ea eb gt f(ea) xt, xt1xs
xt,yt1yJ - gt abt1 gt e t1 et1 a
contradiction! - o/w, by def, () is a simple circuit.
27Xt
et1
xs
u
yJ
et1
v
es
xs
eJ
yJ
eJ
yJ-1
28Connected Components
- G(V,E) a undirected graph
- 1. Any maximal connected subgraph of G is called
a connected component of G. - (i.e., G'(V',E') is a connected component of
G iff - 1. G' is a connected subgraph of G and
- 2. There is no connected subgraph of G
properly covers G'.) - Ex
29Connected components (cont'd)
- Note 1. Every two distinct connected components
are disjoint. - Pf G1(V1,E1), G2(V2,E2) two distinct
connected components. - If G1 and G2 overlap (i.e., V1Ç V2 ¹ Æ ).
- gt v ? V1ÇV2 gt G3 (V1 ? V2,E1UE2) is a
connected subgraph larger than G1 and G2, a
contradiction! QED - Note 2. Every connected subgraph G' of G must be
contained in some connected component of G.
30Connected components (cont'd)
- Pf Let i 0 and Gi G'. If Gi is maximal
then we are done. - o/w, there is connected Gi1 contains Gi.
- If Gi1 is maximal, then we are done o/t let
i i1 and repeat the same process, we will
eventually (if G is finite) get a maximal graph
containing G'. - Note 3. Let G1,G2,...,Gk be the set of all
connected components of G. Then G Ui 1..k Gi - pf 1. Ui1,k Gi Í G since every Gi Í G.
- 2. G Í Ui1,kGi since every edge and every
vertex must belong to some connected component.
31connected components (cont'd)
- Note 4 Every undirected graph G has a unique set
of connected components. - Pf Let G (V,E).
- For each vertex u in V, let Gu (Vu,Eu) where
- Vu v there is a path from u to v Í V, and
- Eu e f(e) Í Vu Í E.
- It is easy to show that Gu is a connected
component of G. - Moreover, we have
- 1. for all u, v ? V Gu Gv iff VuVv /\ EuEv
and - 2. for all e ? E if f(e) u,v gt GuGv and
e Î Eu. - Hence the set of connected components of G Gu
u Î V. - Note Connected components in graphs play a role
like equivalence classes in equivalence relations.
32The connectivity relation in a graph
- G(V,E) an undirected graph
- Let be the connectivity relation induced by
G, i.e., for all u,v in V, u v iff either u v
or u and v are connected in G. - Theorem
- 1. is an equivalence relation on V. (Hence V/
is a partition of V) - 2. For all u,v in V, u and v are connected iff
u and v are in the same block of the partition. - 3. For each u Î V, Gu (Vu,Eu) (u, Eu)
where - ES is the set of edges restricted to the
vertex set S, i.e., - e Î E f(e) Í S.
- 4. The set of all connected components of G
- (S, ES) S Î V/.
-
33cut vertices and cut edges
- A vertex in a graph is called a cut vertex (or
articulation point) if the removal of this vertex
and all edges incident with it will result in
more connected components than in the original
graph. - Corollary The removal of a cut vertex (and all
edges incident with it) produces a graph that is
not connected. - Cut edges (bridges)
- The removal of it will result in graph with more
connected components. - Ex 4 Determine all cut vertices
- and all bridges in the right graph.
- cut vertices ?
- bridges ?
34Strongly connected digraphs
- Def 4 G(V,E) a directed graph
- G is strongly connected iff there are paths from
u to v and from v to u for every pair of distinct
vertices u and v in G. - Def 5 G is weakly connected iff there is a path
between every pair of distinct vertices in G. - Ex 5
G
H
G is strongly connected. H is weakly connected.
35Path and isomorphism
- P(-) a property on graphs
- Ex P(G) "G has a simple cycle of length gt 2"
- P(G) " G has an even number of vertices
and edges". - P(G) ...
- P is said to be an isomorphic invariant if P is
invariant under all isomorphic graphs, i.e., for
all graph G1 and G2, - if G1 and G2 are isomorphic then P(G1) ?
P(G2). - Ex1 Pm,n(G) " G has m vertices and n edges ",
where m and n are some constant numbers, is an
isomorphic invariant. - Corollary G1,G2 two graphs P an isomorphic
invariant - If P(G1) and P(G2) have distinct truth value,
then G1 and G2 are not isomorphic.
36More on graph isomorphism
- Ex2 P2(G) "G has a simple circuit of length
k", where k is a number gt 2, is an isomorphic
invariant. - pf G1 (V1,E1), G2 (V2,E2) two simple
graphs. - Let hV1-gtV2 be any isomorphism from G1 to G2.
- Then if x0 --(e1)--gt x2--(e2)--gt x3--....
--gt(en)--gtxn is a simple path on G1, then the
sequence - h(x0) --gt(h(e1))--gth(x2)--(h(e2))--gth(x3)--...--gt(
(h(en))--gth(xn) - is also a simple path on G2.
- Ex 6 G and H are not isomorphic since H has s
simple cycle of length 3 (1261), whereas G has no
simple cycle of length 3.
G
H
37Counting paths b/t vertices
- G(V,E) with VV1,...,Vn a simple graph with
adjacent matrix M. - gt different paths of length k from vi to vj
(Mk)ij, where scalar multiplication are integer
product (instead of boolean AND). - Pf by math ind on k.
- 1. basis step k 1 gt By def. Mij is the
number of edges ( path of length 1) from vi to
vj. - 2. Ind. step assume (Mm)ij paths of length m
from vi to vj for all m lt k and for all ui, uj ?
V. - But paths of length k from vi to vj
- paths of length k-1 from ui to v1 x paths of
length 1 from v1 to vj - paths of length k-1 from ui to v2 x paths of
length 1 from v2 to vj - ...
- paths of length k-1 from ui to vn x paths of
length 1 from vn to vj - St1..n (Mk-1)it x Mtj (MK)ij.
38Example
- Ex 8 G(1,2,3,4, 12,13,24,34)
- gt M 0110100110010110
- gt M4 8008088008808008
- gt there are 8 different paths of length 4 from
a to d. - Notes
- 1. The length of the shortest path from vi to vj
is the least k s.t. (MK)ij ! 0. - 2. G is connected if (Sk1..n-1 Mk )ij ! 0 for
all 1 iltj n. - pf G is connected gt
- for any i ? j, there is a simple path (of length
t lt n) from vi to vj - gt (Mt)ij gt 0 gt (Sk1..n-1 Mk )ij ! 0. QED
398.5 Euler and Hamilton paths
C
- The seven bridges problem
- Problem Is there a path
- passing through all bridges
- w/o crossing any bridge twice?
- Multigraph model
- problem Is there a simple
- path of length 7 ?
A
D
B
The town of Konigsburg
B
40Eular paths and Eular cycles
- Def. 1 An Eular path in a multigraph G is a
simple path containing all edges. - Def. 2 An Eular circuit in a multigraph G is a
simple circuit containing all edges. - Ex1 In G1,G2 and G3
- G1 has a Eular
- circuita,e,c,d,e,b,a.
- G3 has a Eular path
- bedbadca.
- Note If there is a Eular circuit beginning from
a vertex v, then - there is a Eular path or circuit beginning from
any other vertex. -
41Necessary and sufficient conditions for Eular
path and Eular circuit
- Theorem 1 A connected multigraph has an Eular
circuit iff each of its vertices has even degree. - Corollary The seven-bridges problem has no Eular
circuit. - pf "gt" G(V,E) any multigraph.
- Let a x0 e1 x1 e2 x2 e2 x3 ... en xnx0 be any
Eular circuit. - For each vxi in V ? x0, since ei--gtxi --gt ei1
we have - deg(v) 2 j xj v and 0ltjltn and for x0
we have - deg(x0) 2xj xj x0 and 0ltjltn 2.
- Hence every vertex has even degree.
- (lt) by induction on E gt 1.
- Let a x0 e1 x1 e2 x2 e3 ... en xnx0 be any
simple circuit. - (its existence will be shown later.)
- If a is an Eular circuit, then we are done. O/W
42Proof of Eular condition
- Let G' (V',E') be the resulting graph formed
from G by removing all e1,e2,...,en from E. - Let G1(V1,E1),...,Gk(Vk,Ek) be all connected
components of G'. - Since G is connected, x0,...,xn ÇVi ! for
all 0ltiltk1. - (o/w there is no path from x0 to vertices in
Vi). - For each i let xti be any vertex in x0,...,xn
Ç Vi. - Since Gi(Vi,Ei) and Ei lt E and every vertex
in Vi has even degree, by ind. hyp. there is a
Eular circuit ai xti -gt...-gt xti in Gi. - Now join each ai with a at xti
- we can form a Eular circuit in G. QED.
43Example
g
h
- a a b c d a is a simple circuit in G.
- removing all edges in a results in
- three connected components
- G1,G2 and G3 intersecting with
- a at a,d, b and c respectively.
- By ind. hyp.,
- Eular ckt a1 (a...a)
- (aedfghefa)
- a2 (b) and
- a3 (c i j c)
- gt join a and all ai, we obtain
- a Eular ckt of G
- (aedfghefa)b(cijc)da.
f
e
a
d
G
i
b
j
c
g
h
f
e
a
d
G1
i
G3
G2
b
j
c
44Eular condition for Eular path
- Theorem 2 A connected multigraph has an Eular
path but not an Eular ckt iff it has exactly two
vertices of odd degree. - pf (gt) G(V,E) any multigraph.
- Let a x0 e1 x1 e2 x2 e2 x3 ... en xn !x0 be
any Eular path. - For each vxi in V ! x0 or xn, since ei--gtxi
--gt ei1 we have - deg(v) 2 j xj v and 0ltjltn and for v
x0 or xn we have - deg(v) 2xj xj v and 0ltjltn 1.
- Hence all vertices but x0 and xn have even
degree. - (lt) Let G' (V, EUe) where e is a new edge
connecting a and b, which are vextices of G with
odd degree. - gt Every vertex of G has even degree. By
theorem 1, - a Eular path a a -gt .... -gtb-gt(e)-gta.
- gt removing e from a we get a Eular path of G.
QED
45Existence of simple circuit
- Lemma G(V,E) a multigraph s.t. E ! and
every vertex has even degree. Then there exist a
simple ckt in G from any vertex of nonzero
degree. - pf Let x0 be any vertex in G with nonzero
degree. - We construct a sequece of simple paths as which
eventually become a simple circuit as follows - 0. Initially a1 x0 --e1-- x1. G1 (V, E
\e1). - note x1 in G1 has degree gt 0 hence there is
an edge leaving x1. - 1. assume ai x0...xi has been formed and Gi
(V, Ei E\e1,...,ei). - If xi xk for klti then xk-ek- - xi is a
simple ckt and we are done. - o/w by ind. hyp. xi has odd degree in Gi,
hence we can find an - edge e in Gi connecting xi and some other
vertex u. - now let ai1 ai -- e--u xi1 u and i
i1 - 2. goto 1.
- Note the procedure must terminate since every
iteration of step 1 will result in one edge
removed from G, but G has only a finite number of
edges. So the prod. will exit from step 1 with a
simple ckt returned. QED
46Hamilton paths and circuits
- Def. 2 G(V,E) a multi graph.
- A path x0 e1 x1 e2 x2... en xn in G is a
Hamilton path if x0,...,xn V and xi ? xj for
all i ? j. - A ckt x0 e1 x1 e2 x2... en xnx0 (n gt 1) in G is
a Hamilton ckt if x1,...,xn V and xi ? xj
for all i ? j - Ex
- Problem Is there a simple principle, like that
of Eular ckt, to determine whether a multigraph
has a Hamilton ckt ? - Ans no ! In fact, there is no known polynominal
time algorithm - which can test if a given input multigraph has a
Hamilton ckt ! - Theorem sufficient condition G a connected
simple graph with n ³ 3 vertices. gt If every
vertex has degree ³ n/2, then G has Hamilton ckts.
47Grey code
- Ex 8 label regions of a disc
- Problem split the disc into 2n arcs of equal
length and assign a bit string of length n to
each arc s.t. adjacent arcs are assigned bit
strings differing from neighbors by one bit only. - Problem
- How to find Gray code
- of n-bit length?
- Rule Let Gn (Vn,En)
- Qn be the n cube.
- A cycle of the disc
- (a grey code) corresponds
- to an Hamilton ckt in Qn.
488.6 Shortest path problems
- A weighted graph is a graph G(V,E) together with
a weighting function wE-gtR. - A shortest path from a to b is a path
- a e1 x1 e2 x2 ... en b s.t. Si1,n w(ei) is
minimized. - Problem Given a graph and two vertices a, z,
find the length of a shortest path from a to z. - Alg Dijkstra's algorithm
- //L(v) the length of a shortest path from a
to v// - 1. L(a) 0 L(v) w(a,v) for all v ? a S
a - 2. While( S ? ) // i.e., S ? V
- 3. u any vertex ? S with minimum L(u)
- 4. S S U u
- 5. for( all v ? S)
- 6. L(v) min(L(u) w(u,v), L(v))
- 7. end / L(z) length of the shortest path
from a to z.
49Example
50(No Transcript)
51(No Transcript)
52Correctness (skipped!)
- Let Sk the value of S after the kth iteration
of the for-loop. - uk the vertex added to Sk at the kth iteration.
- Lk(v) the value of L(v) after kth iteration.
- Notes
- Sk u0a,u1,,uk.
- Lj(uk) Lk-1(uk) for all j gtk-1.
- 1. L(a) 0 L(v) w(a,v) for all v ? a S
a - 2. While( S ! )
- 3. u any vertex ? S with minimum L(u)
- 4. S S U u
- 5. for( all v ? S)
- 6. L(v) min(L(u) w(u,v), L(v))
- 7. end / L(z) length of the shortest path
from a to z.
53Correctness of Dijkstra alg is a direct of the
following lemma skipped)
- Lemma for all iterations k and all vertices v
- 1. v ? Sk ? Lk(v) is the length of the
shortest of all paths from a to v. - 2. v ? Sk ? Lk(v) is the length of the
shortest of all paths from a to v of which all
intermediate vertices must come from Sk. - pf By induction on k.
- k 0 Then
- Sa , Lk (a) 0 is the shortest length from
a to a. - v ? a gt Lk (v) w(a,v) is the length of the
shortest from a to v without passing through any
vertex in S. - k j1 gt 0
- By step 3, Lj(uk ) min Lj(v) v ? Sj ,
and by step 4. Lk(uk) Lj(uk). - Now we show that Lj(uk) (and hence Lk(uk) ) is
the shortest length of all paths from a to uk. - Assume it is not. Then there must exist a
shorter path a from a to uk, but such path must
pass through a vertex not in Sj, since by
ind.hyp, Lj(uk) is the least length of all paths
passing only through Sj. - Now let a a --- u ----uk where u is the
first vertex of a that are not in S and the
subpath a --- u contains only vertices from Sj. - Then the length a a---u u --- uk,
but a ---u Lj(uk) Hence it is impossible
that a lt Lj(uk). This shows (1) is true. -
54(skipped)
- Now consider (2). let v be any vertex ? Sk .
- The shortest path from a to v with intermediate
vertices among Sk either contains uk or not. - 1. If it does not, then it is also a shortest
path from a to v containing vertices form Sj, and
by ind.hyp, its length is Lj(v). - 2. If it conatins uk, then uk must be the last
vertex before reaching v, since if - a---uk,t---v is a shortest path, then the
path a---t---v, where a---t is a shortest path
from a to t, must be not longer than it. - As a result, it has distance Lj(uk) w(uk,v),
where by ind.hyp., Lj(uk) is the shortest
distance of all paths from a to uk passing
through Sj. - Finally, Step 6 assigns the minimum of both
cases to Lk(v) and hence sastisfies lemma (2).
55Find the distances b/t all pairs of vertices
- Floyd(G(V,E,w))
- 1. for i 1 to n
- for j 1 to n
- d(i,j) w(i,j)
- 2. for k 1 to n ---- d(i,j) is the distance
of minimum path from i - ----- to j with
interior points among 1,2,...,k. - for i 1 to n
- for j 1 to n
- d(i,j) min (d(i,k) d(k,j), d(i,j))
- end / d(i,j) is the shortest distance b/t i
and j / - running time O(n3).
- Note we can also apply Dijkstra's alg to obtain
a O(n3) alg for distances of all pairs of
vertices.
568.7 Planar graphs
- Def 1 A graph is planar iff it can be redrawn in
the plane w/o any edges crossing. Such a drawing
is called a planar representation of the graph. - Ex1 K4 ok
- Ex2 Q3 ok
- Ex3 K3,3 not planar.
- Eular's formula
- A planar representation splits the plane into
regions (including an unbounded one. Eular showed
a relation among regions, E and V). - Theorem 1 G(V,E) a connected planar graph with
e edges and v vertices. Then r (regions) e - v
2. - pf By induction on G (V,E).
- Let G0,...., Gn G be a sequence of subgraphs
of G.
57planar graphs (cont'd)
- G0 contains only one vertex.
- Gi1 is formed from Gi by adding one edge
incident with one vertices in Gi (and a vertex if
needed) - Let ri, ei, vi are regions, edges, vertices
in Gi respectively. - Basis e0 0 r0 1 v0 1. Hence r0 e0 - v0
2. - Ind. step assume ri ei - vi 2.
- Let (ai1,bi1) be the edges added to Gi to form
Gi1. - case 1 ai1,bi1 ? Vi
- gt ai1 and bi1 must be on the boundary of a
common region. (o/w crossing would occur!) - gt add ai1,bi1 partition the region into 2
subregion - gt ri1 ri 1 ei1 ei 1 vi1 vi. gt
ri1 ei1-vi12. - case 2 a i1 ? Vn but b i1 ? Vi gt add
ai1,bi1 does not produce any region. gt ri1
ri ei1ei1 vi1 vi1 - gt ri1 ei1 -vi1 2. QED
58more on planar graphs
- Ex4 G has 20 vertices, each of degree 3.
- gt regions ? r e - v 2 30 - 20
2 12. - Corollary G a connected planar simple graph
with e edges and v vertices ³ 3. gt e 3v - 6. - pf for each region R
- define deg(R) edges on the boundary of R.
- gt 2e S deg(R) each edge shared by 2
regions S deg(v) - Since deg(R) ³ 3 (simple graph),
- 2e S deg(R) ³ 3 r. gt 2e/3 ³ r e-v2 gt
3v- 6 ³ e. QED - Ex5 K5 is not planar.
- sol K5 has C(5,2) 10 edges and 5 vertices.
- gt 3v - 6 15-6 9 lt 10, violating the
necessary condition ! - Ex6 K3,3, though satisfying the condition e
3v - 6, is not planar.
59more on planar graph
- G a connected planar simple graph of e edges and
v gt 2 vertices and no simple ckt of length 3 gt e
2v - 4. - pf no ckt of length 3 gt every region has
degree ³ 4. - gt 2e S deg(R) ³ 4 r. gt e ³ 2r 2e-2v4
gt e 2v - 4. - Ex 6 K 3,3 is not planar.
- K 3,3 has 9 edges and 6 vertices and has no
cycle of length 3. - gt 2 x 6 - 4 8 lt 9. Hence not planar.
- General rule about planar graphs
- Def elementary subdivision
-
- u--------------v gt u------w------v.
60General rule about planar graphs
- Def G1 and G2 are homeomorphic iff they can be
obtained from the same graph by a sequence of
elementary subdivisions. - Ex12
- Fact G in not planar if some of its subgraphs is
not planar. - Theorem 2 Kuratowski theorem
- A graph is nonplanar iff its contains a subgraph
which is homeomorphic to K5 or K3,3.
618.8 Graph coloring
- Problem Given a map, determine at least how many
colors are needed to color the map s.t. neighbor
regions (with a common border) are assigned diff
colors. - Ex
62Transform maps into graphs
- Ideas
- regions ---gt vertices
- R1 and R2 share a border ---gt R1,R2 is an edges
- Def M a map
- GM (V,E) where
- V the set of all regions
- E r1,r2 r1 and r2 share a common border
line in M - GM is called the dual graph of the map M.
- Notes
- 1. Every dual graph of maps are planar graphs
- 2. Every planar graph is the dual graph of some
map.
63Graph coloring
- Def 1G (V,E) a graph.
- A coloring of G is the assignment of a color
to each vertex s.t. no two adjacent vertices are
assigned the same color. - Problem What is the least number of colors
necessary to color a graph ? - Def 2 G(V,E) a graph.
- The chromatic number of G is the least number of
colors needed for a coloring of the graph G. - Problem What is the maximum of all chromatic
numbers of all planar graphs ? - gt1. a problem studied for over 100 years !
18501976, - solved by AppelHaken
- 2. 2000 cases generated and verified by
computer programs. - 3. issue believable ?
64The 4-color theorem
- Theorem 1 The chromatic number of a planar graph
is no greater than 4. - Note 1. Theorem 1 holds for planar graphs only.
- 2. Non-planar graphs can have any chromatic
number gt 4. - Ex K5 has chromatic number 5.
- In fact Kn has chromatic number n for any n.
- Exs (Km ,n) 2.
- (Cn) 2 if n is even and 3 if n is
odd.
65Applications (scheduling and assignments)
- Ex 5 problem how to assign the final exams.
s.t. no student has two exams at the same time. - solu G (V,E) where
- V the set of all courses
- c1,c2 in E iff a student taking courses c1
and c2. - gt A schedule of the final examinations
corresponds to a coloring of the associated graph
G.
1
I
Time courses I
1,6 gt II 2 III 3,5 IV 4,7
IV
II
2
7
3
III
I
6
IV
4
III
5