4.1. Lý luận chung.
Ta xét bài toán tìm đồ thị bộ phận 2-EC nhỏ nhất trên đồ thị vô hướng không trọng số. Để ý rằng mỗi đồ thị bộ phận 2-EC phải chứa ít nhất n cạnh bởi bậc của mỗi đỉnh phải 2. Vì vậy, nếu ta dựng cây khung theo chiến lược DFS (Depth First Search) rồi chọn lấy tất cả cạnh của DFS-cây và các cạnh lùi xa nhất tại mỗi đỉnh (trừ đỉnh gốc) thì đồ thị phương án vừa lập có 2n 2 cạnh. Hiển nhiên cách chọn này dẫn đến thuật toán có tỷ suất hiệu quả 2. Khuller, Vishkin trong [KV94] triển khai chiến lược trên tỉ mỉ hơn bằng cách cân nhắc kỹ lưỡng việc thêm các cạnh lùi. Trong bài báo đó, các tác giả đưa ra các khái niệm tree-carving, graph-carving của đồ thị và thuật toán tương ứng để tìm các cấu trúc này. Từ đó, các ông xây dựng lần lượt thuật toán
2 3
- xấp xỉ cho bài toán 2-EC và thuật toán 3 5
-xấp xỉ cho bài toán 2- VC. Sau kết quả của Khuller và Vishkin, hầu hết các thuật toán xấp xỉ cho các bài toán 2-liên thông (cạnh hoặc đỉnh) không trọng số đều dựa trên DFS-cây. Vetta trong [Vet01] đưa ra thuật toán
2 3
- xấp xỉ cho bài toán 2-EC trên đồ thị có hướng. Vempala, Vetta trong [VV00] đưa ra khái niệm cấu trúc beta, dựa trên cấu trúc này có thể tiến hành một số thao tác tiền xử lý nhằm loại bỏ một số trường hợp khó, giảm sự phức tạp của thuật toán sau này. Vempala, Vetta đưa ra 2 thuật toán
3 4
-xấp xỉ cho bài toán 2-EC và 2-VC. Dựa trên ý tưởng của Vempala, Vetta; Jothi, Raghavachari và Varadarajan trong [JRV03] đề xuất thuật toán
4 5
-xấp xỉ cho bài toán 2-EC, đây cũng là thuật toán tốt nhất hiện nay cho bài toán 2-EC.
Giả sử duyệt G theo chiến lược DFS để dựng cây (rừng) khung T của G , ta nói T
là DFS-cây (rừng). Đặt e uv là một cạnh của DFS-cây T , với dfs u dfs v . Một cạnh lùi gọi là vượt e nếu nó nối hậu duệ (không nhất thiết thực sự) của v với
tổ tiên của u. Một cạnh lùi b vượt e gọi là vượt xa nhất nếu tổ tiên của u kề với nó có số dfs nhỏ nhất. Giả sử cạnh lùi b cùng với một số T-cạnh tạo thành một vòng C , khi đó với e là T-cạnh trong C , ta nói b che e.
4.2. Bài toán 2-EC.
Thuật toán
2 3
-xấp xỉ của Khuller-Vishkin
Mô tả thuật toán: Lập DFS-cây T của G , T có nhiều nhất n 1 cạnh. Ta dùng cây T này để xác lập quan hệ cha, con giữa các đỉnh. Đưa tất cả các T-cạnh vào
H
E và bổ sung thêm vào EH một số cạnh lùi, là những cạnh nối một đỉnh với đỉnh tổ tiên không phải là cha của nó. Nhận xét rằng, nếu một đồ thị là 2-EC thì mọi cạnh của đồ thị đều phải thuộc một vòng nào đó. Thuật toán đảm bảo tính chất này bằng cách loại trừ khả năng có cạnh của T có thể là cầu. Bởi vậy, khi mỗi T-cạnh trong khi duyệt đang là cầu thì thuật toán che nó bởi một cạnh lùi.
Định nghĩa tree-carving: Giả sử có thể phân hoạch tập đỉnh V vào các tập V1,...,Vl
mà có thể biểu diễn các tập con Vi dưới dạng các đỉnh của cây thoả mãn:
Vx N Vj x j V j N v V V V v : , tức là những đỉnh kề với v chỉ nằm trong Vj
hoặc Vx (Vx kề với Vj trong cây ). gọi là tree-carving của đồ thị và l là kích thước của tree-carving.
Định lý tree-carving: Cho G là đồ thị 2-EC có tree-carving kích thước l. Thế thì, E 2l 1 . Có thể mở rộng định lý cho đồ thị k-EC, với kết luận
1
l k
E .
Phân hoạch DFS-cây: Xét DFS-cây T của G, nếu ta loại khỏi cây T những cạnh mà thuật toán cần cần phải che nó bởi cạnh lùi thì phần còn lại của cây xác định một phân hoạch của V . Ta gọi phân hoạch này là phân hoạch DFS-cây.
Dựa trên tính chất cạnh lùi được thêm ta dễ chứng minh được rằng phân hoạch DFS-cây là một tree-carving của G. Vì vậy, kích thước của tree-carving tìm được đúng bằng số cạnh lùi thêm vào EH và ta có thuật toán
2 3 -xấp xỉ do 2 3 1 2 , max 1 1 l n l n . 4.3. Bài toán 2-VC. 2-VC trên đồ thị có trọng số
Frank và Tardos mở rộng phương pháp Edmonds, chỉ ra rằng bài toán sau đây giải được trong thời gian đa thức: cho đồ thị có hướng G với hàm trọng số w. , r là đỉnh cố định. Tìm đồ thị bộ phận H có trọng số nhỏ nhất mà với đỉnh v r bất kỳ luôn có k đường đi r v rời đỉnh.
Dựa trên thuật toán Frank-Tardos ta có thể xây dựng một thuật toán
n
1
2 -xấp xỉ cho bài toán 2-VC trên đồ thị có trọng số như sau:
- Lập đồ thị có hướng GD từ G (xem cách lập GD ở chương 1), giả sử e' xy là cạnh có trọng số nhỏ nhất trong G.
- Tạo đỉnh r mới và lập 2 cung rx,ry có trọng số bằng 0. Thực hiện thuật toán Frank-Tardos trên GD,r,k 2 ta được HD.
- Lập tập cạnh EH từ D
H bằng cách lấy e uv cho vào EH khi và chỉ khi hoặc cung uv HD hoặc cung vu HD.
- Đồ thị bộ phận H V,EH e' là kết quả của thuật toán.
Định lý 1: Ký hiệu GOPT là đồ thị bộ phận tối ưu của G. Thế thì, H là 2-VC và
n G w H w OPT 1 2
Bổ đề 2: Cho đồ thị vô hướng 2-VC G, đỉnh v V. Thế thì, với bất kỳ 2 đỉnh
V y
x, khác v nào cũng luôn có 2 đường đi rời đỉnh x v,y v.
Chứng minh:
Nếu x y thì theo tính chất 2-VC của đồ thị ta có đpcm. Giả sử x y, gọi 2 đường đi x v rời đỉnh là p,p', 2 đường đi y v rời đỉnh là q,q'. Gọi u V p V q là đỉnh chung đầu tiên trên các đường đi q,q' (từ y đến v) với p,p' (từ x đến v) (có thể u v). Khi đó 2 đường đi x p u q vvà 'q là các đường đi cần tìm.
Chứng minh định lý 1:
- H là 2-VC: giả sử tồn tại đỉnh khớp a mà khi xoá a, H chia thành các thành phần liên thông C1,...,Cl. Do xy là cạnh của H nên tồn tại i để x,y a Ci, giả sử x,y a C1. Hiển nhiên, khi đó không thể có 2 đường đi rời đỉnh từ x,y đến
2
C
v , dẫn đến cũng không thể có 2 đường đi có hướng rời đỉnh r v trong HD, trái với định nghĩa D
H . - n G w H w OPT 1 2 : ta có n G w e
w ' OPT . Từ bổ đề 2 suy ra trong D OPT
G , với mọi v
đều có 2 đường đi rời đỉnh x v,y v, suy ra GOPTD r,rx,ry là một đồ thị chấp nhận được đối với kết luận của thuật toán Frank-Tardos. Vì vậy,
H D OPT D OPT wG wH w E G w 2 , suy ra w H we' 2wGOPT . 2-VC trên đồ thị không có trọng số. Thuật toán 2 3
- xấp xỉ của Garg, Santosh, Singla
Thuật toán của Garg, Santosh, Singla (GSS) áp dụng kỹ thuật graph-carving nhưng khác với Khuller và Vishkin trong [KV94], Garg, Santosh, Singla xem xét việc xoá
T-cạnh tỉ mỉ hơn và sử dụng tập độc lập thay cho việc dùng kích thước graph- carving để chặn dưới kích thước đồ thị tối ưu [GSS93]. Ký hiệu I là tập độc lập của
G, thế thì max n,2I OPT . Dựa trên nhận xét này, thuật toán GSS trong khi lập đồ thị bộ phận, cũng đồng thời chọn ra một tập độc lập I của G. Khi kết thúc thuật toán, thuật toán chọn được đồ thị bộ phận đủ nhỏ hoặc đồ thị bộ phận có kích thước gần bằng một tập độc lập đủ lớn. Trong cả hai trường hợp, ta đều đi đến đảm bảo kích thước đồ thị tìm được không vượt quá
2 3
kích thước đồ thị tối ưu.
Bổ đề 1. Nếu đồ thị có tập độc lập I thì đồ thị bộ phận 2-VC nhỏ nhất có ít nhất
I n,2
max cạnh.
Chứng minh: Do không có cạnh nào đồng thời kề với 2 đỉnh của tập độc lập, nói cách khác v w , v w I và các đỉnh trong đồ thị 2-VC phải có bậc ít nhất là 2.
Thuật toán: Thuật toán gồm 2 pha. Trong pha 1, thuật toán chọn ra tập cạnh S mà
S
V, là 2-VC, pha này cũng đồng thời phân hoạch các đỉnh vào các khối. Pha 2 sử dụng các khối này để thay đổi tập S .
Pha 1:
- Lập DFS-cây T cho đồ thị G.
- Cho các cạnh của cây vào đồ thị bộ phận. Thuật toán sẽ chọn ra một tập thích hợp các cạnh lùi để đảm bảo đồ thị bộ phận là 2-VC. Khi quay lui khỏi v, sẽ kiểm tra xem liệu u, là cha của v, có phải là đỉnh khớp của đồ thị bộ phận hiện tại không. Nếu đúng thế thì lấy thêm cạnh lùi xa nhất xuất phát từ cây con gốc v. Đồng thời cũng lập một khối gồm tất cả các đỉnh của cây con gốc v hiện chưa thuộc về khối nào.
- Tại bước kết thúc việc duyệt DFS, tập khối gồm tất cả các đỉnh chưa thuộc về khối nào, ta gọi khối này là khối gốc.
Bổ đề 2. Tập các cạnh đã chọn lập thành đồ thị bộ phận 2-VC. Xét một số tính chất của khối:
- Các đỉnh trong một khối nằm kề nhau, nói chính xác hơn là các T-cạnh lập thành một cây khung cho mỗi khối.
- Mỗi T-lá tự lập thành một khối. Gốc của T nằm trong khối gốc. Lập cây T ' bằng cách co nhỏ mỗi khối của cây T thành một đỉnh (của T '). Đỉnh của T ' ứng với khối gốc gọi là gốc của T '. Ta dùng cây T ' này để định nghĩa quan hệ cha con giữa các khối.
Định nghĩa đỉnh cha của khối. Đỉnh cha của một khối B là đỉnh nằm trong khối cha của B mà có T-cạnh nối với một đỉnh của B . Rõ ràng, trừ khối gốc, mỗi khối có đúng một đỉnh cha.
Bổ đề 3. Mỗi cạnh của G
- Hoặc nằm trong một khối.
- Hoặc giữa một khối và khối cha nó.
- Hoặc giữa một khối và đỉnh cha của khối cha nó. Các bổ đề 2, 3 được chứng minh trong [KV94]
Bổ đề 4. Nếu một đỉnh trong một khối không kề với khối con thì nó cũng không kề với khối hậu duệ nào.
Pha 2:
Bổ đề 5: Cho đồ thị G là 2-VC, C là vòng đơn giản trong G , e uv là dây cung của C . Thế thì, G e cũng là 2-VC.
Chứng minh: Ta chứng minh bằng phương pháp phản chứng. Giả sử G e không là 2-VC, gọi w là đỉnh khớp của G e và G1,G2 là hai thành phần liên thông khi
xoá w khỏi G e. Do G là 2-VC nên u,v không cùng thuộc một thành phần liên thông. Như vậy mọi đường đi u v trong G e đều đi qua w, trái với gia thiết e là dây cung của C.
Kết thúc pha 1 ta chọn được tập cạnh S bao gồm các T-cạnh và các cạnh lùi (mỗi khối sẽ có một cạnh lùi đi ra (để phủ đỉnh cha của khối, tránh cho đỉnh này trở thành đỉnh khớp)). Trong pha 2, tại mỗi khối, ta sẽ cố gắng chọn cạnh lùi khác để có thể bỏ đi một T-cạnh (mà không làm mất tính 2-VC của đồ thị). Trong trường hợp không thay đổi được, ta sẽ chọn được một tập độc lập đủ lớn để làm cận dưới (của kích thước đồ thị tối ưu).
Xét khối B không là khối gốc hoặc khối lá. Gọi cạnh lùi xuất phát từ B là
B v
vu, ; p là đỉnh cha của khối B. Xét đường đi v T p, gọi s là đỉnh đầu tiên (ngoại trừ v) trên đường đi này không có T-cạnh nào kề (không kể các T-cạnh trên v T p). Trong trường hợp không có đỉnh nào như vậy, chọn s là p.
Ký hiệu u T v là đường đi u v trên cây T, u T v là đường đi u v chỉ đi qua các đỉnh trong các khối chứa u,v hoặc các khối tổ tiên của các khối đấy.
Trường hợp 1: s kề với một cạnh lùi ts từ một khối con 'B . Thay cạnh lùi xa nhất từ khối 'B bằng cạnh ts. Rõ ràng đồ thị vẫn là 2-VC.
Trường hợp 1.1. s là cha của v. Khi đó sv là dây cung của vòng
u p
ts
uv T T A , vì vậy có thể bỏ đi.
Trường hợp 1.2: s không là cha của v. Gọi r'rs theo thứ tự là các đỉnh trên đường đi v T p ( 'r có thể trùng v). Theo cách chọn s thì r phải kề với một T- cạnh khác r' và r rs.
Trường hợp 1.2.1: đường đi t T s chứa cạnh r'r. Xét tất cả các khối con của
B mà đỉnh cha nằm trong cây con gốc r nhưng không trong cây con gốc 'r . Trong các khối này có ít nhất một khối B'' có cạnh lùi xa nhất t's' kề với đỉnh s' trên
đường đi s T p. Khi đó rs là dây cung của vòng r T ts T s't' T r, vì vậy có thể bỏ đi.
Trường hợp 1.2.2: đường đi t T s không đi qua r'r. Khi đó rs là dây cung của vòng s T p A uv T r T ts, vì vậy có thể bỏ đi.
Nhận xét: trong mọi trường hợp thay đổi cạnh lùi hoặc xoá dây cung, ký hiệu
u
v A vẫn hợp lệ. Bởi vì, nếu xét tại khối B, nơi vừa xảy ra việc thay đổi, xoá, luôn tồn tại đường đi u v chỉ đi qua các đỉnh của B hoặc khối tổ tiên của B. Trong các trường hợp trên ta đều có thể bỏ đi một T-cạnh, ta gán T-cạnh bỏ đi này với cạnh lùi xuất phát từ khối và đánh dấu Free cho khối đó.
Trường hợp 2. s không kề với cạnh lùi xuất phát từ bất kỳ khối con nào. Theo cách chọn s thì s cũng không kề với T-cạnh nối với bất kỳ khối con nào. Vì vậy s
không kề với bất kỳ khối con nào. Theo bổ đề 3, điều này cũng có nghĩa là s không kề với mọi khối hậu duệ. Ta đánh dấu Marked cho đỉnh s và khối chứa s.
Khối gốc không có cạnh lùi xuất phát từ nó, nên đánh dấu Free. Các khối lá đánh dấu Marked.
Bổ đề 6. Mỗi khối có dấu là Free hoặc Marked.
Bổ đề 7. Tập các đỉnh đánh dấu Marked là tập độc lập của G .
Chứng minh: 2 đỉnh đánh dấu không thuộc cùng khối và mỗi đỉnh đánh dấu không kề với các đỉnh hậu duệ, vì vậy chúng không kề nhau.
Định lý 8: Tổng số cạnh chọn ra cuối cùng OPT
2 3
.
Chứng minh: Gọi k là tổng số khối, F là số khối Free, M là số khối Marked. Từ 6 ta có k M F. Số cạnh chọn của thuật toán là n 1 k F n 1 M. G
có tập độc lập kích thước M (theo bổ đề 7) nên đồ thị bộ phận 2-VC tối ưu có ít nhất max n,2M cạnh. Vậy thuật toán có tỷ suất hiệu quả
2 3 2 , max 1 M n M n