After careful consideration, I have decided to give a final overall

advertisement
1
G1
2
6
3
5
1
G2
4
2
6
1
2
3
5
G3
4
5
4
G1 is regular (3-regular or regular of degree 3).
G2 is a spanning subgraph of G1.
G3 is an induced subgraph of G1 by {1, 2, 4, 5}.
(or G3 is a subgraph of G1 induced by {1, 2, 4, 5})
1
Prim’s algorithm
Assume that the starting vertex is 1.
2
Sollin’s algorithm
3
Theorem. Suppose that G = (V, E) is a directed graph
and between every two vertices u, v of G, there is one
arc (<u, v> or <v, u>). Then there exists a directed
Hamiltonian path in G.
Proof. Arbitrarily construct a directed path <v1, v2>,
<v2, v3>, , <vm1, vm> in G.
Suppose that m < |V| and v doesn’t appear in the path.
If <v, v1>  E, then add <v, v1> to the path.
Otherwise, <v1, v>  E.
If <v, v2>  E, then add <v1, v> and <v, v2> to the path.
Otherwise, <v2, v>  E.
.
.
.
Finally, either <vk, v> and <v, vk+1> are added to the path
for some 1  k  m  1, or <vm, v> is added to the path.
4
Theorem. Suppose that G = (V, E) is an undirected graph
and |V| = n  2. Let di be the degree of vertex vi. If di + dj 
n  1 for all vi, vj  V and vi  vj, then G has a Hamiltonian
path.
Proof. First, di + dj  n  1 for all vi  vj can assure that G
is connected, as explained below.
Suppose to the contrary that G has two components C1
and C2 of n1 vertices and n2 vertices, respectively.
For every vertex v1 of C1 and every vertex v2 of C2,
d1 + d2  (n1  1) + (n2  1)  n1 + n2  2  n  2, a
contradiction.
Then construct a Hamiltonian path in G as follows.
Step 1. Arbitrarily construct a path (v1, v2), (v2, v3), ,
(vm’1, vm’).
Step 2. Extend the path by repeatedly adding a vertex v
to the head (or tail) if (v, v1)  E ((vm’, v)  E).
5
Suppose that the path (v1, v2), (v2, v3), , (vm1, vm)
results finally.
If m = n, then the path is Hamiltonian.
Step 3. (m  n  1) Construct a cycle on v1, v2, , vm.
If (v1, vm)  E, then a desired cycle is immediate.
Otherwise ((v1, vm)  E), select a pair of vertices vt1, vt
such that (vt1, vm)  E and (v1, vt)  E, where 3  t  m  1.
Delete (vt1, vt) and a desired cycle is as follows.
Notice that d1  m  2 and dm  m  2 (because (v1, vm)  E)).
If no such (vt1, vt) exists, then dm  (m  2)  (d1  1)
(“ 1” excludes the case of t = 2),
i.e., d1 + dm  m  1 < m ( n  1), a contradiction.
6
Step 4. Extend the cycle to a path of length > m  1.
Suppose v  {v1, v2, , vm}.
Now that G is connected, v is reachable to some
vertex, say vr, of the cycle.
A desired path can be obtained by removing (vr1, vr)
(or (v1, vt) if r = t).
Step 5. Repeat Step 2 to Step 4 until a Hamiltonian path
results.
7
Theorem. Suppose that G = (V, E) is an undirected
graph and |V| = n  3. Let di be the degree of vertex vi.
If di + dj  n for every (vi, vj)  E and vi  vj, then G has
a Hamiltonian cycle.
Proof. Suppose that G has no Hamiltonian cycle.
Augment G with a maximal number of edges so that
the resulting graph, denoted by H, has no Hamiltonian
cycle. (i.e., any extra edge added to H will induce a
Hamiltonian cycle in H)
Without loss of generality, assume that (v1, v2) is not an
edge of H. If (v1, v2) is added to H, then there is a
Hamiltonian cycle in H. Assume that the Hamiltonian
cycle is as follows.
v1  v2  v3    vi1  vi  …  vn1  vn  v1
For each 3  i  n, (v2, vi) or (v1, vi1) is not an edge of H,
for otherwise H has a Hamiltonian cycle as follows.
8
v2  vi  vi+1  
 vi2
i=3:
 v4  v3  v 2
v2
vi-1
v1
vi
(v1, v2)  E, (v2, v3)  E or (v2, v3)  E
4in:


 vn1  vn  v1  vi1
(v1, vi1)  E or (v2, vi)  E
d1 + d2  (1 + (n  3)) + 1 = n  1, a contradiction
(“+ 1” because (v1, vn)  E or (v1, vn)  E)
9
Proof. () Clearly.
() By induction on |R|, prove that if |W|  |ADJ(W)| for
every W  R, then G has a complete matching.
Induction basis. |R| = 1.
Induction hypothesis. Suppose that it holds for |R|  m  1.
Then, consider the situation of |R| = m below.
Case 1. |W| < |ADJ(W)| for every W  R
G’
G
x
y
or |R| = |ADJ(R)| and |W| < |ADJ(W)| for every W  R.
G’
G
x
y
10
Arbitrarily pick an edge (x, y), where x  R and y  S.
Let G’ be the graph obtained from G by removing x, y.
For every W’  R  {x}, |W’| < |ADJ(W’)| in G assures
|W’|  |ADJ(W’)| in G’ (the equality holds as |W’| =
|ADJ(W’)|  1 in G and y  ADJ(W’)).
 G’ has a complete matching by induction hypothesis
 G has a complete matching
11
Case 2. |W| = |ADJ(W)| for some W  R.
G+ : the subgraph of G induced by W  ADJ(W).
G++ : the subgraph of G induced by (R  W) 
(S  ADJ(W)).
In G+, |W’|  |ADJ(W’)| for every W’  W.
(Since ADJ(W’) in G+ is identical with ADJ(W’) in G,
|W’| > |ADJ(W’)| in G+ also implies |W’| > |ADJ(W’)| in G,
a contradiction.)
 G+ has a complete matching by induction hypothesis.
12
In G++, |W”|  |ADJ(W”)| for every W”  R  W, as
explained below.
If |W”| > |ADJ(W”)| for some W”  R  W, then
|W”  W| = |W”| + |W|
> |ADJ(W”)| + |ADJ(W)|
 |ADJ(W”  W)|,
a contradiction to the assumption of G !
 G++ has a complete matching by induction hypothesis.
 G has a complete matching.
13
Download