Tải bản đầy đủ (.pdf) (30 trang)

Một thuật toán trên đồ thị giải bài toán người du lịch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (474.5 KB, 30 trang )

Mục lục
trang
Mở đầu

Ch-ơng 1. Các kiến thức cơ sở

3
4

Đ1. Đồ thị

4

Đ2. Thuật toán tìm đ-ờng đi ngắn nhất trên đồ thị

6

Đ3. Đ-ờng đi chu trình Hamilton

9

Ch-ơng 2. Bài toán xuất phát

12

Đ1. Phát biểu bài toán

12

Đ2. Tính chất của thành phần tối -u


13

Đ3. Thuật toán giải

16

Ch-ơng 3. Về một ứng dụng của bài toán "Tìm

19

hành trình tối -u trên đồ thị"

Đ1. Bài toán ng-ời du lịch

19

Đ2. áp dụng chu trình Hamiltơn để giải bài toán "Ng-ơi
du lịch"

26

Kết luận

30

Tài liệu tham khảo

31



Mở đầu
Lý thuyết đồ thị là một lĩnh vực nghiên cứu từ lâu và có nhiều ứng dụng
trong thực tiễn. Những t- t-ởng cơ bản của lý thuyết đồ thị đ-ợc đề xuất vào
những năm đầu của thế kỷ 18 bởi nhà toán học lỗi lạc ng-ời Thuỵ sỹ
Leonohard Euler.
Lý thuyết đồ thị đ-ợc sử dụng để giải các bài toán trong nhiều lĩnh vục
khác nhau. Khi nghiên cứu lý thuyết đồ thị chúng tôi đà gặp đ-ợc các công
trình mới của Giáo s- Trần Vũ Thiệu. Với ý thức tập d-ợt, nghiên cứu, nhằm
hoàn thành luận văn tốt nghiệp cử nhân khoa học, chúng tôi mạnh dạn chọn đề
tài Một thuật toán trên đồ thị giải bài toán ng-ời du lịch .
Luận văn đ-ợc chia làm 3 ch-ơng.
Ch-ơng 1 bao gồm các kiến thức cơ sở, nhằm tóm tắt những vấn đề liên
quan tới đề tài.
Ch-ơng 2 là bài toán xuất phát, nhằm phát biểu bài toán, nêu một số tính
chất và thuật toán giải bài toán đà nêu.
Ch-ơng 3 đề cập tới một ứng dụng của bài toán Tìm hành trình tối -u
trên đồ thị . Từ những kết ở ch-ơng 2 cho phép ta áp dụng để giải Bài toán
ng-ời du lịch .
Trong toàn bộ nội dung của Luận văn đ-ợc xét trong không gian thực R 2.
Để hoàn thành Luận văn tốt nghiệp tôi đà nhận đ-ợc sự h-ớng dẫn nhiệt
tình của Thầy giáo, Tiến sỹ Trần Xuân Sinh. Nhân dịp này cho phép tôi bày tỏ
lòng biết ơn sâu sắc đến Thầy giáo. Đồng thời tôi xin gửi đến các Thầy giáo,
Cô giáo thuộc tổ Điều khiển, Khoa Toán, gia đình, bạn bè đà động viên giúp
đỡ tôi nhiều trong quá trình học tập, rèn luyện và thực hiện đề tài. Vì năng lực,
thời gian có hạn, chắc luận văn không tránh khỏi những thiếu sót, tôi rất thành
thật mong đ-ợc sự góp ý chân thành của các thầy cô giáo và các bạn.
Tác giả

3



Ch-ơng 1
Các kiến thức cơ sở
Đ1. Đồ thị ([1], [2])
1.1.1. Định nghĩa đồ thị
Có nhiều cách để định nghĩa đồ thị
Định nghĩa 1: Đồ thị là cặp G = (A, E), trong ®ã A = x, y, a, b ... gọi là
tập các đỉnh và E = (x, y) : x, y A gọi là tập các cung (hay cạnh), tức là E
= AA. (Về thực chất đồ thị là tập hợp các đối t-ợng đ-ợc biểu diễn bằng đỉnh
và giữa các đối t-ợng có mối liên hệ với nhau).
Định nghĩa 2: Cho một đồ thị có nghĩa là cho một tập A và một ánh xạ
: A A.
Ta ký hiệu đồ thị bằng G = (A, ), mỗi phần tử ai A đ-ợc gọi là đỉnh và
cặp (ai, aj) gọi là cung của G. Ký hiệu tập cạnh là E. Khi đó ta cũng th-ờng
viết G = (A, E).
1.1.2. Phân loại đồ thị
Định nghĩa 1: Đơn đồ thị vô h-ớng G = (V, E) bao gồm V là tập đỉnh và
E là tập. Các cạnh không có thứ tự gồm hai phần tử khác nhau của V đ-ợc gọi
là cạnh.
Định nghĩa 2: Đa đồ thị vô h-íng G = (V, E) bao gåm V lµ tËp đỉnh và E
là họ các cạnh. Hai cạnh e1, e2 đ-ợc gọi là các cạnh tạp nếu chúng cùng t-ơng
ứng với một cặp đỉnh.
Định nghĩa 3: Giả sử đồ thị vô h-ớng G = (V, E), trong đó V là tập các
đỉnh và E là tập các cặp không có thứ tự gồm hai đỉnh (không nhất thiết
phải khác nhau) của V gọi là các cạnh. Cạnh e gọi là khuyên nếu có dạng
e = (u, u).
Nếu đồ thị G = (V, E), các cạnh đ-ợc xác định bởi thứ tự các đỉnh kề thì
ta nói đồ thị đà cho có h-ớng. Cạnh (u, v) thuộc đồ thị có h-ớng thì u gọi là
đỉnh đầu, còn v gọi là đỉnh ngọn, ta ký hiệu v = F(u).
Định nghĩa 4: Hai đỉnh u, v của đồ thị vô h-ớng G đ-ợc gọi là kề nhau

nếu (u, v) là hai cạnh của đồ thị G. Nếu e = (u, v) là cạnh của đồ thị thì ta nói
4


cạnh này liên thuộc hai đỉnh u và v, ta cũng nói hai đỉnh u, v liên thuộc cạnh
(u, v). Đồng thời các đỉnh u và v sẽ đ-ợc gọi là các đỉnh đầu của cạnh (u, v),
lúc này ta cũng nói hai đỉnh u và v là kề nhau.
Định nghĩa 5: Đồ thị G đ-ợc gọi là đầy đủ nÕu hai ®Ønh bÊt kú ®Ịu kỊ
nhau.
Chó ý: Ta cã thể biểu diễn đồ thị bằng hình học, chẳng hạn:
Với đồ thị có h-ớng, trên mặt phẳng, ta biểu diễn đỉnh bằng các điểm,
biểu diễn cung bằng một đoạn định h-ớng xác định.
Ví dụ:
Cho tập các đỉnh A = a, b, c, d.

