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

Luận văn một số thuật toán tìm đường đi dài nhất trên đồ thị

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 (821.19 KB, 54 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

Thạch Thị Quỳnh Anh

MỘT SỐ THUẬT TOÁN
TÌM ĐƯỜNG ĐI DÀI NHẤT TRÊN ĐỒ THỊ

LUẬN VĂN THẠC SĨ TOÁN HỌC
Chuyên ngành: Toán Ứng dụng

HÀ NỘI, 2018


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

THẠCH THỊ QUỲNH ANH

MỘT SỐ THUẬT TOÁN
TÌM ĐƯỜNG ĐI DÀI NHẤT TRÊN ĐỒ THỊ

LUẬN VĂN THẠC SĨ TOÁN HỌC
Chuyên ngành: Toán Ứng dụng
Mã số: 8 46 01 12

Người hướng dẫn khoa học: TS. TRẦN VĨNH ĐỨC

HÀ NỘI, 2018



1

LỜI CẢM ƠN
Lời đầu tiên của luận văn tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất
tới thầy giáo hướng dẫn TS. Trần Vĩnh Đức, người thầy đã định hướng chọn đề tài
và tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình làm và hoàn thiện luận văn
này.
Tôi cũng xin bày tỏ lòng biết ơn chân thành tới Phòng Sau đại học, các thầy cô
giáo giảng dạy chuyên ngành Toán Ứng dụng, Trường Đại học Sư phạm Hà Nội 2
đã giúp đỡ tôi trong suốt quá trình học tập tại trường.
Nhân dịp này tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè luôn cổ vũ, động
viên, giúp đỡ tôi trong suốt quá trình học tập và hoàn thiện luận văn này.
Hà Nội, ngày 16 tháng 10 năm 2018

Tác giả luận văn

THẠCH THỊ QUỲNH ANH


2

LỜI CAM ĐOAN
Tôi xin cam đoan, dưới sự hướng dẫn của thầy giáo TS. Trần Vĩnh Đức, luận
văn chuyên ngành Toán Ứng dụng với đề tài: "Một số thuật toán tìm đường
đi dài nhất trên đồ thị" được hoàn thành bởi sự nhận thức và tìm hiểu của bản
thân tác giả.
Trong quá trình nghiên cứu và thực hiện luận văn, tác giả đã kế thừa những kết
quả của các nhà khoa học với sự trân trọng và biết ơn.
Hà Nội, ngày 16 tháng 10 năm 2018


Tác giả luận văn

THẠCH THỊ QUỲNH ANH


3

Mục lục
LỜI CẢM ƠN

1

LỜI CAM ĐOAN

2

MỞ ĐẦU

5

Chương 1. Kiến thức chuẩn bị

7

1.1 Một số khái niệm cần thiết trên đồ thị . . . . . . . . . .

7

1.2 Độ phức tạp thuật toán . . . . . . . . . . . . . . . . . .


11

1.3 Bài toán đường đi dài nhất trên đồ thị . . . . . . . . . .

14

Chương 2. Một số kết quả thu được về việc xấp xỉ bài
toán đường đi dài nhất trên đồ thị

16

2.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.2 Thuật toán tìm đường đi dài trên đồ thị . . . . . . . . .

18

2.3 Đồ thị bền với đường đi ngắn . . . . . . . . . . . . . . .

20

2.4 Tìm đường đi dài nhất trong những đồ thị ngẫu nhiên thưa
thớt . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.5 Kết luận về độ khó . . . . . . . . . . . . . . . . . . . . .


28

2.5.1 Kết quả về độ khó của đồ thị Hamilton

. . . . . .

28

2.5.2 Tính chất hệ cải thiện và kết quả về độ khó của bài
toán đường đi dài nhất . . . . . . . . . . . . . . .

29


4

Chương 3. Thuật toán thời gian đa thức cho bài toán
đường đi dài nhất trên một số lớp đồ thị đặc
biệt

38

3.1 Bài toán đường đi dài nhất trên đồ thị khoảng . . . . . .

38

3.1.1 Đồ thị khoảng . . . . . . . . . . . . . . . . . . . .

38


3.1.2 Tính có cấu trúc của đồ thị khoảng . . . . . . . . .

39

3.1.3 Đường đi dài nhất trên đồ thị khoảng . . . . . . .

42

3.2 Bài toán đường đi dài nhất trên đồ thị hoán vị . . . . . .

47

3.2.1 Đồ thị hoán vị . . . . . . . . . . . . . . . . . . . .

47

3.2.2 Bài toán đường đi dài nhất trên đồ thị hoán vị . .

48

KẾT LUẬN

51

TÀI LIỆU THAM KHẢO

52


5


MỞ ĐẦU
1. Lý do chọn đề tài
Do sự phát triển với tốc độ nhanh của công nghệ thông tin, lý thuyết
đồ thị đã trở thành một trong những lĩnh vực toán học quan trọng và
cần thiết. Trên thực tế, lý thuyết đồ thị tỏ ra là một mô hình hữu hiệu
cho mô hình hóa các bài toán tính toán và tối ưu tổ hợp. Bài toán đường
đi dài nhất là một trong những bài toán cơ bản nhất của lí thuyết đồ thị.
Nó có nhiều ứng dụng trong thực tế như trong lập kế hoạch, tự động hóa
thiết kế điện tử, việc tìm kiếm các con đường quan trọng trong mạch
IC hoặc hệ thống VLSI.
Khác với bài toán đường đi ngắn nhất, là bài toán giải được trong
thời gian đa thức, bài toán đường đi dài nhất là NP-khó vì nó chứa bài
toán đường đi Hamilton như một trường hợp riêng, và do đó không thể
giải được trong thời gian đa thức trừ phi P= NP. Để vượt qua khó khăn
này, một số hướng nghiên cứu đã được đề xuất:
1. Dùng thuật toán xấp xỉ thời gian đa thức
2. Giải bài toán cho một vài lớp đồ thị cụ thể
Với mong muốn tìm hiểu sâu hơn về bài toán đường đi dài nhất và
các phương pháp giải nó, được sự hướng dẫn của TS Trần Vĩnh Đức,
tôi chọn đề tài “ Một số thuật toán tìm đường đi dài nhất trên đồ thị“ .
2. Mục đích nghiên cứu
a. Hướng giải xấp xỉ cho bài toán đường đi dài nhất.
b.Thuật toán giải bài toán đường đi dài nhất trên một số lớp đồ thị
đặc biệt.


6

3. Nhiệm vụ nghiên cứu

Một số kết quả xấp xỉ thu được cho bài toán đường đi dài nhất trên
đồ thị, và thuật toán giải bài toán đường đi dài nhất trên một số lớp đồ
thị đặc biệt.
4. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Bài toán đường đi dài nhất trên đồ thị.
- Phạm vi nghiên cứu:
+ Giải xấp xỉ bài toán đường đi dài nhất.
+ Thuật toán thời gian đa thức để giải bài toán đường đi dài nhất
trên đồ thị khoảng và đồ thị hoán vị. .
5. Phương pháp nghiên cứu
Sử dụng các kết quả gần đây về việc giải xấp xỉ bài toán đường đi
dài nhất. .
Hà Nội, ngày 16 tháng 10 năm 2018

Tác giả luận văn

THẠCH THỊ QUỲNH ANH


7

Chương 1
Kiến thức chuẩn bị
Trong chương này chúng ta sẽ nhắc lại một số khái niệm và một số
kết quả cần thiết để bổ trợ cho các chương sau.

1.1

Một số khái niệm cần thiết trên đồ thị


Trước hết, chúng ta nhắc lại một số khái niệm cơ sở của lí thuyết đồ
thị.
Định nghĩa 1.1. Một đồ thị vô hướng G là một cặp có thứ tự G =

(V, E), ở đây V là một tập còn E là một đa tập gồm các tập lực lượng
2 trên V.
Các phần tử của V được gọi là các đỉnh, còn các phần tử của E được
gọi là các cạnh của đồ thị vô hướng G. Nếu e = {u, v} ∈ E thì các đỉnh

u, v được gọi là các đầu mút của cạnh e hay các đỉnh liên thuộc với e.
Khi đó, hai đỉnh u, v được gọi là kề nhau hay láng giềng của nhau. Ta
cũng thường kí hiệu cạnh {u, v} ngắn gọn là uv .
Định nghĩa 1.2. Cho v là một đỉnh của đồ thị G. Bậc của đỉnh v
trong G, kí hiệu là degG (v), được định nghĩa bởi số các cạnh của G liên
thuộc v , tức số tất cả các láng giềng của v trong G.


8

Hình 1.1: Đồ thị G

Đồ thị có thể vẽ trên mặt phẳng với các đỉnh là các điểm và các cạnh
nối là các đường thẳng hoặc đường cong nối các điểm này. Đây là một
trong những ưu điểm của lý thuyết đồ thị. Nó cho phép mô tả các lập
luận và chứng minh theo cách rất trực quan và sáng sủa.
Ví dụ 1.1. Cho đồ thị G = (V, E) với V = {u1 , u2 , u3 , u4 , u5 } và

E = {(u1 , u3 ), (u1 , u4 ), (u1 , u5 ), (u2 , u4 ), (u3 , u5 )}
Đồ thị này được vẽ như hình 1.1. Trong đồ thị này, cạnh a có hai
đỉnh liên thuộc là u1 và u3 . Đỉnh u1 có 3 láng giềng là u3 , u4 , u5 nên


degG (u1 ) = 3.
Định nghĩa 1.3. Đồ thị G = (V , E ) được gọi là đồ thị con của đồ
thị G = (V, E) nếu V ⊆ V và E ⊆ E . Khi E chứa tất cả các cạnh
của G mà hai đỉnh liên thuộc với nó đều thuộc V thì G được gọi là đồ
thị con cảm sinh bởi G trên tập đỉnh V , kí hiệu G = G[V ].

Hình 1.2: Một đồ thị con của G


9

Ví dụ 1.2. Hình 1.2 cho một đồ thị con của đồ thị G trong ví dụ 1.1
Định nghĩa 1.4. Cho đồ thị G = (V, E). Một đường đi L trong G là
một dãy các đỉnh khác nhau sao cho hai đỉnh kế tiếp nhau của L đều
kề nhau trong G. Đường đi có đỉnh đầu trùng với đỉnh cuối được gọi là
chu trình.
Ví dụ 1.3. Xét đồ thị G trong hình 1.1. Dãy u3 u1 u4 u5 là một đường đi
trong G. Dãy u1 u3 u5 u1 là một chu trình trong G.
Định nghĩa 1.5. Đồ thị vô hướng G = (V, E) được gọi là liên thông
nếu luôn tìm được đường đi giữa hai đỉnh bất kì của nó. Trong trường
hợp ngược lại, đồ thị được gọi là không liên thông.

(a) Đồ thị không liên thông

(b) Đồ thị liên thông

Hình 1.3: Đồ thị không liên thông và đồ thị liên thông

Ví dụ 1.4. Một đồ thị không liên thông và một đồ thị liên thông được

cho trong hình 1.3.
Định nghĩa 1.6. Đường đi qua tất cả các đỉnh của đồ thị được gọi là
đường đi Hamilton. Chu trình đi qua tất cả các đỉnh của đồ thị gọi là
chu trình Hamilton. Đồ thị có chứa chu trình Hamilton được gọi là đồ
thị Hamilton.


10

Ví dụ 1.5. Xét đồ thị G được cho trong hình 1.1, dãy u2 u4 u1 u3 u5 là
đường đi Hamilton. Đồ thị này không có chu trình Hamilton.
Định nghĩa 1.7. Một đồ thị liên thông không có chu trình được gọi là
cây.
Cây (có gốc) là cây trong đó có một đỉnh được chọn là gốc và mỗi
cạnh được định hướng trùng với hướng đi của đường đi duy nhất từ gốc
tới mỗi đỉnh.
Trong một cây có gốc, nếu có một cạnh đi từ đỉnh x đến đỉnh y thì
đỉnh x được gọi là cha của đỉnh y, y là con của x.
Hai đỉnh cùng cha được gọi là anh em, đỉnh không có con được gọi là
lá, nói cách khác, lá chính là đỉnh có bậc 1.
Số cạnh trên đường đi từ gốc tới mỗi đỉnh được gọi là mức của đỉnh
ấy.
Cây có gốc mỗi đỉnh có không quá hai con được gọi là cây nhị phân.
Cây nhị phân mà mỗi đỉnh trong có đúng hai con được gọi là cây nhị
phân đầy đủ.

Hình 1.4: Một cây với 9 đỉnh và 8 cạnh

Ví dụ 1.6. Một cây được cho trong hình 1.4. Trong đó u1 là gốc,


u4 , u5 , u6 , u7 , u8 , u9 là lá. Lá u4 có 2 cạnh đi từ gốc đến nó nên u4 có
mức là 2.


11

1.2

Độ phức tạp thuật toán

Trong mục này chúng ta sẽ nhắc lại khái niệm thuật toán, các đặc
trưng của nó và độ phức tạp tính toán.
Định nghĩa 1.8. Một thuật toán là một bản liệt kê các chỉ dẫn, các
quy tắc cần thực hiện theo từng bước xác định nhằm giải quyết một bài
toán đã cho trong một khoảng thời gian hữu hạn.
Ví dụ 1.7. Mô tả thuật toán tìm số nguyên lớn nhất trong một dãy
hữu hạn các số nguyên.
1. Đặt giá trị cực đại tạm thời bằng số nguyên đầu tiên trong dãy.
2. So sánh số nguyên tiếp theo với giá trị cực đại tạm thời, nếu lớn
hơn giá trị cực đại thì đặt giá trị cực đại tạm thời bằng số nguyên đó.
3. Lặp lại bước 2 nếu còn số nguyên trong dãy.
4. Giá trị cực đại tạm thời ở thời điểm này chính là số nguyên lớn
nhất trong dãy.
Như vậy khi mô tả (hay xây dựng) một thuật toán ta cần lưu ý
đến các yếu tố sau:
1. Dữ liệu đầu vào :Một thuật toán phải mô tả rõ các giá trị đầu vào
từ một tập hợp các dữ liệu xác định.
2. Dữ liệu đầu ra: Từ một tập các giá trị đầu vào thuật toán sẽ tạo
ra các giá trị đầu ra.
Một thuật toán có các tính chất sau:

1. Tính xác định: Các bước của thuật toán phải được xác định một
cách chính xác, các chỉ dẫn phải rõ ràng, có thể thực hiện được.
2. Tính hữu hạn: Thuật toán phải kết thúc sau một số hữu hạn bước.
3. Tính đúng đắn: Thuật toán phải cho kết quả đúng theo yêu cầu
của bài toán đặt ra.
4. Tính tổng quát: Thuật toán phải được áp dụng cho mọi bài toán


12

cùng loại, với mọi dữ liệu đầu vào như đã được mô tả.
Để đánh giá hiệu quả của một thuật toán, có thể xét số các phép tính
phải thực hiện khi thực hiện thuật toán này. Thông thường số các phép
tính được thực hiện phụ thuộc vào cỡ của bài toán, tức là độ lớn của
đầu vào. Tuy nhiên trong những ứng dụng thực tiễn, chúng ta không
cần biết chính xác hàm này mà chỉ cần biết một ước lượng đủ tốt của
chúng. Sau đây chúng ta sẽ đưa ra một số khái niệm liên quan đến việc
đánh giá độ phức tạp của thuật toán.
Cho hai hàm số f và g , f, g : R → R
Định nghĩa 1.9. Ta nói rằng f (x) = o(g(x)) khi x dần tới dương vô
(x)
) = 0.
cùng nếu như limx→+∞ ( fg(x)

Ví dụ 1.8. x2 = o(x5 )
Định nghĩa 1.10. Ta nói rằng f (x) là O-lớn của g(x) khi x dần tới
dương vô cùng nếu như tồn tại hai hằng số C > 0 và N > 0 sao cho với
mọi x > N thì |f (x)| ≤ C.|g(x)|.
Kí hiệu f (x) = O(g(x)).
Ví dụ 1.9. Xét hàm số f (x) = x2 + 2x + 3, rõ ràng f (x) = O(x2 ) vì

với mọi x > 1 ta có f (x) ≤ x2 + 2x2 + 3x2 = 6x2 .
Chú ý rằng các số C và N nếu tồn tại thì không phải là duy nhất.
Định nghĩa 1.11. Ta nói rằng f (x) là O-lớn của g(x) khi x dần tới
dương vô cùng nếu như tồn tại hai hằng số C > 0 và N > 0 sao cho với
mọi x > N thì |f (x)| ≤ C.|g(x)|.
Kí hiệu f (x) = O(g(x)).
Định nghĩa 1.12. Ta nói rằng f (x) = Ω(g(x)) nếu như tồn tại hằng
số C > 0 và dãy x1 , x2 , x3 , ... sao cho với mọi i thì |f (xi )| > C.|g(xi )|.
Ví dụ 1.10. x = Ω(logn)


13

Định nghĩa 1.13. Ta nói rằng f (x) tăng theo hàm mũ nếu tồn tại

c > 1 và d sao cho f (x) = Ω(cx ) và f (x) = O(dx ).
Ví dụ 1.11. f (x) = e2x , f (n) = n!
Một số độ phức tạp thường gặp đối với một thuật toán gồm có:
1. Độ phức tạp hằng số O(1)
2. Độ phức tạp tuyến tính O(n)
3. Độ phức tạp đa thức O(P (n))
4. Độ phức tạp logarit O(logn)
5. Độ phức tạp hàm mũ O(2n )
6. Độ phức tạp giai thừa O(n!)

Định nghĩa 1.14. DTIME là các lớp độ phức tạp bao gồm các bài toán
quyết định giải được trong một giới hạn thời gian nhất định. Nếu các
dữ liệu vào có kích thước n giải được trong thời gian f (n) thì bài toán
nằm trong lớp độ phức tạp DT IM E(f (n)).
Tiếp theo ta sẽ đưa ra khái niệm về độ phức tạp P , N P :

Định nghĩa 1.15. Một bài toán quyết định được gọi là thuộc lớp P
nếu tồn tại một thuật toán giải bài toán trong thời gian O(nc ) với một
hằng số c không phụ thuộc kích thước đầu vào n.
Định nghĩa 1.16. Một bài toán quyết định được gọi là thuộc lớp N P
nếu lời giải có thể kiểm chứng được trong thời gian đa thức.
Về mặt trực quan, một bài toán dễ giải thì cũng dễ kiểm tra lời giải.
Do đó P ⊆ N P .
Định nghĩa 1.17. Một bài toán quyết định A được gọi là N P -đầy đủ
nếu như A là một bài toán trong N P và nếu có một một thuật toán
thời gian đa thức cho những bài toán này, thì mọi bài toán NP đều giải
được trong thời gian đa thức .


14

Định nghĩa 1.18. Một bài toán A được gọi là NP-khó nếu nó "ít nhất
là khó ngang bất kì bài toán nào trong NP".
Ví dụ 1.12. Có nhiều bài toán NP-khó ví dụ như bài toán người bán
hàng , bài toán xếp ba lô ...

1.3

Bài toán đường đi dài nhất trên đồ thị

Trong mục này ta sẽ nhắc lại khái niệm về bài toán đường đi dài nhất
trên đồ thị.
Định nghĩa 1.19 (Bài toán đường đi dài nhất). Cho một đồ thị

G = (V, E). Hãy tìm trong G một đường đi dài nhất, tức một dãy nhiều
nhất các đỉnh khác nhau sao cho hai đỉnh kế tiếp nhau đều kề nhau

trong G.

Hình 1.5: Một đồ thị với đường đi dài nhất đi qua tất cả các đỉnh

Bài toán đường đi dài nhất trên đồ thị là bài toán cơ bản của lý
thuyết đồ thị. Khác với bài toán đường đi ngắn nhất, là bài toán giải
được trong thời gian đa thức, bài toán đường đi dài nhất là bài toán
NP-khó do nó chứa bài toán đường đi Hamilton như một trường hợp


15

riêng. Bởi vậy đối với bài toán này, việc tìm kiếm một lời giải xấp xỉ
trong thời gian đa thức là một giải pháp cần thiết và có ý nghĩa nhất
định về mặt lý thuyết cũng như ứng dụng thực tiễn.


16

Chương 2
Một số kết quả thu được về việc
xấp xỉ bài toán đường đi dài nhất
trên đồ thị
2.1

Đặt vấn đề

Trong phần này, ta sẽ chỉ ra một vài thuật toán xấp xỉ thời gian
đa thức cho đường đi dài nhất. Kết quả được lấy từ tài liệu tham khảo
[2] .

Một thuật toán tham lam được đưa ra và nó cho thấy có thể phát hiện
được những đường đi dài trong một đồ thị dày đặc. Ở điểm này, đây
chính là thuật toán tốt nhất được biết đến trong một đồ thị bất kì. Đối
với trường hợp nhóm lớn và các số bán cung, độ khó của bài toán đã đưa
đến những nghiên cứu về dữ liệu đặc biệt, nơi mà các điều kiện thuận lợi
nhất được đảm bảo để đạt được một giá trị nào đó. Từ đó chúng ta xây
dựng lên thuật toán để tìm ra đường đi dài nhất trong đồ thị Hamilton.


17

Hamilton yếu
Ta xét nhiều điều kiện cần để đường đi Hamilton được hình thành
qua một thuật toán tuyến tính số tự nhiên. Những đồ thị thỏa mãn điệu
kiện này được gọi là đồ thị Hamilton yếu. Ta không định nghĩa chính
xác mà thay vào đó sẽ đưa ra ba thuộc tính của đồ thị Hamilton yếu được gọi là "các thuộc tính 1-2-3".
Cho đồ thị G(V, E) và một tập U ⊆ V , ta kí hiệu tập đỉnh đồ thị
con cảm sinh của G là G[U ].

Định nghĩa 2.1 (1-Tính bền). đồ thị G = (V, E) được gọi là 1-bền nếu
với bất kì tập U ⊂ V , đồ thị con cảm sinh G[V − U ] có nhiều nhất |U |
thành phần liên thông.
Nói cách khác, bằng cách bỏ đi k đỉnh của đồ thị thì nó không thể
tách ra thành nhiều hơn k thành phần liên thông.
Định nghĩa 2.2 (2-Thừa số). Một đồ thị G = (V, E) sẽ có 2-thừa số
nếu tồn tại tập E ⊂ E , sao cho mỗi đỉnh trong đồ thị G = (V, E ) đều
có bậc 2.
Định nghĩa 2.3 (3-Chu trình). Một đồ thị G = (V, E) sẽ có 3-chu trình
nếu với mỗi bộ ba đỉnh u, v, w ∈ V đều tồn tại một chu trình trong đồ
thị G bao gồm u, v, w.

Định lý 2.1. Đồ thị Hamilton yếu bất kì là 1- bền, có 2-thừa số và là
3-chu trình.


18

Dễ thấy rằng mỗi đồ thị Hamilton dạng G thỏa mãn cả ba tính
chất trên. Bỏ đi k đỉnh của một chu trình sẽ tạo ra k đường đi. Do đó
một đồ thị Hamilton có thể tách ra thành nhiều nhất k thành phần
liên thông bằng cách bỏ đi k đỉnh kéo theo tính 1-bền .Một chu trình
Hamilton là 2-thừa số của đồ thị G. Cuối cùng, thuộc tính 3-chu trình có
được từ thực tế rằng mỗi tập ba đỉnh đều nằm trên chu trình Hamilton.
Định lý 2.2. Mỗi đồ thị Hamilton đều là Hamilton yếu.

2.2

Thuật toán tìm đường đi dài trên đồ thị

Bây giờ ta sẽ chỉ ra thuật toán để tìm được đường đi dài trên các đồ
thị 1-bền. Nếu không xét đến các trường hợp đặc biệt thì với bất cứ đồ

G = (V, E) nào, chúng ta giả thiết rằng |V | = n và |E| = m . Ta đo độ
dài của một đường đi dựa trên số lượng đỉnh trong nó. Trước tiên ta sẽ
mô tả một thuật toán đơn giản để tìm ra đường đi dài trên đồ thị dày
đặc. Sau đó, ta sẽ chỉ ra cách tìm một đường đi có độ dài Θ(logn) trên
một đồ thị 1-bền bất kì.

Định lý 2.3. Bất kì một đồ thị nào có m cạnh và n đỉnh sẽ chứa một
đường đi có độ dài d =


m
n.

Chứng minh.
Trước tiên ta xét một đồ thị với bậc d nhỏ nhất. Rõ ràng, bất kì một
đường đi dài nhất nào trên đồ thị này đều có độ dài tối thiểu là d. Vì
vậy, một thuật toán tham lam sẽ tìm được một đường đi có độ dài có độ
dài d. Bây giờ, ta xét một đồ thị với m cạnh, n đỉnh và cho d =

m
n.

Lặp

lại việc chọn đỉnh có bậc nhỏ hơn d và bỏ đi đỉnh này cùng tất cả các
cạnh liên thuộc với nó. Quá trình này sẽ dừng khi phần đồ thị còn lại
có bậc nhỏ nhất là d. Tất nhiên phần đồ thị còn lại không thể là trống


19

vì nhiều nhất có (d − 1)n < m đỉnh có thể bị bỏ đi khỏi đồ thị trong
quá trình xóa các đỉnh có bậc nhỏ của đồ thị. Nhưng đồ thị này có bậc
nhỏ nhất là d, nên thuật toán tham lam là đúng.

Định lý 2.4. Cho G = (V, E) là đồ thị 1- bền với n đỉnh. Khi đó cây
tìm kiếm theo chiều sâu trên G sẽ cho đường đi có độ dài Ω(logn).
Chứng minh.
Sử dụng cây DFS và xét đường đi đến tận gốc-lá được định nghĩa
như sau: Ở mỗi bước, chuyển đến cây con lớn nhất. Giả sử rằng đường

đi này có độ dài l và các đỉnh trong đường đi này có bậc lần lượt là

d1 .d2 , ..., dl trong cây. Vì cây không có đỉnh cô lập nên việc bỏ đi l đỉnh
của đường đi này sẽ tách những đỉnh con của l đỉnh này khỏi nhau, tạo

(di − 1) ≤ l thành phần liên thông. Với thuộc tính 1-bền ta thấy

ra
rằng

(di − 1) ≤ l và

(di ) ≤ 2l . Mặt khác, vì ta lấy cành lớn nhất

tại mỗi bước, điều này là cần thiết trong trường hợp gốc cây con bắt
đầu từ dj có cỡ tối thiểu là n( d11 . d12 ... dj1−1 ). Vì vậy

l cố định ,

di ≥ n. Với mỗi số

di ≥ n sẽ đạt giá trị lớn nhất, (với điều kiện

(di ) ≤ 2l ),

nếu di có giá trị bằng nhau (ta nói di = 2). Điều đó có nghĩa là,đường
đi gốc-lá có độ dài l là nhỏ nhất(bằng Θ(logn) ) khi mỗi giá trị di là 2.
Do đó l ≥ logn .
Hệ quả 2.1. Trên một đồ thị Hamilton với m cạnh, n đỉnh, một đường
đi có độ dài k có thể được tìm thấy trong thời gian O(m + k 2 !).

Chứng minh.
Cùng một lập luận như định lí trước, với bất kì một mức độ nào của
thuật toán tìm kiếm theo chiều sâu trên cây, số lượng giao điểm tại mức
độ đó sẽ nhỏ hơn hoặc bằng số lượng giao điểm trong tất cả các mức
độ trước đó (do đó cây được tìm thấy sẽ rất dễ dàng trở thành 1 cây


20

nhị phân trong một chiều trung bình). Nếu độ sâu của một cây vượt
quá k thì coi như chúng ta đã xong. Còn nếu không, ta phải tìm ra các
cây con có chứa từ k đến k2 . Một cây con như thế chắc chắn tồn tại vì
giống như đã thảo luận ở trên, mỗi cây giao điểm có tối đa k cây con.
Đường đi từ gốc đên những cây con này chứa tối đa k đỉnh, cắt cây con
từ phần còn lại của đồ thị, vì vậy đường đi Hamilton có thể xuất hiện
và tồn tại ở cây con tối đa k lần. Ta có thể kết luận rằng cây con này
chứa một đường đi có độ dài k , và có thể được tìm ra bằng tìm kiếm
theo chiều sâu.

2.3

Đồ thị bền với đường đi ngắn

Bây giờ ta sẽ chứng minh giới hạn cao hơn của O(logn) trên đường đi
dài nhất trong đồ thị 1-bền. Thực tế chúng ta chứng minh được rằng có
tồn tại những đồ thị thỏa mãn cả 3 thuộc tính 1-2-3, đồ thị này có chiều
dài đường đi dài nhất là O(logn). Ta định nghĩa mỗi đồ thị Gk (Vk , Ek )
với một số nguyên không âm k . Đồ thị sẽ bao gồm 2k − 1 đỉnh thường
và 2 siêu đỉnh. Những đỉnh thường được sắp xếp trong một cây nhị phân
hoàn chỉnh. Cây được bổ sung thêm bởi một đỉnh giữa mỗi cặp liền

nhau. Ta phân biệt giữa cạnh cây và cạnh kề. Hai siêu đỉnh được gọi là

s1 và s2 , và chúng kề với mỗi đỉnh khác trong đồ thị, bao gồm lẫn nhau.
Kích thước của Vk là n = 2k + 1.
Những bổ đề dưới đây chỉ ra rằng Gk có đủ 3 thuộc tính 1-2-3.
Bổ đề 2.1. Đồ thị Gk là 1-bền.
Chứng minh. Giả sử rằng đồ thị Gk không chứa siêu đỉnh. Sau đó ta chỉ
ra rằng việc loại bỏ bất cứ một tập W đỉnh thường nào sẽ cảm sinh ra
một đồ thị con Gk [Vk − W ] với tối đa |W | + 1 thành phần liên thông.
Điều này được chứng minh bởi phương pháp quy nạp đối với |W | . Việc


21

chứng minh một mệnh đề mạnh hơn là cần thiết, theo cách sau : Bằng
cách bỏ đi bộ đỉnh W đồ thị sẽ bị tách ra thành tối đa |W | + 1 thành
phần và mỗi thành phần sẽ là một cây nhị phân (không nhất thiết là
hoàn toàn) với số cạnh thêm vào giữa các đỉnh kề nhau. Mệnh đề này
đúng trong trường hợp |W | = 0. Ta giả sử rằng nó cũng đúng trong
trường hợp |W | = r. Bây giờ hãy giả sử chúng ta xóa đi tập W

w, với

w không thuộc W không phải là đỉnh thường. Có hai trường hợp , dựa
vào việc đỉnh w là một lá hay không phải lá của thành phần Gk [Vk − W ]
chứa nó. Nếu đó là một lá, thì số lượng thành phần không bị thay đổi
bởi sự xóa đi thêm vào. Nhưng nếu đó không phải là một đỉnh lá thì ta
có thể dễ dàng thấy được phần mà w trực thuộc bị chia ra thành hai
phần nhỏ. Tương đương, nó cũng đúng để khẳng định có một miền giữa
mỗi cặp đỉnh kề nhau. Điều này đã hình thành lên mệnh đề.


Hình 2.1: Một đồ thị Hamilton yếu không chứa đường đi dài


22

Giờ chúng ta sẽ xét tới các siêu đỉnh. Giả sử chúng ta xóa đi bộ

W ⊆ Vk từ Gk , rõ ràng là phần đồ thị còn lại vẫn sẽ liên thông, nếu
W không chứa cả s1 và s2 . Giờ chúng ta xét trường hợp mà s1 ∈ W
và s2 ∈ W , W = W − s1 , s2 . Với mệnh đề ở phần trước, sự xóa bỏ w
khỏi Gk có thể tạo ra tối đa |W | + 1 phần nhỏ. Ta có thể rút ra rằng
số lượng của phần nhỏ chính bằng |W | − 1, tạo ra tính 1-bền của Gk .
Bổ đề 2.2. Đồ thị Gk là có 2-thừa số.
Chứng minh. Trước tiên hãy chú ý rằng bộ các đỉnh thường trong 2 cấp
liên tiếp của cây có thể dễ dàng phân chia thành một bộ các tam giác
tách rời nhau. Xét trường hợp số lượng cấp là chẵn. Chúng ta có thể
ghép cặp các cấp của đồ thị và thu về một bộ tam giác tách rời liên
quan đến tất cả các đỉnh trừ hai siêu đỉnh. Hai siêu đỉnh có thể được
nối với bất cứ một tam giác nào đó để tạo ra một đồ thị đầy đủ K5 .
Vì K5 chứa một chu trình bậc 5 nên chúng ta có thể thu được 1 số chu
trình rời rạc, mỗi chu kì có 1 đỉnh. Đây chính là một thừa số bậc 2. Khi
số lượng của cấp là lẻ, 2 siêu đỉnh sẽ tạo ra một tam giác với đáy và
những cấp độ còn lại được chia thành các tam giác như trước đó, tạo ra
một bội số cấp 2.
Bổ đề 2.3. Đồ thị Gk là có 3-chu trình.
Chứng minh. Gọi v1 , v2 , v3 lần lượt là ba đỉnh bất kì. Giả sử rằng không
có đỉnh nào trong số ba đỉnh này là siêu đỉnh. Rõ ràng sẽ có một đường
đi giữa v1 và v2 (chỉ sử dụng ba cạnh) . Ta có thể gắn siêu đỉnh với hai
điểm kết thúc của đường đi này và sử dụng cạnh từ s1 đến v3 và từ v3

đến s2 để hoàn thành chu kì chứa cả ba đỉnh . Không mất tính tổng
quát, giả sử rằng một trong ba đỉnh, chẳng hạn v3 , là một siêu đỉnh thì
sẽ tồn tại một đường đi chạy từ v1 tới v2 và không đi qua v3 , mà vì v3
là siêu đỉnh nên nó sẽ kề với cả hai đỉnh v1 và v2 , và những cạnh đó sẽ


23

hoàn thiện một chu trình. Nếu hai trong ba đỉnh là siêu đỉnh thì ta có
thể rút ra một tam giác chứa cả ba đỉnh đó.
Bổ đề sau đây sẽ giúp hình thành lên đường đi dài nhất của đồ thị

Gk với độ dài O(logn).
Bổ đề 2.4. Đường đi dài nhất trong đồ thị Gk không chứa siêu đỉnh,
có độ dài Θ(logn).
Chứng minh. Xét đồ thị được hình thành bằng cách bỏ đi hai siêu đỉnh
: đó là một cây nhị phân hoàn toàn nối tất cả những cạnh kề nhau. Để
thuận tiên hơn ta sẽ đo chiều dài của một đường đi dựa trên số cạnh.
Ta chứng minh bổ đề này bằng phương pháp quy nạp dựa trên cấp của
cây nhị phân. Giả sử rằng chiều dài của đường đi dài nhất tối đa là 4k
và chiều dài của đường đi dài nhất (mà kết thúc là gốc) đạt tối đa là 2k
- Trường hợp 1: Với k = 1 là tầm thường.
- Trường hợp 2: Đồ thị có cấp k và lưu ý rằng k = logn . Đường đi dài
nhất trong đồ thị này bao gồm đường đi dài nhất trong đồ thị con bên
trái của gốc(kết thúc tại gốc), một đường đi nối hai phần qua gốc và
đường đi dài nhất trong đồ thị con bên phải của gốc(kết thúc tại gốc).
Do đó độ dài của đường đi dài nhất qua trong đồ thị cấp k có thể tối
đa gấp hai lần tổng độ dài của đường đi dài nhất trong cây con bên trái
và cây con bên phải (cả hai có cấp k − 1) . Với giả thiết trên, điều này
có nghĩa là đuờng đi dài nhất sẽ không vượt quá 4k . Tương tự, độ dài

của đường đi dài nhất kết thúc tại gốc cũng chỉ tối đa lớn hơn 2 lần so
với độ dài của đường đi dài nhất trong đồ thị con bên trái hặc trong đồ
thị con bên phải. Một lần nữa, với giả thiết trên, đường đi dài nhất kết
thúc tại gốc sẽ có độ dài tối đa là 2k .
Độ dài của đường đi dài nhất trong Gk có thể lớn hơn độ dài của
đường đi dài nhất không chứa những siêu đỉnh tối đa một thừa số bậc
3. Nguyên nhân là do bất cứ đường đi nào chứa hai siêu đỉnh sẽ bao


×