Bài giảng Giải thuật nâng cao - Giải thuật xấp xỉ - Ngô Quốc Việt

Tóm tắt Bài giảng Giải thuật nâng cao - Giải thuật xấp xỉ - Ngô Quốc Việt: ..., 𝑣) ∈ 𝐸, thì 𝑢 ∈ 𝑆, hoặc 𝑣 ∈ 𝑆 hoặc 𝑢, 𝑣 ∈ 𝑆. • Ví dụ: Giải thuật nâng cao-Giải thuật xấp xỉ 16 Phủ đỉnh S Một số ứng dụng của phủ đỉnh • Bioinformatics • Cơ sở cho novo genome assembly sử dụng phương pháp overlap-consensus (liên ứng). CABOG, Celera, xây dựng overlap grap...ác town trong khu quy hoạch} • Với mỗi khu phố x, Sx là tập các town trong phạm vi 10km. Trường tại x sẽ phủ các town này • cx=1, x ? Giải thuật nâng cao-Lý thuyết số 29 Phủ tập hợp-giải thuật greedy • Chọn Si chứa nhiều town nhất chưa được phủ • Lặp lại cho đến khi các Si được chọn p... Để thấy điều này, xét bất kỳ phần tử nào của U. Sao cho một phần tử là cạnh trong G. Vì C là set cover, có ít nhất một endpoint của cạnh này thuộc C. Giải thuật nâng cao-Lý thuyết số 39 SC là bài toán NP-complete (tt) • (←) • Giả sử có set cover C’ kích thước tối đa b trong constructe...