x

a

x

b

TËp c¹nh
E = (a, b); (b, c); (d, c); (d, a); (a, a).
Ta cã thĨ biĨu diƠn ®å thị bằng ph-ơng
pháp hình học (Hình 1).

x


c

dx
Hình 1.

1.1.3. Các khái niệm cơ bản khác có liên quan
1. Cho đồ thị ®Çy ®đ G = (A, E) víi tËp ®Ønh A = a1, a2, . . ., an và tập
cạnh E = AA. Mỗi đỉnh ai A có gắn một sè thùc ti (i = 1, n ) gäi lµ cao độ
của đỉnh ai. Khi đó ta cố định một đỉnh ab nào đó gọi là đỉnh nguồn. Cố định
một đỉnh ae nào đó gọi là đỉnh đích.
2. Đ-ờng đi là một dÃy các đỉnh sao cho mỗi đỉnh trong dÃy (không kề
đỉnh cuối cùng) đ-ợc nối với đỉnh tiếp theo bằng một cung nào đó. Một đỉnh
đ-ờng đi qua hơn một lần gọi là đỉnh lặp.
Chẳng hạn: Đ-ờng đi
d = x1, x2, . . . , xi, xi+1, . . . , xk,

(*)

trong ®ã xi+1  F(xi),  i = 1, 2, .., k-1.
Có định nghĩa t-ơng đ-ơng: Đ-ờng là một dÃy cung sao cho đỉnh cuối
cùng của mỗi cung trong dÃy (không kể đỉnh cuối cùng) đều là đỉnh đầu của
cung tiếp theo sau.
Đ-ờng có dạng (*), ta nãi r»ng ®-êng d ®i tõ ®Ønh x1 ®Õn ®Ønh xk.

5


3. Chu trình là một đ-ơng khép kín, tức là ®Ønh ci cđa ®-êng trïng víi
®Ønh ®Çu cđa ®-êng. Do đó khi nói đến chu trình, ng-ời ta không xác định đầu
và cuối. Chu trình đ-ợc gọi là chu trình đơn nếu không có đỉnh lặp.

4. Xích là một dÃy các đỉnh, sao cho mỗi đỉnh trong dÃy (không thể ®Ønh
ci cïng) lu«n kỊ víi ®Ønh tiÕp theo sau.
Trong d, ta nói rằng xích nối đỉnh x1 với xk.
Xích đơn là xích không có đỉnh lặp.
Chu trình vô h-ớng là một xích khép kín (tức là đỉnh cuối của xích trùng
với đỉnh đầu của xích). Khi nói đến chu trình vô h-ớng ta không cần xác định
đỉnh đầu và đỉnh cuối của chu trình.
Chu trình vô h-ớng đ-ợc gọi là đơn nếu không có đỉnh lặp.
5. Bậc của đỉnh x trong đồ thị vô h-ớng là số cạnh liên thuộc với nó, ký
hiệu là r(x). Đỉnh có bậc bằng 0 gọi là đỉnh cô lập. Đỉnh có bậc bằng 1 đ-ợc
gọi là đỉnh treo.
6. Ma trận kề. Ta đánh số các đỉnh bằng các số tự nhiên: 1, 2. . . ., n.
Ma trËn vu«ng Mnn = (mij) chØ gåm các phần tử 0, 1 gọi là ma trận kề
của đồ thị G nếu mi j = 1 khi và chỉ khi (i, j) là cung của G (cách nói khác là
mij = 0 khi và chỉ khi (i, j) không phải là cung của G).
Rõ ràng G là đồ thi đối xứng (vô h-ớng) khi và chỉ khi ma trận kề M đối
xứng.
7. Số cung của đ-ờng gọi là độ dài của đ-ờng đó.
Đ 2. thuật toán tìm đ-ờng đi ngắn nhất trên đồ thị
1.2.1. Phát biểu bài toán
Cho đồ thị G và đỉnh a, b G. Tìm đ-ờng đi ngắn nhất trên đồ thị (nếu
có) từ a đến b.
1.2.2. Thuật giải
Để có thuật giải bài toán này ta xét các định lý sau:
Định lý 1.2.2.1. Phần tử ë hµng i vµ cét j cđa ma trËn l thừa Mk là số
đ-ờng khác nhau có độ dài k ®i tõ ®Ønh i ®Õn ®Ønh j.
Chøng minh. Ta chøng minh theo quy n¹p.
6



Với k = 1, định lý đúng (theo định nghĩa ma trận kề).
t

Giả sử định lý đúng với k = n.
Ta cần chứng minh định lý đúng với k = n+1.
n

Ký hiÖu M = (bij), M = (aij), T = Mn.M = (cij).

i

j

n

Khi đó cij =


t 1

bit.atj.

Hình 2.

Với t bất kú, 1  t  n, theo gi¶ thiÕt quy nạp bit là số đ-ờng đi từ i
đến t có độ dài k.
Nếu aij = 0 thì không có cung từ t đến j, do đó không có đ-ờng đi từ
i đến j qua t với độ dài là k+1.
Nếu aij = 1 thì có cung từ t đến j, do đó có các đ-ờng đi từ i đến j
qua t với độ dài là k+1, số các đ-ờng đi đó là bit.

Vậy theo tổng trên, khi tính cij, ta sẽ có toàn bộ số đ-ờng đi từ i đến j với
độ dài k+1.
Định lý đ-ợc chứng minh.



Định lý 1.2.2.2. Giả sử đồ thị G có n đỉnh. Nếu có ®-êng ®i tõ a ®Õn b th×
sÏ cã ®-êng ®i từ a đến b có độ dài không lớn
hơn n-1.
Chứng minh. Giả sử có đ-ờng đi từ a đến b.
Ta ký hiệu đ-ờng đi đó là
d = a = x1, x2, . . . , xk = b
Hình 3.

với độ dài nhỏ nhất.

