Mở đầuC ° 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ôn
Trang 1Đồ 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ộ
Trang 2Mở đầu
C
° 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
Trang 3Mở đầu
– 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.
A
B
C
D
Mô hình đa đồ thị của thành phố
Konigsberg
Trang 4Mở đầu
– Ví dụ 1 Đồ thị nào có chu trình Euler? Nếu không, có đường đi Euler không?
e
d
a
c
b
e
d
a
c
b
d
a
c
b
e
° G1 có chu trình Euler, ví dụ a, e, c, d, e, b, a.
° G2 và G3 đều không có chu trình Euler
° G3 có đường đi Euler: a, c, d, e, b, d, a, b
° G không có đường đi Euler.
Trang 5Mở đầu
– Ví dụ 2 Đồ thị nào có chu trình Euler? Nếu không, có đường đi
Euler không?
g
c
b a
f
° H2 có chu trình Euler: a, g, c, b, g, e, d, f, a
° H1 và H3 không có chu trình Euler
H có đường đi Euler: c, a, b, c, d, b.
Trang 6Cá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
Trang 7Các điều kiện cần và đủ cho chu trình và đường đi Euler
– Ví dụ
e f
e
Trang 8Cá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
Trang 9Cá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ẻ
Trang 10Cá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
d
e g
c b
f
f
b
c
g
° 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.
° G2 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, b, a, g, b, c, g, f, c, d, f, e, d.
° G3 có 6 đỉnh bậc lẻ nên không có đường đi Euler.
Trang 11Đường đi và chu trình Hamilton
• Định nghĩa 2 Đường đi x0, x1 ,…, x n 1 , x n trong đồ thị G = (V, E) được gọi là đường đi Hamilton nếu V = {x0 , x1 ,…, x n 1 , x n } và x i x j với
0 i j n Chu trình x0 , x1 ,…, x n 1 , x n , x0 (n 1) trong đồ thị G = (V, E) được gọi là chu trình Hamilton nếu x0 , x1 ,…, x n 1 , x n là đường
đi Hamilton
Trang 12Đường đi và chu trình Hamilton
– Ví dụ 5 Đồ thị đơn nào có chu trình Hamilton? Nếu không, có đường đi Hamilton không?
d
b a
b a
d
g b
a
° G1 có chu trình Hamilton a, b, c, d, e, a.
° G2 không có chu trình Hamilton vì bất cứ chu trình nào chứa mọi đỉnh
cũng 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ỳ
Trang 13Đường đi và chu trình Hamilton
– Ví dụ 6 G và H đều không có chu trình Hamilton.
d
b
e
c
e b
d a
a
° 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ể.
Trang 14Đườ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.
Trang 15Đườ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
Trang 16Đườ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!
Trang 17Đườ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 Q n ,
– Tìm chu trình Hamilton trong Q n
011 010
100
101