pdf55 trang | Chia sẻ: havih72 | Lượt xem: 309 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Giải thuật nâng cao - Giải thuật xấp xỉ - Ngô Quốc Việt, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
GIẢI THUẬT XẤP XỈ 
TS. NGÔ QUỐC VIỆT 
2015 
Nội dung 
1. Nhắc lại NP và các vấn đề liên quan 
2. Giới thiệu giải thuật xấp xỉ 
3. Minh họa giải thuật xấp xỉ với bài toán phủ đỉnh, 
TSP. 
4. Tóm tắt 
Giải thuật nâng cao-Giải thuật xấp xỉ 2 
Bài toán NP 
• Giải thuật hiệu quả: xác định lời giải tối ưu 
trong thời gian đa thức 
• Tuy nhiên, hầu hết các bài toán tối ưu là NP khó. 
Nghĩa là không tồn tại giải thuật hiệu quả để giải. 
• NP là một trong những complexity class cơ 
bản. 
• NP: nondeterministic polynomial time. 
Giải thuật nâng cao-Giải thuật xấp xỉ 3 
Bài toán NP 
• P: thuật giải thời gian đa thức. Lớp bài toán P có 
tính chất bao đóng chính xác (tính cộng, tính nhân). 
• NP: tập các bài toán quyết định (trả lời YES hoặc 
NO) theo đó một số instances cụ thể của bài toán 
đang xét được giải và kiểm chứng (verifier) trong 
thời gian đa thức. 
• NP = Problems with Efficient Algorithms 
for Verifying Proofs/Certificates/Witnesses 
• Định nghĩa: NP là lớp các vấn đề có efficient 
verifiers, i.e. có giải thuật đa thức để kiểm chứng lời 
giải đã cho là đúng 
Giải thuật nâng cao-Giải thuật xấp xỉ 4 
Bài toán NP 
• Phần lớn các bài toán thực tế là NP. Có thể 
efficiently verify nếu given short proof là valid, 
nhưng không tìm được efficient algorithm để giải. 
• 
• Lớp NP là extremely interesting. 
• Hầu hết các vấn đề trong CS, math, biology, physics, 
chemistry, economics, management, sociology, 
business, v.v, đều thuộc lớp NP. 
• Xem thêm compendium of NP optimization 
problems. 
Giải thuật nâng cao-Giải thuật xấp xỉ 5 
Verifier V của bài toán NP-ví dụ 
• Xét bài toán tìm subset có tổng bằng zero (hay hằng 
số bất kỳ). 
• Nhận xét: số lượng các subset của tập hợp là lũy 
thừa (bao nhiêu?) 
• Tuy nhiên: cho subset cụ thể  dễ dàng kiểm chứng 
(verify) tổng các phần tử của nó là zero. Giải thuật 
kiểm chứng tổng zero của một subset được gọi là 
verifier. 
Giải thuật nâng cao-Giải thuật xấp xỉ 6 
Cận dưới của NP problem 
• Xem: https://www.youtube.com/watch?v=K2-
Y4a3BtSE 
• Reductions: giải một yêu cầu dựa trên các hàm hay 
problem khác như Subroutine/Oracle/Black Box. 
Không quan tâm đến độ phức tạp subroutine. 
• Giải thuật reduction A có sử dụng hàm O được ký hiệu: 
𝐴𝑂 
• Vấn đề Q là black-box reducible thành O và viết 𝑄 ≤𝑇 𝑂 
iff tồn tại giải thuật A sao cho mọi input x, thì 𝑄 𝑥 =
𝐴𝑂(𝑥) 
• Nếu A chạy trong thời gian đa thức thì được gọi 
là polynomial-time black-box reduction, ký hiệu 
𝑄 ≤𝑇
𝑃 𝑂. (Subscript T thể hiện ”Turing”) 
Giải thuật nâng cao-Giải thuật xấp xỉ 7 
Cận dưới của NP problem 
• Vấn đề Q là many-one reducible to problem O và viết 
𝑄 ≤𝑚 𝑂 iff có giải thuật A sao cho mọi input x, thì 
𝑄 𝑥 = 𝑂 𝐴 𝑥 
• Nếu reduction algorithm A là polynomial time thì 
được gọi là polynomial-time many-one reduction, 
ký hiệu 𝑄 ≤𝑚
𝑃 𝑂 
• Nếu có polynomial-time many-one reduction từ vấn 
đề A thành NP problem B, thì A thuộc lớp NP. 
Giải thuật nâng cao-Giải thuật xấp xỉ 8 
NP-complete 
• NP-complete là tập các vấn đề vừa NP, vừa NP-khó. 
• A là NP-complete iff 
• A là bài toán NP, và 
• Mọi bài toán B thuộc lớp NP, thì B là polynomial-
time many-one reducible to A 𝐵 ≤𝑚
𝑝 𝐴 
•Nếu problem là NP-complete, thì không tồn tại 
polynomial-time algorithm để tìm nghiệm tối 
ưu 
• Thường sử dụng giải thuật xấp xỉ, tham lam, 
heuristic,  để giải các bài toán NP. 
Giải thuật nâng cao-Giải thuật xấp xỉ 9 
NP & liên quan 
Giải thuật nâng cao-Giải thuật xấp xỉ 10 
NP-complete: ví dụ 
heuristic/text/class/more-np.html 
https://en.wikipedia.org/wiki/List_of_NP-
complete_problems 
Yêu cầu: Anh/Chị đọc và trình bày 2 bài viết trên 
Giải thuật nâng cao-Giải thuật xấp xỉ 11 
Giới thiệu giải thuật xấp xỉ 
• Giải thuật xấp xỉ xác định lời giải xấp xỉ của các bài 
toán tối ưu 
• Thường dùng cho các vấn đề NP-khó 
• Khác với giải thuật heuristic (chỉ cần lời giải đủ tốt, 
và đủ nhanh) 
• Giải thuật xấp xỉ cần xác định rõ chất lượng xấp xỉ, 
độ phức tạp. 
• Ví dụ: giải thuật xấp xỉ cho bài toán phủ đỉnh. 
Giải thuật nâng cao-Giải thuật xấp xỉ 12 
Định nghĩa giải thuật xấp xỉ 
• Giải thuật xấp xỉ  cho bài toán tối ưu là giải thuật 
hiệu quả (thời gian đa thức) cho mọi instance của 
vấn đề sao cho lời giải nằm trong ngưỡng  so với 
lời giải tối ưu thực sự. 
•  : là tỉ lệ xấp xỉ (approximation ratio), hay thừa số 
xấp xỉ (approximation factor). 
• Định nghĩa: approximation ratio 𝝆 𝒏 
• Chi phí của optimal solution là C*, chi phí của 
approximation algorithm là C, thì 
• 𝝆 𝒏 ≥ 𝑚𝑎𝑥(
𝐶
𝐶∗
,
𝐶∗
𝐶
) 
• Gọi là: (n)-approximation algorithm. 
Giải thuật nâng cao-Giải thuật xấp xỉ 13 
Định nghĩa giải thuật xấp xỉ 
• Vấn đề Maximization thì 
 𝐶∗/𝜌(𝑛) ≤ 𝐶 ≤ 𝐶∗ 
