Đến nội dung

Hình ảnh

Bài toán người đưa thư Trung Hoa

- - - - -

  • Please log in to reply
Chưa có bài trả lời

#1
thuyvan2015

thuyvan2015

    Lính mới

  • Thành viên mới
  • 1 Bài viết

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, vì nó được nhà toán học Trung Hoa Quản Mai Cốc nêu ra đầu tiên vào năm 1962[1].

 

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ó hai đỉnh bậc lẻ hoặc không có đỉnh bậc lẻ) thì sẽ tồn tại hành trình khép kín và chỉ đi qua mỗi cạnh một lần.

Ta xét trường hợp đồ thị có hơn hai đỉ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ý Goodman-Hedetniemi (1973) [2][nguồn không đáng tin?].

Định lý Goodman-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){\displaystyle 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 V0(G){\displaystyle 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 Pi{\displaystyle P_{i}} của V0(G){\displaystyle V_{0}(G)}.

Với mỗi cặp đỉnh u, v trong một phân hoạch Pi{\displaystyle P_{i}} của V0(G){\displaystyle 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(Pi){\displaystyle d(P_{i})}.

Số m(G) chính là số nhỏ nhất trong các tổng d(Pi){\displaystyle d(P_{i})}.

Ví dụ:

430px-%C4%90%E1%BB%8Bnh_l%C3%BD_Gooodman
430px-%C4%90%E1%BB%8Bnh_l%C3%BD_Gooodman
430px-%C4%90%E1%BB%8Bnh_l%C3%BD_Gooodman
Cho đồ thị G gồm 6 đỉnh: a, b, c, d, e, f, với bậc tương ứng là 3,3,2,3,3,2 như trong hình vẽ. Ta sử dụng định lý Goodman-Hedetniemi để tìm hành trình ngắn nhất trong G. Số cạnh của G: q=8{\displaystyle q=8}. Tập các đỉnh có bậc lẻ V0(G){\displaystyle V_{0}(G)}={a,b,e,d}. Có 3 cách phân hoạch tập V0(G){\displaystyle V_{0}(G)} thành 2 cặp:
  • P1{\displaystyle P_{1}}={(a,b)(e,d)}, với d(P1{\displaystyle P_{1}})= d(a,b) + d(e,d)= 1+1 = 2;
  • P2{\displaystyle P_{2}}={(a,d)(b,e)}, với d(P2{\displaystyle P_{2}})= d(a,d)+ d(b,e)= 2+2 = 4;
  • P3{\displaystyle P_{3}}={(a,e)(b,d)}, với d(P3{\displaystyle P_{3}})= d(a,e)+ d(b,d)= 1+1= 2.
Như vậy, m(G)=min{\displaystyle m(G)=min}{2,4,2}=2, suy ra hành trình ngắn nhất trong G có độ dài: q+m(G)=8+2=10{\displaystyle q+m(G)=8+2=10}. Có 2 hành trình như thế:
  • Ta vẽ thêm 2 cạnh phụ (a,b) và (e,d) vào đồ thị G. Chu trình Euler trong đồ thị mới sẽ đồng thời là hành trình ngắn nhất trong đồ thị G:
fabcdeabdef.
  • Ta vẽ thêm 2 cạnh phụ (a,e) và (b,d) vào đồ thị G. Chu trình Euler trong đồ thị mới sẽ đồng thời là hành trình ngắn nhất trong đồ thị G:
fabcdbdeaef.   http://dangtin247.co...anhsachdiendan/




1 người đang xem chủ đề

0 thành viên, 1 khách, 0 thành viên ẩn danh