Rõ ràng độ dài của đ-ờng đi là k-1. Nếu k-1 > n-1 thì trong dÃy đỉnh của
đ-ờng ®ã sÏ cã i < j sao cho xi = xj, (vì số đỉnh của đ-ờng đi lớn hơn số ®Ønh
cđa ®å thÞ). Khi ®ã (bá qua ®Ønh xj)
a = x1, x2, . . . , xi, xi+1, . . ., xk = b,
cũng là đ-ờng đi từ a đến b nh-ng có độ dài bé hơn. Điều đó mâu thuẩn với d
có độ dài bé nhất. Định lý đ-ợc chøng minh.

7




Hệ quả: Giả sử đồ thị có n đỉnh. Khi ®ã tån t¹i ®-êng ®i tõ ®Ønh a ®Õn
®Ønh b khi và chỉ khi tồn tại đ-ờng đi từ đỉnh a đến đỉnh b với độ dài không

lớn hơn n-1.
Từ đó vấn đề đặt ra là: Cho đồ thị G và hai đỉnh a, b G. Khi nào thì tồn
tại đ-ờng đi từ a đến b?
Theo định lý 1.2.2.1 và hệ quả của định lý 1.2.2.2 ta chỉ cần xÐt ma trËn
tæng
T = M1 + M2 + . . . + Mn-1 = (tij).
Khi đó để tồn tại đ-ờng ®i tõ ®Ønh i ®Õn ®Ønh j ®iỊu kiƯn cÇn và đủ là các
phần tử tij > 0.
Bây giờ ta đi vào việc giải bài toán đà nêu: Cho đồ thị G và hai đỉnh
a, b G. Tìm đ-ờng ®i ng¾n nhÊt (nÕu cã) tõ a ®Õn b.
1.2.3. ThuËt toán Pk
Giả sử có đồ thị G = (A, F).
Ta xây dựng lần l-ợt các tập đỉnh P0, P1, . . . . của đồ thị nh- sau:
Đặt
P0 = a.
Pk+1 = F(Pk)\ (P1 P2 . . .  Pk), víi k > 0.
Rõ ràng nếu Pk thì Pk+1 . Vì tập đỉnh hữu hạn nên sẽ đ-ợc một dÃy
hữu hạn các tập P0, P1, . . . , Pk sao cho
Pi  0, Pi Pj = , với i j.
k

Đặt



Pi = P.

i 1

Ta nhận xét rằng:

+ Nếu có đ-ờng đi từ a tới b, thì b phải có mặt trong một tập Pi nào đó
(và chỉ một lần mà thôi).
+ b Pi thì i là độ dài ngắn nhất từ a đến b.
+ k n-1.
Nh- vậy, trong quá trình trên cho ta:
8


- Nếu gặp b trong P

k

thì dừng. Khi đó k là độ dài ngắn nhất của đ-ờng từ a

đến b.

- Nếu không bao giờ gặp b, thì đến một lúc nào đó Pk rỗng và quá trình
cũng dừng, không có đ-ờng đi từ a đến b.

- Để tìm đ-ờng đi (trong tr-ờng hợp b Pi) ta dò ng-ợc lại theo quy tắc
sau (cho đến khi gặp a tức là ®Õn P0): NÕu t  Pj víi j > 0 thì trong Pj-1 sẽ có
đỉnh s sao cho có cung đi từ s tới t.
Đ 3. đ-ờng đi chu trình hamilton
1.3.1. Định nghĩa
Đ-ờng đi qua tất cả các đỉnh của đồ thị, mỗi đỉnh đúng một lần đ-ợc gọi
là đ-ờng đi Hamilton.
Xích đi qua một lần tất cả các đỉnh của đồ thị, mỗi đỉnh đúng một lần
đ-ợc gọi là xích Hamilton
Chu trình bắt đầu từ đỉnh v nào đó qua tất cả các đỉnh còn lại, mỗi đỉnh
đúng một lần rồi quay trở về v đ-ợc gọi là chu trình Hamilton.

Đồ thị G đ-ợc gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton và
gọi là nửa Hamilton nÕu nã chøa ®-êng ®i Hamilton.
VÝ du: 1) Ng-êi du lịch đi qua mỗi thành phố đúng một lần rồi quay trở
về thành phố xuất phát là chu trình Hamilton.
2) Cho các hình vẽ:

G1
111

G2
111

G3
111
Hình 4.

ở hình 4 thì G3 là chu trình Hamilton; G2 là nửa Hamilton; G1 không là
nửa Hamilton.
9


1.3.2. Tính chất
Định lý 1.3.2.1. Đồ thị đầy đủ luôn có đ-ờng Hamilton.
Chứng minh. Chúng ta quy nạp theo số đỉnh n của G.
Với n = 1, 2: Định lý hiển nhiên đúng.
Giả sử định lý đúng với n đỉnh, tức là
luôn có đ-ờng đi Hamilton qua đồ thị đầy
đủ có n đỉnh đà cho.

a

x1
........

Ta cần chứng minh rằng định lý đúng
với đồ thị đầy đủ có (n+1) đỉnh.
Giả sử G là đồ thị đầy đủ có (n+1) đỉnh và
G suy ra từ G bằng cách bớt đỉnh a và các
cung kề a. Khi đó G có n đỉnh và G cũng
đầy đủ.

xi
xi+1
.....

xn

Hình 5.

Theo giả thiết quy nạp G có ®-êng ®i Hamilton
T = x1, x2, . . . ,xn.
NÕu trong G có cung (xn, a) thì đ-ờng (T, a) sẽ là đ-ờng Hamilton cần
tìm.
Nếu trong G có cung (a, x1) thì đ-ờng (a, T) sẽ là đ-ờng Hamilton cần
tìm.
Trong tr-ờng hợp ng-ợc lại, G có các cung (a, xn) và (x1, a). Khi đó sẽ tồn
tại i để có các cung (xi, a) và (a, xi+1). Có thể lấy
x1, ..., xi, a, xi+1, ..., x
là đ-ờng Hamilton cần tìm. Nh- vậy đồ thị đầy đủ luôn có đ-ờng đi Hamilton.
Định lý 1.3.2.2 (Định lý Dirak). Đơn đồ thị vô h-ớng G, với n > 2 đỉnh
và mỗi đỉnh có bậc không nhỏ hơn (n/2), là đồ thị Hamilton.

Chứng minh. Ta thêm vào đồ thị G, k đỉnh mới và nối chúng lại với tất cả
đỉnh của G. Giả sử k là số nhỏ nhất các đỉnh cần thêm vào để đồ thị thu đ-ợc
G là đồ thị Hamilton. Ta sÏ chøng minh r»ng k = 0.
ThËt vËy, gi¶ sư ng-ợc lại k > 0 . Ký hiệu
v, p, w, . . ., v
10