• Vấn đề Minimization thì 
 𝐶∗ ≤ 𝐶 ≤ 𝜌(𝑛). 𝐶∗ 
• ρ(n) không nhỏ hơn 1. 
• 1-approximation algorithm là optimal solution 
• Mục tiêu là tìm polynomial-time approximation 
algorithm với small constant approximation ratios 
Giải thuật nâng cao-Giải thuật xấp xỉ 14 
Approximation scheme 
• Approximation scheme là approximation algorithm 
thêm tham số Є>0, sao cho với Є>0 xác định thì 
scheme là (1+Є)-approximation algorithm. 
• Polynomial-time approximation scheme: runs in 
time polynomial in the size of input. 
• Khi Є giảm, thì thời gian thực hiện có thể tăng 
nhanh, ví dụ 𝑂 𝑛
2
𝜖 
Giải thuật nâng cao-Giải thuật xấp xỉ 15 
Phủ đỉnh 
• 𝐺 = (𝑉, 𝐸) là đồ thị, V={tập đỉnh}, E={tập cạnh} 
• 𝑆 ⊆ 𝑉 là một phủ, nếu ∀ (𝑢, 𝑣) ∈ 𝐸, thì 𝑢 ∈ 𝑆, hoặc 
𝑣 ∈ 𝑆 hoặc 𝑢, 𝑣 ∈ 𝑆. 
• Ví dụ: 
Giải thuật nâng cao-Giải thuật xấp xỉ 16 
Phủ đỉnh S 
Một số ứng dụng của phủ đỉnh 
• Bioinformatics 
• Cơ sở cho novo genome assembly sử dụng phương pháp 
overlap-consensus (liên ứng). CABOG, Celera, xây dựng 
overlap graph của nhiều whole-genome shotgun reads, với 
each vertex ứng với read và cạnh biểu diễn mutual overlap 
giữa hai reads 
• SNP Assembly Problem 
• Computer network securities 
• Mô phỏng sự lan truyền của worm máy tính nhằm tìm giải 
pháp bảo vệ mạng máy tính lớn. 
Giải thuật nâng cao-Giải thuật xấp xỉ 17 
Phủ đỉnh 
• OPTIMIZATION VERSION: 
• INPUT: graph G 
• OUTPUT: vertex cover S of minimum-size (số đỉnh ít 
nhất) 
• DECISION VERSION: 
• INSTANCE: graph G, integer k 
• QUESTION: does G have vertex cover of size  k 
Giải thuật nâng cao-Giải thuật xấp xỉ 18 
Phủ đỉnh 
• Dạng bài toán NP-Complete 
• Sử dụng dạng giải thuật tham lam, hoặc xấp xỉ để 
giải quyết 
• Yêu cầu: Sử dụng chiến lược tham lam để giải bài 
phủ đỉnh. Trình bày thuật giải, cho biết độ phức tạp, 
và cài đặt chương trình minh họa. 
Giải thuật nâng cao-Giải thuật xấp xỉ 19 
Phủ đỉnh-xấp xỉ 
Giải thuật 1 
1. Chọn cạnh A bất kỳ, bỏ tất cả các cạnh có nối đến hai đỉnh 
của A ( kể cả cạnh A) 
2. Chọn cạnh khác & lặp lại bước 1 đến khi mọi cạnh bị loại 
bỏ. 
vertex-cover tìm được theo giải thuật 1, thường gấp đôi phủ 
đỉnh tối ưu 
Giải thuật nâng cao-Giải thuật xấp xỉ 20 
Phủ đỉnh-xấp xỉ-giải thuật 1 
Giải thuật nâng cao-Giải thuật xấp xỉ 21 
Optimal 
Size=3 
Near Optimal 
size=6 
Phủ đỉnh-xấp xỉ-giải thuật 1 
Giải thuật nâng cao-Giải thuật xấp xỉ 22 
4 
1 2 3 
6 5 7 
4 
1 2 3 
6 5 7 
Not cover 
Phủ đỉnh-xấp xỉ-giải thuật 1 
Giải thuật nâng cao-Giải thuật xấp xỉ 23 
4 
1 2 3 
6 5 7 
4 
1 2 3 
6 5 7 
Cover 
Size=4 
Cover 
Size=7 
Phủ đỉnh-xấp xỉ-giải thuật 1 
Giải thuật nâng cao-Giải thuật xấp xỉ 24 
4 
1 2 3 
6 5 7 
4 
1 2 3 
6 5 7 
Cover 
Size=5 
Cover 
Size=3 
Phủ đỉnh-xấp xỉ-giải thuật 1 
APPROX-VERTEX-COVER là 2-approximate algorithm 
• Gọi c là phủ đỉnh xấp xỉ, và c* là phủ đỉnh tối ưu, A là 
tập cạnh của lệnh 4. Cần chứng minh 
𝑐
𝑐∗
≤ 2. 
• Lệnh 5 thêm cả hai đỉnh, trong khi chỉ cần thêm một 
hoặc hai đỉnh trên 
• Không có hai cạnh trong A, phủ cùng một đỉnh trong 
c* (vì đã bị xóa-lệnh 6)  𝑐∗ ≥ 𝐴 
• Vì vậy: 
𝑐
𝑐∗
≤ 2. 
Giải thuật nâng cao-Giải thuật xấp xỉ 25 
Phủ đỉnh-xấp xỉ-giải thuật 1 
Giải thuật nâng cao-Giải thuật xấp xỉ 26 
4 
1 2 3 
6 5 7 
𝛼 = 𝑀𝑎𝑥(6/3, 3/6) = 2 
4 
1 2 3 
6 5 7 
𝛼 = 𝑀𝑎𝑥(4/3, 3/4) = 1.33 
Phủ đỉnh-xấp xỉ 
Giải thuật 2 
1. Chọn đỉnh v có bậc lớn nhất, cho v vào S. 
2. Xóa mọi cạnh có nối với v. 
3. Tiếp tục bước 1, 2 đến khi không còn cạnh nào 
Giải thuật 3 
1. Tìm matching M tối đại trong G. 
2. Với mỗi cạnh 𝑢, 𝑣 ∈ 𝑀, thêm hai đỉnh u, v vào S. 
Giải thuật nâng cao-Giải thuật xấp xỉ 27 
(ln n)-approximation 
Phủ tập hợp-ví dụ 
• Một khu quy hoạch (có nhiều khu phố) cần xác định các 
vị trí xây trường với hai ràng buộc 
• Trường phải trong khu phố (town) 
• Không học sinh/phụ huynh nào phải đi qua xa (vd: 10km) từ 
nhà đến trường 
• Câu hỏi: cần xây tối thiểu bao nhiêu trường? 
• Yêu cầu trên có thể giải thông qua khái niệm phủ tập 
hợp. 
Giải thuật nâng cao-Lý thuyết số 28 
Các khu phố Khu phố trong 
phạm vi 10km 
Phủ tập hợp-định nghĩa 
• Cho tập phổ biến 𝑈 = 𝑢1, 𝑢2,  , 𝑢𝑛 
• Gọi 𝑆1, 𝑆2,  , 𝑆𝑘 ⊆ 𝑈 là các tập con có các trọng số 
tương ứng 𝑐1, 𝑐2,  , 𝑐𝑛 
• Mục tiêu: cần tìm 𝐼 = 1,2,  ,𝑚 sao cho cực tiểu 
 𝑐𝑖𝑖 và 𝑆𝑖𝑖 = 𝑈. 
