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>, , <vm1, 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), , (vm1, 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 vt1, vt
such that (vt1, vm) E and (v1, vt) E, where 3 t m 1.
Delete (vt1, vt) and a desired cycle is as follows.
Notice that d1 m 2 and dm m 2 (because (v1, vm) E)).
If no such (vt1, 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 (vr1, 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 vi1 vi … vn1 vn v1
For each 3 i n, (v2, vi) or (v1, vi1) is not an edge of H,
for otherwise H has a Hamiltonian cycle as follows.
8
v2 vi vi+1
vi2
i=3:
v4 v3 v 2
v2
vi-1
v1
vi
(v1, v2) E, (v2, v3) E or (v2, v3) E
4in:
vn1 vn v1 vi1
(v1, vi1) 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
© Copyright 2026 Paperzz