Đồ thò
7.5. Đường đi Euler và đường đi Hamilton
Tài liệu này được soạn theo sách Toán học rời rạc ứng dụng trong tin học , K. H.
Rosen, người dòch: Phạm Văn Thiều và Đặng Hữu Thònh, Nhà xuất bản Khoa học
và kỹ thuật, 1998.
Tài liệu lưu hành nội bộ
10/01/15
7.5. Đường đi Euler
1
Mở đầu
Thành phố Konigsberg thuộc Phổ (Kaliningrad, Cộng hoà Nga)
° Bài toán cầu Konigsberg: Có thể xuất phát từ một đòa điểm nào
đó trong thành phố đi qua tất cả các cầu, mỗi cầu không qua
nhiều hơn một lần, rồi lại trở về điểm xuất phát được không?
° Nhà toán học Leonhard Euler giải bài toán năm 1736.
°
C
A
D
B
10/01/15
7.5. Đường đi Euler
2
Mở đầu
C
Mô hình đa đồ thò của
thành phố
Konigsberg
A
D
B
– Bài toán cầu Konigsberg: Có tồn tại chu trình đơn trong đa đồ
thò chứa tất cả các cạnh?
– Đònh nghóa 1. Chu trình đơn chứa tất cả các cạnh của đồ thò G
được gọi là chu trình Euler. Đường đi Euler trong G là đường đi
đơn chứa mọi cạnh của G.
10/01/15
7.5. Đường đi Euler
3
Mở đầu
– Ví dụ 1. Đồ thò nào có chu trình Euler? Nếu không, có đường đi
Euler không?
a
b
a
e
d
G1
b
a
b
c
c
d
e
c
d
G2
G3
e
G1 có chu trình Euler, ví dụ a, e, c, d, e, b, a.
° G và G đều không có chu trình Euler
2
3
° G có đường đi Euler: a, c, d, e, b, d, a, b
3
° G không có đường đi Euler.
2
°
10/01/15
7.5. Đường đi Euler
4
Mở đầu
– Ví dụ 2. Đồ thò nào có chu trình Euler? Nếu không, có đường đi
Euler không?
a
b
a
b
c
d
a
b
g
f
d
c
H1
c
e
d
H2
H3
H2 có chu trình Euler: a, g, c, b, g, e, d, f, a
° H và H không có chu trình Euler
1
3
° H có đường đi Euler: c, a, b, c, d, b.
3
°
10/01/15
7.5. Đường đi Euler
5
Các điều kiện cần và đủ cho chu trình và đường đi Euler
– Đònh lý 1. Một đa đồ thò liên thông có chu trình Euler nếu và chỉ
nếu mỗi đỉnh của nó đều có bậc chẵn.
– Giải bài toán cầu Konigsberg:
° Đa đồ thò biểu diễn các cầu này có 4 đỉnh bậc lẻ nên không
tồn tại chu trình Euler.
° Không có cách nào để một người có thể xuất phát từ một
đòa điểm nào đó trong thành phố đi qua tất cả các cầu, mỗi
cầu không qua nhiều hơn một lần, rồi lại trở về điểm xuất
phát.
10/01/15
7.5. Đường đi Euler
6
Các điều kiện cần và đủ cho chu trình và đường đi Euler
– Ví dụ.
a
b
c
d
c
d
f
e
e
G
10/01/15
7.5. Đường đi Euler
H
7
Các điều kiện cần và đủ cho chu trình và đường đi Euler
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Thuật toán 1. Xây dựng chu trình Euler
procedure Euler(G: đa đồ thò liên thông với tất cả các đỉnh bậc chẵn)
chu_trình := chu trình trong G bắt đầu tại một đỉnh được chọn tuỳ ý và các
cạnh được thêm vào để xây dựng đường đi qua các đỉnh và
cuối cùng quay lại đỉnh này.
H := G với các cạnh của G sau khi bỏ đi chu_trình
while H còn các cạnh
begin
chu_trình_con := chu trình trong H bắt đầu tại đỉnh trong H cũng là
đỉnh đầu mút của một cạnh thuộc chu_trình.
H := H với các cạnh của chu_trình_con, và tất cả các đỉnh cô lập bò loại
bỏ.
chu_trình := chu_trình với chu_trình_con được chèn vào tại một đỉnh
thích hợp
end
10/01/15
7.5. Đường đi Euler
8
Các điều kiện cần và đủ cho chu trình và đường đi Euler
– Đònh lý 2. Một đa đồ thò liên thông có đường đi Euler nhưng
không có chu trình Euler nếu và chỉ nếu nó có đúng hai đỉnh
bậc lẻ.
10/01/15
7.5. Đường đi Euler
9
Các điều kiện cần và đủ cho chu trình và đường đi Euler
– Ví dụ 4. Đồ thò nào có đường đi Euler?
a
b
a
g
f
a
e
f
d
c
G1
b
c
d
G2
b
c
g
e
d
G3
G1 có đúng hai đỉnh bậc lẻ là b và d, do đó có đường đi Euler nhận b và d
là điểm đầu mút, d, a, b, c, d, b.
° G có đúng hai đỉnh bậc lẻ là b và d, do đó có đường đi Euler nhận b và d
2
là điểm đầu mút, b, a, g, b, c, g, f, c, d, f, e, d.
° G có 6 đỉnh bậc lẻ nên không có đường đi Euler.
3
°
10/01/15
7.5. Đường đi Euler
10
Đường đi và chu trình Hamilton
•
Đònh nghóa 2. Đường đi x0, x1 ,…, xn − 1 , xn trong đồ thò G = (V, E)
được gọi là đường đi Hamilton nếu V = {x0 , x1 ,…, xn − 1 , xn} và xi ≠ xj
với 0 ≤ i < j ≤ n. Chu trình x0 , x1 ,…, xn − 1 , xn , x0 (n > 1) trong đồ thò G
= (V, E) được gọi là chu trình Hamilton nếu x0 , x1 ,…, xn − 1 , xn là
đường đi Hamilton.
10/01/15
7.5. Đường đi Euler
11
Đường đi và chu trình Hamilton
a
– Ví dụ 5. Đồ thò đơn nào có chu trình Hamilton? Nếu không, có
đường đi Hamilton không?
b
c
e
G1
d
a
b
a
b
g
d
c
d
c
e
G2
f
G3
G1 có chu trình Hamilton a, b, c, d, e, a.
° G không có chu trình Hamilton vì bất cứ chu trình nào chứa mọi đỉnh cũng
2
phải chứa cạnh {a, b} hai lần, nhưng G2 có đường đi Hamilton: a, b, c, d.
° G không có chu trình Hamilton, không có đường đi Hamilton, vì bất kỳ
3
đường đi nào chứa mọi đỉnh cũng phải chứa một trong các cạnh {a,b}, {c,d},
{e,f} quá một lần.
°
10/01/15
7.5. Đường đi Euler
12
Đường đi và chu trình Hamilton
– Ví dụ 6. G và H đều không có chu trình Hamilton.
a
d
e
a
d
c
b
c
b
G
e
H
G không có chu trình Hamilton, vì có đỉnh bậc 1 (đỉnh e).
° Các đỉnh a, b, d, e có bậc là 2 nên mọi cạnh liên thuộc với chúng
phải thuộc chu trình Hamilton nào đó. Không tồn tại chu trình
Hamilton trong H vì nếu ngược lại thì chu trình đó phải chứa cả 4 cạnh
liên thuộc với c, đây là điều không thể.
°
10/01/15
7.5. Đường đi Euler
13
Đường đi và chu trình Hamilton
– Đònh lý 3. Giả sử G là một đơn đồ thò liên thông với n đỉnh trong
đó n ≥ 3, khi đó G có chu trình Hamilton nếu bậc của mỗi đỉnh ít
nhất bằng n/2.
10/01/15
7.5. Đường đi Euler
14
Đường đi và chu trình Hamilton
– Ví dụ 8. Vò trí của kim chỉ thò xoay tròn có thể được biểu diễn
dưới dạng số.
° Chia đường tròn thành 2 n cung, mỗi cung ứng với một sâu
nhò phân chiều dài n.
° Biểu diễn số của vò trí của kim chỉ thò được xác đònh bằng n
chổ tiếp xúc; mỗi tiếp xúc tương ứng với một bit.
10/01/15
7.5. Đường đi Euler
15
Đường đi và chu trình Hamilton
– Ví dụ 8. (tiếp theo)
° Có thể lầm lẫn khi kim ở ranh của cung, vì vò trí tương đối
của các cung với nhau thường không chính xác!
10/01/15
7.5. Đường đi Euler
16
Đường đi và chu trình Hamilton
– Ví dụ 8. (tiếp theo) Mã Gray
° Mã Gray là cách gán nhãn cho các cung của đường tròn sao
cho các cung kề nhau được gán bằng các xâu khác nhau
đúng một bit.
° Giải:
– Mô hình bài toán bằng khối n chiều Qn ,
– Tìm chu trình Hamilton trong Qn .
111
110
100
101
011
010
000
10/01/15
001
7.5. Đường đi Euler
17
10/01/15
7.5. Ñöôøng ñi Euler
18