• Hỏi: U, Si, ci trong bài toán xây các trường? 
• 𝑈 ={các town trong khu quy hoạch} 
• Với mỗi khu phố x, Sx là tập các town trong phạm vi 10km. 
Trường tại x sẽ phủ các town này 
• cx=1, x ? 
Giải thuật nâng cao-Lý thuyết số 29 
Phủ tập hợp-giải thuật greedy 
• Chọn Si chứa nhiều town nhất chưa được phủ 
• Lặp lại cho đến khi các Si được chọn phủ U. 
• Ví dụ xây trường 
• Chọn Sa, Sa chứa a, b, d, e, k, i, h. 
• Chọn Sf hoặc Sg, vì chứa f, g. 
• Chọn Sc và Sj chứa chính nó. 
• 𝑐𝑖𝑖 = 4. 
• Nhận xét: có thể chọn giải pháp tốt hơn? 
• Xây trường tại b, e, và i là giải pháp tốt hơn 
Giải thuật nâng cao-Lý thuyết số 30 
Phủ tập hợp-giải thuật greedy 
1. 𝐶 = *+ 
2. While 𝐶 ≠ 𝑈 
 Tìm tập S có cost nhỏ nhất 
 Đặt 𝛼 =
𝑐(𝑆)
𝑆−𝐶
 Với mỗi 𝑒 ∈ 𝑆\C, đặt 𝑝𝑟𝑖𝑐𝑒(𝑒) = 𝛼 
 𝐶 = 𝐶 ∪ 𝑆 
