Bước tới: menu, tìm kiếm
Bài toán người đưa thư Trung Hoa (tiếng Anh: Chinese postman problem) phát biểu rằng:
Một người đưa thư xuất phát từ bưu điện phải đến một số con đường để phát thư rồi quay trở về điểm xuất phát, hỏi người đó phải đi như thế nào để số đường đi là ít nhất.
Trong phần đồ thị, bài toán người đưa thư Trung Hoa tương đương với bài toán tìm chu trình ngắn nhất đi qua tất cả các cạnh của một đồ thị cho trước.
Tên gọi "bài toán người đưa thư Trung Hoa" được Alan Goldman của cục tiêu chuẩn quốc gia Hoa Kỳ (U.S. National Bureau of Standards) đặt cho, vì nó được nhà toán học Trung Hoa Mei-Ku Guan nêu ra đầu tiên vào năm 1962[1].
Mục lục
[ẩn]
1 Cách giải
2 Các phiên bản khác của bài toán
3 Xem thêm
4 Chú thích
5 Tham khảo
6 Liên kết ngoài
[sửa] Cách giải
Bài toán giải bằng phương pháp đồ thị. Dựng một đồ thị có các cạnh tương ứng với các con đường mà người đưa thư phải đi qua. Một chu trình đi qua tất cả các cạnh gọi là một hành trình. Đỉnh xuất phát của chu trình này tương ứng với vị trí của bưu điện.
Nếu đồ thị là đồ thị Euler (các đỉnh đều có bậc chẵn) thì sẽ tồn tại hành trình là chu trình đơn.
Ta xét trường hợp đồ thị có một số đỉnh bậc lẻ. Như thế hành trình của người đưa thư sẽ đi qua một số cạnh hai lần. Trường hợp này được giải quyết bằng cách sử dụng định lý Gooodman-Hedetniemi (1973) [2].
Định lý Gooodman-Hedetniemi (1973):
Nếu G là một đồ thị liên thông có q cạnh thì hành trình ngắn nhất trong G có chiều dài:
q+m(G),
trong đó m(G) là số cạnh mà hành trình đi qua 2 lần.
G có một số chẵn các đỉnh bậc lẻ, gọi số lượng này là 2k.
Gọi V_0(G) là tập hợp các đỉnh bậc lẻ (2k đỉnh) của G. Ta phân 2k đỉnh này thành k cặp, mỗi tập hợp k cặp này được gọi là một phân hoạch P_i của V_0(G).
Với mỗi cặp đỉnh u, v trong một phân hoạch P_i của V_0(G), ta xét khoảng cách giữa 2 đỉnh đó (chính bằng độ dài đường đi ngắn nhất nhận u,v làm 2 đầu mút), ký hiệu là d(u,v). Tính khoảng cách của k cặp đỉnh, rồi cộng lại ta được tổng d(P_i).
Số m(G) chính là số nhỏ nhất trong các tổng d(P_i).