là chu trình Hamilton trong G , trong đó v, w là đỉnh của G còn p là một
trong số các đỉnh mới. Khi đó w không kề với v (vì nếu ng-ợc lại, ta không
cần sử dụng p và điều đó mâu thuẫn với k nhỏ nhất). Hơn thế nữa đỉnh w
chẳng hạn, kề với w không thể đi liền sau đỉnh v (kề với v) vì rằng khi ®ã ta cã
thÓ thay:
v  p  w  . . .  v’  w’  . . . v
bëi
v  v’  . . .  w  w . . . v
bằng cách đảo ng-ợc đoạn chu trình nằm giữa w và v . Từ ®ã suy ra sè ®Ønh
cđa G’ kh«ng kỊ víi w là không nhỏ hơn số đỉnh kề với nó (tức là ít nhất
cũng là bằng

n
n
+k). Đồng thời số đỉnh của G’ kỊ víi w cịng Ýt ra b»ng +k.
2
2

Do ®ã không có đỉnh nào của G vừa kề, vừa không kề với w, cho nên tổng số
đỉnh của đồ thị G (G có n+k đỉnh) không ít hơn n+2k. Mâu thuẫn.
Vì vậy định lý đà đ-ợc chứng minh.


11


Ch-ơng 2
Bài toán xuất phát
Đ 1. p hát bi ểu b ài toán ([4 ] , [ 5] )
Cho đồ thị đầy đủ G = (A, E) với tập đỉnh A = a1, a2, ..., an và tập cạnh
E = AA. Mỗi đỉnh ai A có gắn một số thùc ti (i = 1, 2, ..., n) gäi lµ cao ®é
cđa ®Ønh ai. Cho mét ®Ønh ab  A gọi là đỉnh nguồn và một đỉnh ae A gọi là
đỉnh đích với b, e 1, 2, ..., n và tb te. Xét bài toán sau đây gọi là bài toán
A.
Bài toán A: Tìm một đ-ờng đi Haminton trên đồ thị từ đỉnh ab tới đỉnh
ae (qua mọi đỉnh của đồ thị, mỗi đỉnh một lần) sao cho làm cực tiểu mức khác
biệt lớn nhất giữa cao ®é cđa hai ®Ønh liªn tiÕp bÊt kú trªn ®-êng đi.
Nói cách khác, trong số các hoán vị =  i1, i2, ..., in} cđa c¸c sè 1, 2, ...,
n víi i1 = b, in = e. H·y t×m một hoán vị sao cho cực tiểu hàm:
F() = max  tik - tik+1  min.
1 k  n 1

Cã thể thấy rằng mỗi hoán vị nh- thế sẽ t-ơng ứng với một đ-ờng đi
Haminton trên đồ thị từ ab đến ae, còn hoán vị * = argminf(): P sẽ
đ-ợc gọi là hành trình tối -u từ ab đến ae.
Bây giờ ta không cố định đỉnh đầu và đỉnh cuối, ta cũng có bài toán B
t-ơng tự nh- sau:
Bài toán B: Tìm một chu trình Haminton trên đồ thị đà cho làm cực tiểu
mức khác biệt lớn nhất giữa cao độ của hai đỉnh liên tiếp bất kỳ trong hai điểm
liên tiếp bất kỳ trong chu trình.
Một chu trình nh- thế cũng sẽ đ-ợc gọi là hành trình tối -u. Rõ ràng số
các chu trình Haminton trên đồ thị đ-ợc xét bằng n!
Giống nh- bài toán A, bài toán này có thể diễn đạt theo cách khác nhsau: Tìm một hoán vị = (i1, i2, ..., in) cđa c¸c sè 1, 2, ..., n sao cho

g() = max tik - tik+1  min, víi quy -íc in+1 = i1.
1 k n 1

Lời giải của bài toán trên sẽ không thay đổi nếu thay mọi ti bởi ti’ = ti+t
víi t lµ mét sè thùc bÊt kú. Vì thế bằng cách chọn t > 0 đủ lớn, cã thÓ cho r»ng
12


ti > 0 víi  i = 1, 2, ..., n. Hơn nữa, không giảm tổng quát ta có thể giả thiết
(nếu cần thiết thì đánh số lại các đỉnh của đồ thị)
0 < t1 t2... tb ...  te  ...  tn.

(2.1)

Khi cã nhiỊu gi¸ trị ti trùng nhau, thì các đỉnh t-ơng ứng với các giá trị
trùng nhau đó đ-ợc sắp xếp theo thứ tù t ý. Gi¶ sư trong d·y sè (2.1) chØ có
q giá trị khác nhau (q < n), chẳng hạn đó là các giá trị h1 < h2 < ... chia các đỉnh của đồ thị G thành q líp, ký hiƯu lµ T1, T2, ..., Tq sao cho đỉnh ai
thuộc lớp Tk khi và chỉ khi ti = hk , (i = 1, 2, ..., n; k = 1, 2, ..., q). Khi đó các
đỉnh thuộc lớp T1 sẽ đ-ợc đánh số tr-ớc, rồi đến các đỉnh thuộc lớp T2 . . . và
cuối cùng đến các ®Ønh thc líp Tq. C¸c ®Ønh thc cïng mét líp đ-ợc đánh
số một cách tuỳ ý.
Đ 2 . Tính chất của hành trình tối -u ([5])
Tr-ớc hết ta xét bài toán tìm hành trình tối -u từ đỉnh đầu ab đến đỉnh
cuối ae trong G. Ta tạm giả thiết mọi số ti đều khác nhau (về sau giả thiết này
bị loại bỏ), nghĩa là ta đánh số các đỉnh của ®å thÞ sao cho (1  b  e  n),
0 < t1 < t2 < t3 < ... < tn-1 < tn.

(2.2)


Tính chất của hành trình tối -u đ-ợc nêu ra trong các mệnh đề d-ới đây.
Chứng minh các mệnh đề này đều sử dụng kỹ thuật cải tiến hành trình.
Định lý 2.2.1. Giả sử = (i1 = b, i2, ..., in-1, in = e) lµ mét hµnh trình tối
-u bất kỳ từ đỉnh b tới đỉnh e. NÕu b > 1 vµ 1 = ik víi 1 < k < n thì ta có:
a) Đoạn hành trình từ b tới 1 phải đi theo các đỉnh có số hiệu giảm dần
b = i1 > i2 > ... > ik-1 > ik=1
b) Hành trình không thể đi qua 3 đỉnh liên tiếp i-1, i, i+1 hoặc theo các
chiều ng-ợc lại i+1, i, i-1, với 1 i-1 và i+1 b.
Chứng minh.
a) Giả sử trái lại, đoạn hành trình từ b đến 1 đi qua các đỉnh có số hiệu
lớn hơn b, khi đó trên đoạn này phải tìm đ-ợc 2 đỉnh liên tiếp r và s sao cho
s < b < r. Tiếp đó, trên đoạn từ 1 đến n phải có hai đỉnh liên tiÕp u vµ v sao
cho u < b < v. Nghĩa là hành trình có dạng