3. Ouput S 
Giải thuật nâng cao-Lý thuyết số 31 
SC là bài toán NP-complete 
• Định lý: Set Cover (SC) là NP-complete 
• Chứng minh: 
Giải thuật nâng cao-Lý thuyết số 32 
INSTANCE: Cho universe U n phần tử, tập các subset 
của U, S = {S1, , Sm}, và số nguyên dương b 
QUESTION: Tồn tại tập 𝐶 ⊆ 1,2, ,𝑚 , |C| ≤ b, sao 
cho 
 𝑆𝑖
𝑖∈𝐶
= 𝑈 
Subcollection 𝑆𝑖 | 𝑖 ∈ 𝐶 thỏa điều kiện trên là set 
cover của U 
SC là bài toán NP-complete (tt) 
1. Cần chứng minh SC thuộc NP. Dễ dàng kiểm 
chứng điều kiện YES của instance trên. Nghĩa là, 
cho subcollection C, nếu |𝐶| ≤ 𝑏 và hội của các 
tập trong C chứa mọi phần tử của U theo thời gian 
đa thức. 
2. Để chứng minh định lý, cần phải chứng minh 
Vertex Cover (VC) ≤p Set Cover (SC) 
Cho instance C của VC (undirected graph G=(V,E) 
và số nguyên dương j), chúng ta cần xây dựng C’ 
của SC trong thời gian đa thức sao cho C là 
satisfiable iff C’ là satisfiable. 
Giải thuật nâng cao-Lý thuyết số 33 
SC là bài toán NP-complete (tt) 
• Construction: Đặt U = E. Định nghĩa n phần tử của U 
và tập S như sau: 
• Đánh nhãn mọi đỉnh trong V từ 1 đến n. Đặt Si là tập các 
cạnh nối với đỉnh i. Sau đó, đặt b = j. Cách xây dựng này là 
thời gian đa thức ứng với kích thước của VC instance 
• Chú ý: mỗi cạnh ứng với mỗi phần tử trong U và 
mỗi đỉnh ứng với một set trong S. 
Giải thuật nâng cao-Lý thuyết số 34 
Phủ đỉnh có trọng số 
• Tìm tập các đỉnh của graph sao cho mỗi cạnh chứa 
ít nhất một đỉnh trong tập. 
• Mỗi đỉnh có trọng số, cần tìm phủ đỉnh total weight 
nhỏ nhất. 
• Các phủ đỉnh: *1,3,4+; *1,7,5+ 
Giải thuật nâng cao-Giải thuật xấp xỉ 35 
1 
2 
7 
4 
5 
3 
6 
VERTEX-COVER p SET-COVER 
• Vertex Cover là trường hợp đặc biệt của Set 
Cover 
• Chuyển vertex cover sang set cover: 
1. T = the set of edges E 
2. Các subsets ứng với từng vertex, mỗi subset 
chứa tập các cạnh nối với corresponding vertex 
Giải thuật nâng cao-Giải thuật xấp xỉ 36 
VERTEX-COVER p SET-COVER 
• T = { (1, 3), (3,7), (1, 7), (4, 5), (4, 6) } 
• Subsets: 
1. S1 = { (1, 3), (1, 7) } w = 1 
2. S3 = { (1, 3), (3, 7) } w = 3 
3. S7 = { (1, 7), (3, 7) } w = 7 
4. S4 = { (4, 5), (4, 6) } w = 4 
5. S6 = { (4, 6) } w = 6 
6. S5 = { (4, 5) } w = 5 
Giải thuật nâng cao-Giải thuật xấp xỉ 37 
1 
2 
7 
4 
5 
3 
6 
VERTEX-COVER p SET-COVER 
Giải thuật nâng cao-Lý thuyết số 38 
one set for every vertex, 
containing the edges it covers 
VC 
one element 
for every edge 
SC 
SC là bài toán NP-complete (tt) 
• Cần chứng minh C là satisfiable iff C’ là satisfiable. 
• Nghĩa là, cần chứng minh nếu original instance của 
VC là YES instance iff constructed instance of SC là 
YES instance. 
• (→) 
• Giả sử G có phủ đỉnh C kích thước tối đa là j. Theo 
cách xây dựng trên, C ứng với collection C’ của các 
subsets của U. Vì b = j, |C’| ≤ b. C’ phủ mọi 
elements trong U vì C “phủ ” mọi cạnh trong G. 
• Để thấy điều này, xét bất kỳ phần tử nào của U. Sao 
cho một phần tử là cạnh trong G. Vì C là set cover, có 
ít nhất một endpoint của cạnh này thuộc C. 
Giải thuật nâng cao-Lý thuyết số 39 
SC là bài toán NP-complete (tt) 
• (←) 
• Giả sử có set cover C’ kích thước tối đa b trong 
constructed instance. Vì mỗi tập trong in C’ được 
kết hợp với đỉnh trong G, đặt C là tập các đỉnh này. 
Thì |C| = |C’| ≤ b = j. C là vertex cover của G vì C’ là 
set cover. 
• Để thấy điều này, xét cạnh bất kỳ e. Vì e thuộc U, nên 
C’ phải chứa ít nhất một tập set có chứa e. Theo 
cách xây dựng trên, chỉ một tập hợp chứa e ứng với 
các là các endpoint của e. Vậy C phải chứa ít nhất 
một endpoint của e. 
Giải thuật nâng cao-Lý thuyết số 40 
Giải thuật Set Cover 
Algorithm 1: (trường hợp uniform cost) 
1. C = empty 
2. while U is not empty 
3. pick a set Si such that Si covers the most 
 elements in U 
