Đị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.. Nếu đồ t
Trang 1Mục lục
trang
Đ3 Đờng đi chu trình Hamilton 9
Đ2 Tính chất của thành phần tối u 13
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ị"
19
Đ2 áp dụng chu trình Hamiltơn để giải bài
Trang 2Mở đầ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 trongnhiề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 dulị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ìmhành trình tối u trên đồ thị” Từ những kết ở chơng 2 chophé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,
Trang 3chắ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ả
Trang 4Chơ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ử a i A đợc gọi là đỉnh và cặp (a i , a j ) 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)
Trang 5thuộ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 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ẳnghạ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
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,
., a n và tập cạnh E = AA Mỗi đỉnh a i A có gắn một số
thực ti (i = ) gọi là cao độ của đỉnh a i Khi đó ta cố định
một đỉnh a b nào đó gọi là đỉnh nguồn Cố định một
đỉnh a e nào đó gọi là đỉnh đích.
Trang 62 Đờ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 theobằng một cung nào đó Một đỉnh đờng đi qua hơn một lần
Đờng có dạng (*), ta nói rằng đờng d đi từ đỉnh x1 đến
đỉnh x k
3 Chu trình là một đơng khép kín, tức là đỉnh cuối
của đờng trùng với đỉnh đầu của đờng Do đó khi nói đếnchu 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 cuối 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 x k
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 chutrình vô hớng ta không cần xác định đỉnh đầu và đỉnhcuố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.
Trang 7Ma trận vuông M nn = (m ij ) chỉ gồm các phần tử 0, 1 gọi
là ma trận kề của đồ thị G nếu m i j = 1 khi và chỉ khi (i, j) là cung của G (cách nói khác là m ij = 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.
Chứng minh Ta chứng minh theo quy nạp.
Với k = 1, định lý đúng (theo định nghĩa ma trận kề) Giả sử định lý đúng với k = n.
Ta cần chứng minh định lý đúng với k = n+1.
Ký hiệu M n = (bij), M = (aij), T = Mn M = (cij)
Hình 2.
Với t bất kỳ, 1 t n, theo giả thiết quy nạp b it là số
đờng đi từ i đến t có độ dài k.
Nếu a ij = 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
t
Trang 8Nếu a ij = 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à b it
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.
Chứng minh Giả sử có đờng đi từ
a đến b Ta ký hiệu đờng đi đó là
cũng là đờng đi từ a đến b nhng 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
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 tachỉ cần xét ma trận tổng
Trang 9T = M1 + M2 + + M n-1 = (t ij).
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ử t ij > 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
Rõ ràng nếu P k thì P k+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
Nh vậy, trong quá trình trên cho ta:
- 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 đó P k rỗng và quá trình cũng dừng, không có đờng đi từ a đến b.
Trang 10- Để tìm đờng đi (trong trờng hợp b P i) 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
P j với j > 0 thì trong P j-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ộtlần rồi quay trở về thành phố xuất phát là chu trìnhHamilton
2) Cho các hình vẽ:
Hình 4.
G1
111
G2
111
G3
111
Trang 11ở hình 4 thì G3 là chu trình Hamilton; G2 là nửa Hamilton; G1 không là nửa Hamilton.
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
Trong trờng hợp ngợc lại, G có các cung (a, x n ) và (x1, a) Khi
đó sẽ tồn tại i để có các cung (x i , a) và (a, x i+1 ) Có thể lấy
x1, , x i , a, x i+1 , , x
là đờng Hamilton cần tìm Nh vậy đồ thị đầy đủ luôn có
đờng đi Hamilton
Trang 12Đị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
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 đó
Vì vậy định lý đã đợc chứng minh
Trang 13Chơng 2 Bài toán xuất phát
Đ 1 phát biểu bài toán ([4], [5])
Cho đồ thị đầy đủ G = (A, E) với tập đỉnh A = a1,
a2, , a n và tập cạnh E = AA Mỗi đỉnh a i A có gắn một
số thực t i (i = 1, 2, , n) gọi là cao độ của đỉnh a i Cho một
đỉnh a b A gọi là đỉnh nguồn và một đỉnh a e A gọi là
đỉnh đích với b, e 1, 2, , n và t b t e 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 a b tới đỉnh a e (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ữacao độ 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 i 1 = b, i n = e Hãy tìm một hoán vị sao
cho cực tiểu hàm:
F( ) = t ik - t ik+1 min.
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ừ a b đến a e, còn hoán vị *
= argminf(): P sẽ đợc gọi là hành trình tối u từ a b đến
a e
Bây giờ ta không cố định đỉnh đầu và đỉnh cuối, tacũ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ủahai đỉ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!
Trang 14Giống nh bài toán A, bài toán này có thể diễn đạt theo
cách khác nh sau: Tìm một hoán vị = (i1, i2, , i n ) của các
số 1, 2, , n sao cho
g( ) = t ik - t ik+1 min, với quy ớc i n+1 = i1.
Lời giải của bài toán trên sẽ không thay đổi nếu thay mọi
t i bởi t i ’= t i +t với t là một số thực bất kỳ Vì thế bằng cách
đỉnh của đồ thị G thành q lớp, ký hiệu là T1, T2, , Tq sao
cho đỉnh a i thuộc lớp T k khi và chỉ khi t i = h k , (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 thuộc lớp T q Các đỉnh thuộc 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 a b đến đỉnh cuối a e trong G Ta tạm giả thiết mọi số t i
đề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 < t n (2.2)
Tính chất của hành trình tối u đợc nêu ra trong cácmệ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
Trang 15Định lý 2.2.1 Giả sử = (i1 = b, i2, , in-1 , i n = 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 = i k 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 > > i k-1 > i k =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
Trang 16Có 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 , i n = 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 = i r , 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 = i r > i r+1 > > i n-1 > i n = 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+i-1, hoặc theo chiều ngợc lại i+i-1, i, i-i-1, với 1 i-1 < i+1
n.
Chứng minh Cho =(i1, i2, , in-1 , i n) 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à 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
đ-<i-1
Nghĩa là ta có
= (1, , i-1, i, i+1, , n, , r, , s, ).
Trang 17Hì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
u = t k - t1 = max t i - t i-1 , t i+1 - t i , t r - t s = t r - t s ,
v = maxt i+1 - t i , t r - t i , t i - t s < t r - t s = 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.
Đ 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 chocác bài toán A và B với giả thiết