= (b, ..., r, s, ..., 1, ..., u, v, ..., n, ..., e), nÕu s < b < r vµ u < b < v.
13


Ta sửa lại hành trình thành nh- sau (h×nh 6):

’ = (b, ..., s, ..., 1, ..., u, v, ..., r, ..., n, ...,e), nÕu v < r.
hc

’ = (b, ..., s, ..., 1, ..., u, r, ..., v, ..., n, ...,e), nếu r < v.
u

1

s


b

r

v

n

e

Hình 6. Hành trình .
1

u

s

b

v

r

n

e

Hình 7. Hành trình sửa .
Có thể kiểm tra lại rằng f( ) < f(), trái với giả thiết là tối -u.
b) Chứng minh theo cách t-ơng tự.

Chứng minh t-ơng tự định lý 2.2.1 ta có định lý 2.2.2.
Định lý 2.2.2. Giả sử = (i1= b, i2, ..., in-1, in = e) là một hành trình tèi -u
bÊt kú tõ ®Ønh b ®Õn ®Ønh e. NÕu e < n vµ n = ir, víi 1 < r < n, thì ta có
a) Đoạn hành trình từ n tới e phải đi qua các đỉnh có số hiệu giảm dần
n = ir > ir+1 > ... > in-1 > in = e.
b) Hành trình không thể đi qua 3 đỉnh liên tiếp i-1, i, i+1hoặc theo
chiều ng-ợc lại i+1, i, i-1, với e i-1 và i+1 n.
Định lý 2.2.3. Với n >3 hành trình (chu trình Hamilton) tối -u của bài
toán B không thể ®i qua 3 ®Ønh liªn tiÕp cđa i-1, i, i+1, hoặc theo chiều ng-ợc
lại i+1, i, i-1, với 1 i-1 < i+1  n.
Chøng minh. Cho  =(i1, i2, ..., in-1, in) là một hành trình tối -u bất kỳ của
bài toán B. Giả sử trái lại, đi qua 3 đỉnh liên tiếp, chẳng hạn i-1, i, i+1. Ta sẽ
chỉ ra mâu thuẫn bằng cách xây dựng một hành trình mới sao cho f( ) <
f(), trái với là hành trình tối -u.
Thật vậy, giả sử 3 ®Ønh liªn tiÕp i-1, i, i+1 n»m trªn ®-êng ®i từ 1 đến n.
Do i+1 n, nên trên đ-ờng ®i tõ n tíi 1 ph¶i cã mét ®Ønh r, víi i+1  r  n vµ

14


mét ®Ønh s ®i liỊn sau r, víi 1  s i-1, đồng thời phải có hoặc i+1 < r hoặc
s Nghĩa là ta có

= (1, ..., i-1, i, i+1, ..., n, ..., r, ..., s, ...).
1

s

i-1


i

i+1

n

r

H×nh 8. Hành trình của .
Ta xây dựng hành trình mới bằng cách đi trực tiếp từ đỉnh i-1 đến đỉnh
i+1 và chèn đỉnh i vào giữa hai đỉnh r và s (h×nh 9).

’ = (1, ..., i-1, i, i+1, ..., n, ..., r, i, s, ...).

1

s

i-1

i

i+1

r

n

Hình 9. Hành trình sửa cđa ’ .

Ký hiƯu
U =  (i-1, i), (i, i+1), (r, s).
Khi ®ã
f() = max u, max tk - t1 vµ f() = max v, max tk - t1,
( k ,l )U

( k ,l )U

(2.3)

trong ®ã
u = max tk - t1 = max ti- ti-1, ti+1- ti, tr- ts = tr- ts,
( k ,l )U

v = maxti+1- ti, tr- ti, ti - ts  < tr- ts = u.
Tõ ®ã vµ tõ (2.3) ta suy ra f(’ ) < f(). Điều đó mâu thuẫn giả thiết.
Hay với n > 3 hành trình (chu trình Haminton) tối -u của bài toán
B không thể đi qua 3 đỉnh liên tiếp i-1, i, i+1 hoặc theo chiều ng-ợc lại i+1, i,
i-1 với 1  i-1 < i+1  n.

15


Đ 3. Thuật toán giải
(Hành trình tối -u dạng tháp hay tháp từng đoạn)
Từ các kết quả nêu trên, ta nhận đ-ợc hành trình tối -u cho các bài toán A
và B với giả thiết
0< t1 t2 ...  tb  ...  te  ...  tn
nh- sau:
Bài toán A: Hành trình tối -u gồm 3 đoạn (có thể có đoạn rỗng) tuỳ

theo vị trí t-ơng ®èi cđa b, e, n. Cơ thĨ lµ  = (1, 2, 3), với:

1 là hành trình tối -u từ b đến b-1 qua mọi đỉnh i thoả mÃn 1 i b,
2 là hành trình tối -u từ b+1 đến e-1 qua mọi đỉnh i thoả mÃn b+1 i e-1,
3 là hành trình tối -u từ e+1 đến e qua mọi đỉnh i thoả mÃn e i n.
Dáng điệu của các hành trình con ®ã nh- sau:
+ NÕu b = 1 th× 1 = 
+ NÕu b > 1 th×

1 = (b, b-2, ..., 4, 2, 1, 3, 5,... , b-3, b-1), víi b chẵn,
nghĩa là thoạt đầu đi theo các đỉnh chẵn giảm dần tới 1, rồi sau đó đi theo các
đỉnh lẻ tăng dần tới b-1.

1 = (b, b-2, ... , 3, 1, 2, 4, ..., b-3, b-1), víi b lÏ,
nghÜa lµ thoạt đầu đi theo các đỉnh lẽ giảm dần tới 1, rồi sau đó đi theo các
đỉnh chẵn tăng dần tíi b-1.
+ NÕu b+1 = e th× 2 =  , còn nếu b+1 < e thì 2 = (b+1, b+2, ..., e-2,
e-1),
nghĩa là đi theo các đỉnh tăng dần từ b+1 đến e-1.
+ Nếu e = n thì 3 = 
+ NÕu e < n th×