4. remove the new covered elements from U 
5. C = C union Si 
6. return C 
Giải thuật nâng cao-Lý thuyết số 41 
Giải thuật Set Cover 
• Trường hợp non-uniform cost 
• Phươn pháp ương tự. Tại mỗi bước lặp, tah vì chọn tập 
Si sao cho Si phủ nhiều nhất các phần tử chưa được phủ, 
thì chọn tập Si có cost-effectiveness α nhỏ nhất, với α 
được định nghĩa : 
𝛼 =
𝑐 𝑆𝑖
𝐴𝑖 ∩ 𝑈
• Câu hỏi: tại sao chọn smallest α? Tạy sao định nghĩa α 
như trên 
Giải thuật nâng cao-Lý thuyết số 42 
Giải thuật Set Cover 
Algorithm 2: (trường hợp non-uniform cost) 
1. C = empty 
2. while U is not empty 
3. pick a set Si such that Si has the smallest α 
4. for each new covered elements e in U 
5. set price(e) = α 
6. remove the new covered elements from U 
7. C = C union Si 
8. return C 
 Giải thuật nâng cao-Lý thuyết số 43 
Giải thuật xấp xỉ cho Max-Cut 
• Cho đồ thị 𝐺 = 𝑉, 𝐸 . Yêu cầu tách thành hai tập 
đỉnh S, T sao cho số cạnh bị cắt (cut edge: một đỉnh 
trong S, đỉnh kia trong T) là nhiều nhất 
Giải thuật 2-approximation 
1. S ← Ø , T ← V 
2. Nếu chuyển một từ S sang T, hoặc ngược lại mà 
làm tăng số cut edges, thì thực hiện chuyển nút. 
Repeat 2. 
3. Output số cut edges. 
Giải thuật nâng cao-Giải thuật xấp xỉ 44 
Bài toán TSP 
• Cho đồ thị 𝐺 = 𝑉, 𝐸 có trọng số, vô hướng. Từ 
đỉnh bất kỳ đi đến mọi đỉnh khác và quay trở lại 
đỉnh xuất phát với chi phí thấp nhất 
• TSP thuộc lớp NP-complete 
• Không tồn tại polynomial-time approximation 
algorithm với constant approximation ratio. 
Giải thuật nâng cao-Giải thuật xấp xỉ 45 
3 
1 2 
4 
2 1 
3 
30 
20 
1 
Bài toán TSP 
• Có thể giải TSP theo 2 bước 
• Tìm MST cho đồ thị đang xét 
• Bắt đầu từ bất kỳ node và di chuyển trên các cung của 
MST, và thêm cung tắt để đi khi cần. 
Giải thuật nâng cao-Giải thuật xấp xỉ 46 
start node 
red bold arcs 
form a tour 
Bài toán TSP 
• Thông thường, có thể giả thiết triangle inequality 
đúng cho cost function c: E  R xác định trên các 
cung của đồ thị G=(V,E) : 
 cuw  cuv + cvw for any u, v, w V 
