Ứng dụng: Bài toán ngƣời đƣa thƣ Trung Hoa

Một phần của tài liệu Bài giảng toán rời rạc ths nguyễn thị thúy hạnh (Trang 45 - 47)

Bài toán:Một bƣu tá nhận thƣ ở bƣu điện và phải đi qua một số phố để phát thƣ rồi quay về bƣu điện. Bƣu tá đó phải đi theo hành trình nhƣ thế nào để đường đi là ngắn nhất(giả thiết rằng mọi con phố có độ dài nhƣ nhau).

Giải. Đồ thị mô hình biểu diễn sơ đồ đi của bƣu tá nhƣ sau: Coi mỗi con phố là một cạnh của đồ thị, các điểm giao cắt (ngã ba, ngã tƣ…) giữa các con phố là các đỉnh của đồ thị.

Bài toán trên đƣợc phát biểu lại là: Cho đơn đồ thị vô hƣớng liên thông G = (X, U). Hãy tìm một chu trìnhT0ngắn nhấtđi qua tất cả các cạnhcủa G.

Xảy ra hai trƣờng hợp sau:

(1) : Nếu G là đồ thị Euler thì chu trình ngắn nhất T0 cần tìm chính là một chu trình Euler của G, và có độ dàibằng N(U).

(2) : Nếu Gkhông là đồ thị Euler thì G có chứa đỉnh bậc lẻ và không có chu trình Euler. Mọi chu trình đi qua tất cả các cạnh của G sẽ đi qua một số cạnh nào đó ít nhất hai lần. Do T0 là chu trình ngắn nhất nên T0 chỉđi qua mỗi cạnhnhiều nhất hai lần. Để ý rằng, bằng cách vẽ thêm một số cạnh song song với các cạnh mà T0 đi qua hai lần thì G

sẽ trở thành một đồ thị Euler GET0 chính là một chu trình Euler trong GE.

Gọi số cạnh mà T0đi qua hai lần là m(G). Số cạnh m(G)xác định theo thuật toán sau:

(1) : Xác định tập các đỉnh bậc lẻX0(G) = {x | ( ) }. Gọi sốđỉnh bậc lẻ của G 2k.

(2) : Phân hoạch X0thành k cặp. Gọi P = {P1, P2, …, Pj} là tập hợp tất cả các phân hoạch có thể có của X0. Với mỗi phân hoạch Pi, ta xác định độ dài của phân hoạch Pinhƣ sau: ( ) ∑( ) ( ), trong đó ( )= độ dài đƣờng đi ngắn nhất từ đỉnh x đến đỉnh y.

(3) : Khi đóm(G) = ( ).

Kết luận, chu trình ngắn nhất T0đi qua tất cả các cạnh của G có độ dài làN(U) + m(G). Chu trình đó chính là chu trình Euler trong đồ thị GE.

Ví dụ : Tìm hành trình ngắn nhất của bài toán người đưa thư Trung Hoa với đồ thị sau:

Giải.

Đỉnh a b c d e f

Bậc 2 3 2 3 3 3

Số cạnh của G là:

m = ∑ ( ) (cạnh). G

Hình 3.7a. Bài toán ngƣời đƣa thƣ Trung Hoa.

Tập các đỉnh bậc lẻ của G là X0 = {b; d; e; f}. Ta có 3 phân hoạch của X0 là :

*( ) ( )+ ( ) ( ) ( )

*( ) ( )+ ( ) ( ) ( )

*( ) ( )+ ( ) ( ) ( )

Bằng cách vẽ thêm 2 cạnh (b, e) và (d, f) ta được đồ thị Euler GE.

Vậy một chu trình ngắn nhất T0 đi qua tất cả các cạnh của đồ thị G đã cho là:

Hình 3.7b. Đồ thị Euler GE.

Một phần của tài liệu Bài giảng toán rời rạc ths nguyễn thị thúy hạnh (Trang 45 - 47)