3 = (e+1, e+3, ..., n-3, n, n-2, ..., e+2, e) khi e, n cïng tÝnh ch½n lÏ,
3 = (e+1, e+3, ..., n-2, n, n-1, n-3, ..., e+2, e) khi e, n kh¸c tÝnh chẵn lẽ,
nghĩa là lúc đầu đi theo các đỉnh chẵn (lẻ) tăng dần từ e+1 đến n, rồi sau đó đi
theo các đỉnh lẻ (chẵn) giảm dần từ n đến e.
16


VÝ dơ:

1) Víi n = 10, b = 4, e = 7, ta có hành trình tối -u từ 4 đến 7 qua 10
đỉnh, mỗi đỉnh đúng 1 lần có dạng nh- sau
4

2

1

5

3

đoạn 1

6

10

8

đoạn 2

9

7

đoạn 3 

2) Víi b = 1, n = 8, e = 6 ta có hành trình tối -u từ 1 ®Õn 6 nh- sau:
(1)


1

(2) (3)2(4) 3(5) 4

 ®o¹n 1 

6
8
7
(7)(8)(6)

5

 ®o¹n 2 

 ®o¹n 3 

3) Víi b = 3, e = n = 9 ta có hành trình tối -u tõ 3 ®Õn 9 nh- sau:
3

1

2

(3) (1) (2)

4

5


6

(4) (5) (6) (7) (8)

đoạn 1

7

8

(9)

đoạn 2

9

đoạn 3

Bài toán B: Theo định lý 2.2.3 thì hành trình tối -u không thể đi qua 3
đỉnh liên tiÕp i-1, i, i+1, víi 1  i-1 < i-1 n.
Mặt khác hành trình có 2 đỉnh liên tiếp i vµ j, víi i - j  3, cịng không
thể là hành trình tối -u. Vì thế có thể thấy rằng hành trình tối -u phải có
dạng tháp  nh- sau 1 3 5 .... 6 4 2 (1) (3) (5)..(6) (4) (2)
..
Giá trị tối -u bằng
opt = t2 - t1, khi n = 2

opt = max ti+2- ti, víi n  3.
1i n 2


VÝ dơ:
1) Víi n = 9 ta có hành trình tối -u của bài toán B nh- sau:
7 (6)
5 (8)
9 (4)
8 (2)
6 4
(1) (3) 1(5) 3(7) (9)

2

2) Víi n = 10 ta cã hành trình tối -u của bài toán B nh- sau:
1

4 2(4) (2)
8 6(8) (6)
9 10
3(1) 5(3) 7(5) (7)
(9) (10)

NhËn xÐt: Nh- trên đà thấy, khi có nhiều giá trị ti trïng nhau, ta sÏ chia
17


các đỉnh của đồ thị thành một số lớp (q lớp nếu có q giá trị khác nhau) sao cho
các ®Ønh thc cïng mét líp khi vµ chØ khi chóng có cùng cao độ ti nh- nhau.
Mỗi lớp xem nh- một đỉnh mới, gọi là đỉnh gộp, với cao độ của đỉnh gộp
đều đ-ợc nối với nhau bởi một cạnh. Dựa theo cách giải đà trình bày ở trên, ta
tìm đ-ợc hành trình tối -u trong đồ thị gộp nhận đ-ợc.

Muốn có hành trình tối -u trong đồ thị ban đầu, ta chỉ việc mở rộng hành
trình tối -u gộp tìm đ-ợc bằng cách thay mỗi đỉnh gộp bằng một đ-ờng đi
qua mọi đỉnh (mỗi đỉnh một lần) thuộc lớp t-ơng đ-ơng với đỉnh gộp đó.

18


Ch-ơng 3
về một ứng dụng của bài toán
"Tìm hành trình tối -u trên đồ thị"
Đ 1. Bài toán ng-ời du lịch ([3])
3.1.1. Phát biểu bài toán
Một ng-ời du lịch muốn tham quan n+1 thµnh phè T0, T1, T2, …, Tn. Xuất
phát từ thành phố T0, ng-ời du lịch muốn đi qua tất cả các thành phố còn lại,
mỗi thành phố đúng một lần rồi quay trở về thành phố xuất phát. Cho biết cịj
là chi phí đi từ thành phố Ti (i = 1, 2, , n) đến thành phố Tj (j = 1, 2,, n).
HÃy tìm hành trình với tỉng chi phÝ bÐ nhÊt.
Râ rµng cã thĨ thiÕt lËp t-ơng ứng 1-1 giữa các hành trình
T0 Ti0 Ti1 Ti2 ...  Tin  T0,
víi mét ho¸n  = (i1, i2,…, in) cđa n sè tù nhiªn 1, 2, ., n.
Đặt
f() = c 0i1 + c 1i2 + c 2i3 +….. c in 0
vµ ký hiƯu  lµ tập tất cả các hoán vị = (i1, i2, …, in) cđa n sè tù nhiªn 1, 2,
…, n. Khi đó bài toán ng-ời du lịch có thể phát biĨu d-íi d¹ng tèi -u rêi r¹c
sau:
f()    min
Bài toán ng-ời du lịch còn có thể phát biểu d-ới dạng qui hoạch tuyến
tính nguyên bộ phận sau:
n


n

i 0

j 0

  cij xij

 min

víi ®iỊu kiƯn
n

 xij  1, i = 1, 2, ..., n
j 0

n

 xij  1, j = 1, 2, ..., n
i 0

ui - uj - nxij  n-1, i  j
19


xij  0, nguyªn
ui  R, i = 0, 1, ..., n.
3.1.2. Cách giải thông th-ờng
Muốn giải bài toán "Ng-ời du lịch" bằng cách giải thông th-ờng, tức là
tìm cực tiểu hàm mục tiêu tuyến tính trong số nguyên không âm, với một ràng

buộc tuyến tính dạng đẳng thức hoặc bất đẳng thức. Ta phải giải thông qua bài
toán tổng quát hơn đó là "Bài toán cái túi".
3.1.2.1. Bài toán cái túi
Phát biểu bài toán "Một nhà thám hiểm cần đem theo một cái túi có trọng
l-ợng không quá b. Có n loại đồ vật có thể đem theo. Đồ vật thứ j có trọng
l-ợng aj và giá trị sử dơng lµ cj (j = 1, 2, ..., n). Hái rằng nhà thám hiểm cần
đem theo các loại đồ vật nào, với số l-ợng là bao nhiêu để cho tổng số l-ợng
giá trị sử dụng của các đồ đem theo là lớn nhất.
Gọi xj là số l-ợng đồ vật loại j (j = 1, 2, ..., n) mà nhà thám hiểm sẽ đem
theo. Khi đó mô hình toán học của bài toán có dạng sau đây:
n