• Định lý: 
 If the cost function satisfies the triangle inequality, 
 then the algorithm for TSP 
 is a 2-approximation algorithm. 
Giải thuật nâng cao-Giải thuật xấp xỉ 47 
w 
v 
u 
Bài toán TSP 
 Với e là cung trên tour, thì (triangle inequality), 
 c(e)  c(f1)++c(fk) 
 Vd: c15  c13 + c35 
 c23  c23 
 Mỗi cung của tree (**) là shortcut 
 nhiều nhất hai lần. 
 Vd: cung tree 3-5 là shortcut bởi cung tour 1-5 và 5-6 . 
 Nhận xét 
𝑐𝑜𝑠𝑡 𝑡𝑠𝑝 𝑡𝑜𝑢𝑟 = 𝑐(𝑒)
𝑒∈𝑇𝑜𝑢𝑟
≤ 2. 𝑐 𝑒
𝑒∈𝑀𝑆𝑇
= 2. 𝑐𝑜𝑠𝑡(𝑀𝑆𝑇) 
Giải thuật nâng cao-Giải thuật xấp xỉ 48 
start node 
red bold arcs 
of tour 
1 
2 
3 
4 
5 
6 
Bài toán TSP 
• Trọng số cạnh là khoảng cách giữa hai đỉnh 
Giải thuật nâng cao-Giải thuật xấp xỉ 49 
Use Prim’s algorithm to get a 
MST 
a 
b 
c 
d 
e 
f g 
h 
Bài toán TSP 
• Trọng số cạnh là khoảng cách giữa hai đỉnh 
• Bất phương trình tam giác thỏa 
Giải thuật nâng cao-Giải thuật xấp xỉ 50 
Use Prim’s algorithm to get a 
MST 
a 
b 
c 
d 
e 
f g 
h 
Chọn “a”là root 
Preorder tree walk 
a b c h d e f g 
Bài toán TSP 
• Tổng trọng số gấp đôi lời giải tối ưu 
 Giải thuật nâng cao-Giải thuật xấp xỉ 51 
a 
b 
c 
d 
e 
f g 
h 
a b c h d e f g 
The route là 
Use Prim’s algorithm to get a 
MST 
Chọn “a”là root 
Preorder tree walk 
Bài toán TSP 
Giải thuật nâng cao-Giải thuật xấp xỉ 52 
• Giải thuật APPROX-TSP-1 là polynomial-time 2-
approximation algorithm. 
• APPROX-TSP-TOUR là O(V2) 
• C(MST) ≤ C(H*) H*: optimal soln 
 C(W)=2C(MST) W: Preorder walk 
 C(W)≤2C(H*) 
 C(H)≤C(W) H: approx soln & 
 C(H)≤2C(H*) triangle inequality 
Optimal 
Pre-order 
Solution 
Bài toán TSP 
APPROX-TSP-2(G, c) 
1. Select a vertex r Є V[G] to be root. 
2. Compute a MST T for G from root 
r using Prim Alg. 
3. Find a minimal-weight matching M 
for vertices of odd degree in T. 
4. Find an Euler cycle C in G’ = (V, T U 
M). 
5. L=list of vertices in preorder walk 
of C. 
6. return the Hamiltonian cycle H in 
the order L. 
Giải thuật nâng cao-Giải thuật xấp xỉ 53 
O(1) 
O(n lg n) 
O(n3) 
O(n2) 
O(n) 
Chu trình Hamilton 
• Cho đồ thị 𝐺 = 𝑉, 𝐸 , tìm chu trình sao cho đi qua 
mỗi đỉnh đúng một lần 
• HAM-CYCLE trở thành Spanning Tree khi bỏ một 
cạnh bất kỳ 
• cost(MST) ≤ cost(min-HAM-CYCLE) 
Giải thuật nâng cao-Giải thuật xấp xỉ 54 
Tóm tắt 
• Các khái niệm P, NP, NP-complete 
• Giải thuật xấp xỉ với hệ số xấp xỉ 
• Minh họa với các bài toán phủ đỉnh, TSP, chu trình 
Hamilton 
Giải thuật nâng cao-Giải thuật xấp xỉ 55 

File đính kèm:

  • pdfbai_giang_giai_thuat_nang_cao_giai_thuat_xap_xi_ngo_quoc_vie.pdf