c j x j

max

(3.1)

j 1

với điều kiện
n

a j x j

b

(3.2)

xj 0 và nguyên, j = 1, 2, ..., n.


(3.3)

j 1

Nh- vậy bài toán cái túi là bài toán tìm cực đại (cực tiểu) của hàm mục
tiêu tuyến tính trong số nguyên không âm, với ràng buộc tuyến tính dạng đẳng
thức hoặc bất đẳng thức (nội dung thực tế của bài toán đ-ợc mô tả ở trên).
Bài toán này có vai trò quan trọng trong tối -u rời rạc vì thứ nhất, mọi bài
toán qui hoạch tuyến tính nguyên với biến số giới nội đều có thể đ-a về bài
toán cái túi, thứ hai là giải bài toán cái túi có thể sử dụng những thuật toán
t-ơng đối hữu hiệu.
20


3.1.2.2. Đ-a bài toán qui hoạch tuyến tính nguyên về bài toán cái túi các ph-ơng pháp hợp nhất hoá.
Ph-ơng pháp đ-a các ph-ơng trình tuyến tính với các hệ số và biến số
nguyên về một ph-ơng trình t-ơng đ-ơng là tổ hợp tuyến tính của các ph-ơng
trình đà cho, ta gọi việc làm đó là hợp nhất hoá. Hợp nhất hoá có thể có lợi vì
chúng ta có ph-ơng pháp khá hiệu quả để giải bài toán cái túi. Khuyết điểm
trầm trọng của hợp nhất hoá là các hệ số trong ph-ơng trình là quá lớn.
Các ph-ơng pháp hợp nhất hoá đ-ợc xây dựng trên cơ sở định lý cơ bản
sau đây [3]:
3.1.2.3. Định lý. Nếu nh- t1, t2 là hai số nguyên tố cùng nhau (ký hiệu là
(t1, t2) =1) thì mọi nghiệm nguyên của ph-ơng trình
y1 t1 + y2t2 = 1

(3.4)

đều có thể biểu diễn d-ới dạng

y1 = - qt2, y2 = qt1,
trong đó q là số nguyên tuỳ ý.
3.1.2.4. Định lý. Xét hệ ph-ơng trình







n



j 1

a1jxj = b1

(3.5)

n



j 1

a2jxj = b2

trong ®ã aij  0, bi > 0 là các số nguyên (i = 1, 2; j = 1, 2, ..., n)
Khi ®ã nÕu t1, t2 là hai số nguyên d-ơng thoả mÃn

1) (t1, t2) = 1
2) t1 kh«ng chia hÕt cho b2, t2 kh«ng chia hÕt cho b1
3) t1 > b2 - amin, t2 > b1 - amin
trong ®ã amin = min aij : aij > 0, i = 1, 2, j = 1, 2, ..., n
Lúc này tập các nghiệm nguyên không âm của hệ (3.5) là trùng với tập
nghiệm nguyên không âm của ph-ơng trình
21


n



j 1

(t1a1 + t2a2)xj = t1b1 + t2b2.

(3.6)

a1jxj = bi, i = 1, 2, ..., n,

(3.7)

Hệ quả. Đối với hệ
n



j 1


trong đó aij là các số nguyên không âm, bi > 0 (i = 1, ..., m, j = 1, ..., n), luôn
tìm đ-ợc số nguyên t1, t2, , tm sao cho tập nghiệm nguyên không âm của hệ
(3.4) là trùng với tập các nghiệm nguyên không âm của ph-ơng tr×nh
n


j 1

m

( ti aij ) x j 
i 1

m

 ti bi .

(3.8)

i 1

Chú ý: Khi m đủ lớn, các hệ số của ph-ơng trình (3.8) sẽ là rất lớn.
Chẳng hạn, nÕu bi = q, i = 1, ..., m, th× vế phải của ph-ơng trình (3.8) sẽ là số
nguyên trong khoảng từ 2m-1qm đến 2m-1(q+1)m
Ví dụ: Đ-a về một ph-ơng trình t-ơng đ-ơng hệ sau đây:
3 x1 2 x2  10
 x  4 x  11
2
 1
 3 x1  3 x2  13

 x ,x 0
 1 2
x1 , x2 nguyen

Đ-a vào các biến phụ x3, x4, x5, biến đổi các bất ph-ơng trình về hệ
ph-ơng trình ta thu đ-ợc:
10
3x1 2 x2  x3
 x  4x  x
 11

1
2
4

x5  13
 3x1  3x2 
 x1 , x2 , x3 , x4 , x5 0, nguyen

Tiến trình hợp nhất hoá hai ph-ơng trình đầu của hệ, ta có t1 = 12, t2 = 11,
từ đó thu đ-ợc ph-ơng trình
47x1 + 68x2 + 12x3 + 11x4 = 241.
22


Hợp nhất hoá ph-ơng trình thu đ-ợc với ph-ơng trình thø ba t1' = 15,
t2' = 242, tõ ®ã thu đ-ợc ph-ơng trình t-ơng đ-ơng với hệ đang xét
1431x1 + 1746x2 + 180x3 + 165x4 + 242x5 = 6761.
Điểm hạn chế của định lý 3.1.2.4 là đòi hỏi không âm với tất cả các hệ
số. Định lý d-ới đây khắc phục nh-ợc điểm đó nh-ng lại đòi hỏi các biến số

phải giới nội.
3.1.2.5. Định lý. Xét hệ ph-ơng trình









n

aij x j  bi , i  1,2
j 1

0  xj  d j

(3.9)

x j nguyeˆn, j  1, 2,...,n

trong ®ã aij, bi, dj (i = 1, ..., m; j = 1, ..., n) là các số nguyên. Khi đó nếu t1, t2
là các số nguyên d-ơng, nguyên tố cùng nhau thoả mÃn các điều kiện.
1) (t2, -t1) S;
2) (-t2, t1)  S;
trong ®ã S =  (y1, y2) :y1-  yi  yi+ , yi nguyªn, i =1, 2,


yi 



yi 

 aij  bi , J i



jJ i

 aij  bi , J i

J J i





 j : aij  0, j  1,...,n; i  1, 2,
 j : aij  0, j  1,...,n; i  1, 2.

Khi đó tập các lời giải của (3.9) sẽ trïng víi lêi gi¶i cđa hƯ










n

 (t1a1 j  t 2 a2 j ) x j  t1b1  t 2b2
j 1

0  xj  d j

(3.10)

xi nguyeˆn, j  1,...,n.

Chú ý: Điều kiện của định lý 3.1.2.5 sẽ đ-ợc tho¶ m·n nÕu ta chän t1, t2
23


là hai số nguyên d-ơng, nguyên tố cùng nhau thoả mÃn một trong các điều
kiện sau:
1) t1 y 2 +1, t2  y1 +1;
2) t1  - y 2 +1; t2  - y1 +1;
3) t1  1; t2  1+max( y1 , - y1 )
4) t1  1+ max( y 2 , y 2 ), t2  1.
3.1.3. Ph-¬ng pháp giải bài toán cái túi
Xét bài toán cái túi dạng bất đẳng thức.
n

c j x j

max


(3.1)

j 1

với điều kiện
n

a j x j

b

(3.2)

j 1

xj 0 và nguyên, j = 1, 2, ..., n.

(3.3)

C¸c sè cj, aj, b cã thể giả thiết là nguyên d-ơng.
Để giải "bài toán cái túi" đà nêu, ng-ời ta đà nêu ra ph-ơng pháp ph-ơng
trình truy toán của qui hoạch động [3].
Để phục vụ trực tiếp cho nội dung của ch-ơng này, chúng tôi xin đ-ợc
nêu ra ph-ơng pháp chuyển bài toán chiếc túi về bài toán tìm đ-ờng đi ngắn
nhất đà biết trong ch-ơng 2.
Xây dựng đồ thị có h-ớng G = (V, E), víi tËp ®Ønh V = 0, 1, …, b vµ tËp
cung
E =  (i, k): k - i = aj ,
trong ®ã i, k  1, 2, …, n.
Giả sử S là một đ-ờng đi từ đỉnh 0 đến đỉnh b trên đồ thị, ký hiệu

L(S)=

d (i, k ) ,

( i ,k )S

là độ dài của đ-ờng ®i S.
24


3.1.3.1. Định lý. Mỗi đ-ờng đi từ 0 đến b trong đồ thị G t-ơng ứng với
một ph-ơng án chấp nhận đ-ợc của bài toán cái túi (3.1)(3.2)(3.3) và ng-ợc
lại.
Ngoài ra nếu đ-ờng đi S* t-ơng ứng với ph-ơng án chấp nhận đ-ợc
x* = (x1*, x2*, ..., xn*) thì
L(S*) =

n

c
j 1

j

x *j .

3.1.4. Ph-ơng pháp giải "Bài toán ng-ời du lịch" trên cơ sở "Bài
toán cái túi"
Bài toán ng-ời du lịch có thể phát biểu d-ới dạng bài toán qui hoạch
tuyến tính nguyên bộ phận:

n

n

cij xij min
i 1

(3.11)

j 1

n



j 1

xij = 1

(3.12)

xij = 1

(3.13)

n


i 1


ui - vj - nxij  n-1, i  j

(3.14)

xij  0, nguyªn,

(3.15)

trong ®ã ui, vj  R, i = 1, 2, …, n, j = 1, 2, ., n.
Từ định lý 3.1.2.3, định lý 3.1.2.4, định lý 3.1.2.5 và hệ quả ta có thể đ-a
hệ (3.12), và (3.13) về ph-ơng trình t-ơng đ-ơng là tổ hợp tuyến tính của các
ph-ơng trình đà cho. Sử dụng các thuật toán giải bài toán cái túi, ta sẽ có
ph-ơng pháp giải "Bài toán ng-ời du lịch". Trong phạm vi bài toán viết này
chúng tôi không nêu cụ thể quá trình giải "Bài toán ng-ời du lịch" trên cơ sở
"Bài toán cái túi" vì khá cồng kềnh và phức tạp.
Đặc biệt khi n lớn thì hệ số ph-ơng trình t-ơng đ-ơng sẽ rất lớn, vì vậy
giải bài toán ng-ời du lịch nhờ thuật toán giải bài toán chiếc túi nh- đÃ
nêu là không phù hỵp.
25


Đ2.

áp dụng chu trình Hamilton để giải bài toán

"Ng-ời du lịch".
3.2.1. Chuyển bài toán Ng-ời du lịch về bài toán tìm chu trình
Hamilton
Từ bài toán "Ng-ời du lịch" đà đ-ợc phát biểu trong Đ1. Để có thể sử dụng
thuật toán tìm chu trình Hamilton đà nêu ở ch-ơng 2, ta chuyển về bài toán

xác định nh- sau:
(n+1) thành phố mà ng-ời du lịch muốn đi qua t-ơng ứng với (n+1) đỉnh
của đồ thị.
Đ-ờng đi từ thành phố này sang thành phố kia t-ơng ứng là cung của đồ thị
(đoạn thẳng nối hai điểm).
Do ng-ời du lịch xuất phát từ thành phố T0 và đi qua tất cả các thành phố
còn lại, mỗi thành phố đúng một lần nên ng-ời đó sẽ có n! hành trình khác
nhau. Mỗi hành trình là một hành trình Hamiltơn với đỉnh đích và nguồn trïng
nhau.
Ký hiƯu cij lµ chi phÝ tõ thµnh phè i sang thµnh phè j. Ký hiƯu a0j lµ chi phÝ
nhá nhất từ To đến Tj t-ơng ứng và ta gọi là cao độ đỉnh thứ j của đồ thị.
Rõ ràng cij+1 = ai+1 - a0i  lµ chi phÝ tõ thµnh phè i sang thµnh phè i+1.
Ta thÊy r»ng trong số n! hành trình sẽ tồn tại ít nhất một hành trình sao cho
tổng chi phí cho hành trình đó là nhỏ nhất, ký hiệu là hành trình . Hành trình

sẽ t-ơng ứng với đ-ờng đi trong đồ thị thoả mÃn điều kiện:
Làm cực tiểu mức chi phí lớn nhất của hai thành phố liên tiếp nhau trong
hành trình. Hành trình t-ơng ứng là một chu trình Hamiltơn tối -u của bài
toán A.
Từ những phân tích trên ta có thể áp dụng bài toán A để giải bài toán
Ng-ời du lịch
Không mất tính tổng quát giả sử mọi số a0i (i = 1, 2, ..., n+1) đều khác
nhau. Khi đó ta đánh số các thành phố nh- sau: T1  Ti  Tn sao cho:
26


×