Tổ hợp độc lập( Independent Set): Cho đồ thị vô hướng G=(V,E), một tổ hợp độc lập là tập con của các nút , sao cho không có hai nút trong U kề nhau. Một tổ hợp độc lập được gọi là tối đa nếu là tổ hợp độc lập không là con của bất kỳ tổ hợp độc lập nào khác.(MIS) Một tổ hợp độc lập lớn nhất là MIS có kích thước lớn nhất.(MaxIS)
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO MÔN HỌC TÍNH TOÁN PHÂN TÁN
ĐỀ TÀI:
Tìm hiểu
Maximal Independent Set(MIS)
Giáo viên hướng dẫn: TS Nguyễn Hữu Đức Sinh viên thực hiện: Nguyễn Thị Phương Hằng
M S S V : 20131345
Trang 2Contents
I MIS 3
1 Định nghĩa 3
II Fast MIS năm 1986 4
1.Thuật toán 2 Fast MIS 4
III Fast MIS năm 2009 9
1.Giải thuật 2: Fast MIS 2009 9
IV Ứng dụng 13
V Tài liệu tham khảo 14
Trang 3I MIS
1 Định nghĩa
Tổ hợp độc lập( Independent Set): Cho đồ thị vô hướng G=(V,E), một
tổ hợp độc lập là tập con của các nút , sao cho không có hai nút trong U kề nhau
Một tổ hợp độc lập được gọi là tối đa nếu là tổ hợp độc lập không là con của bất kỳ tổ hợp độc lập nào khác.(MIS)
Một tổ hợp độc lập lớn nhất là MIS có kích thước lớn nhất.(MaxIS)
Hình 1: Đồ thị minh họa với 1) tổ hợp độc lập tối đa(MIS) và 2) là tổ hợp độc lập lớn
nhất(MaxIS)
Ghi chú:
- Tính toán tổ hợp độc lập lớn nhất (MaxIS) là một vấn đề khó khăn
Nó tương đương với clique tối đa trên đồ thị bổ sung.Cả hai vấn đề này là NP-khó
- Trong phần này tập trung vào thiết lập tổ hợp độc lập tối đa(MIS) MIS và MaxIS có thể khác nhau, có đồ thị mà ở đó MIS nhỏ hơn MaxIS Ө(n)
- Tính một MIS tuần tự là bình thường: Quét các nút theo thứ tự tùy ý.Nếu một nút u không vi phạm độc lập, thêm u vào MIS Nếu u vi phạm độc lập, loại bỏ u Vì vậy câu hỏi duy nhất là làm sao để tính toán MIS theo cách phân tán
Giải thuật 1: Slow MIS
Yêu cầu: Node IDs Mọi nút u thực hiện như sau
Trang 41 If các hàng sóm của u với với ID lớn hơn quyết định không tham gia MIS
2 u quyết định tham gia MIS
3 endif
Ghi chú: Không ngạc nhiên khi thuật toán slow không tốt hơn
thuật toán tuần tự trong trường hợp xấu nhất, bởi vì có thể có một điểm duy nhất của quá trình hoạt động bất cứ lúc nào
Phân tích giải thuật 1: Độ phức tạp về thời gian O(n), độ phức
tạp thông điệp O(m)
Ghi chú:
- Điều này không hề thú vị
- Có một mối quan hệ giữa các tổ hợp độc lập và tô màu nút, vì mối lớp màu là một tổ hợp độc lập tuy nhiên không nhất thiết là một MIS Bắt đầu với tô màu, ta có thể rút ra được thuật toán MIS Đầu tiên chúng ta chọn tất cả các nút màu đầu tiên Sau đó với mỗi màu
bổ sung, chúng ta thêm song song( không xung đột) càng nhiều nút
càng tốt Như vậy sẽ được kết quả như sau: Cho một thuật toán tô
màu cần C màu và chạy trong thời gian T, chúng ta có thể xây dựng một MIS trong thời gian C+T
1.Thuật toán 2 Fast MIS
Thuật toán hoạt động trong vòng đồng bộ, được nhóm thành các giai đoạn Một pha duy nhất như sau:
1) Mỗi nút v đánh dấu chính nó với xác xuất , trong đó d(v) là cấp của v
2) Nếu không có láng giềng có bậc cao hơn của v được đánh dấu, nút v tham gia vào MIS Nếu có một láng giềng bậc cao hơn của v được đánh dấu, nút v sẽ không được đánh dấu
3) Xóa tất cả nút tham gia vào MIS và các láng giềng, vì chúng không thể tham gia vào MIS
Ghi chú:
- Độ chính xác theo nghĩa là thuật toán tạo ra 1 tổ hợp độc lập tương đối đơn giản Bước 1 và 2 đảm bảo rằng nếu một nút v tham gia vào MIS, sau đó láng giềng của v không tham gia vào MIS cùng lúc Bước 3 đảm bảo rằng láng giềng của v sẽ không bao giờ tham gia vào MIS
- Tương tự như thuật toán tạo ra cuối cùng là một MIS, bởi vì nút với bậc cao nhất sẽ đánh dấu chính nó ở một số điểm tại bước 1
Trang 5- Vì vậy, câu hỏi duy nhất còn lại là làm thế nào thuật toán kết thúc nhanh
Bổ đề 1: Một nút v tham gia vào MIS ở bước 2 với xác xuất
p ≥ 1 4𝑑(𝑣)
Minh chứng: Cho M là tập các nút được đánh dấu ở bước 1 Cho
H(v) là tập láng giềng của v với bậc cao hơn, hoặc cùng bậc và định danh cao hơn Sử dụng độc lập của v và H(v) ở bước 1 chúng ta nhận được:
Và
Bổ đề 2: Một nút v được gọi là tốt nếu
Nếu không chúng ta gọi v là một nút xấu Một nút tốt sẽ được gỡ bỏ trong bước 3 với xác suất p≥1
36
Chứng minh: Để nút v được tốt Trực quan các nút tốt có rất nhiều
láng giềng bậc thấp, do đó cơ hội cao mà một trong số chúng đi vào tổ hợp độc lập, trong trường hợp này v sẽ bị gỡ bỏ trong bước 3 của thuật toán Nếu có một láng giềng w € N(v) với bậc nhiều nhất là 2 chúng tôi đã có: Với bổ đề 1 xác suất nút w tham gia vào MIS nhỏ nhất là 1
8 và nút tốt của chúng tôi sẽ bị loại bỏ ở bước 3 Vậy nên chúng tôi quan tâm đến tất cả láng giềng có bậc ít nhất bằng
3 Với mọi láng giềng w của v chúng ra có 1
2𝑑(𝑤) ≤ 1
6
Bây giờ chúng ta có thể ràng buộc xác suất rằng
Trang 6nút v sẽ bị xóa Do đó R là sự kiện của v bị xóa.Một lần nữa, nếu một láng giềng của v tham gia vào MIS ở bước 2, nút v sẽ bị xóa ở bước 3 Chúng ta có:
Đối với sự bất đẳng thức cuối cùng, chúng tôi sử dụng nguyên tắc loại trừ Đặt M là tập các nút được đánh dấu sau bước 1 Sử dụng Pr [u ∈ M] ≥ Pr [u ∈ MIS] w chúng ta có:
Ghi chú: Chúng ta gần như hoàn thành nếu chúng ta có thể chứng
minh rằng nhiều nút là tốt trong mỗi giai đoạn Thật không may đây là trường hợp ngoại lệ: Trong một đồ thị hình sao, cho ví dụ, chỉ có 1 nút duy nhất là tốt
Bổ đề 3: Một canh e=(u,v) được gọi là xấu nếu cả u và v xấu, ngược
lại được gọi là tốt
Chứng minh: Chúng ta xây dựng một đồ thị phụ trực tiếp: Đưa mỗi
cạnh về phía nút có bậc cao hơn( Nếu cả hai nút có cùng bậc đưa nó
về nút có định danh cao hơn) Bây giờ chúng ta cần một bổ đề nhỏ trước khi chứng minh
Bổ đề 4: Một nút tồi có bậc ra(outdegree) ít nhất 2 lần bậc
vào(indegree) của nó
Chứng minh: Vì mâu thuẫn, giả sử rằng một nút xấu v không có bậc
ra bằng ít nhất 2 lần bậc vào Nói cách khác, ít nhất 1/3 các nút láng giềng(S) có bậc nhiều nhất là d(v) Nhưng sau đó:
Trang 7Nghĩa là v tốt, mâu thuẫn
Chúng ta tiếp tục với chứng minh bổ đề 3, số các cạnh hướng vào nút xấu tối đa là một nửa số cạnh hướng ra ngoài nút xấu Do đó, số lượng các cạnh hướng vào nút xấu tối đa là một nửa số cạnh Do đó, ít nhất một nửa số cạnh được hướng vào nút tốt Vì các cạnh này không phải
là nút xấu, chúng là nút tốt
Định lý: Thuật toán 2 kết thúc với thời gian dự kiến O(log n) Chứng minh: Với bổ đề 2 là nút tốt( và nên là cạnh tốt) sẽ bị xóa với
xác suất không thay đổi Vì ít nhất một nửa các cạnh là tốt, một số lượng các cạnh sẽ bị xóa trong mỗi giai đoạn
Với bổ đề 2 và 3 chúng ta biết rằng một cạnh bị xóa với xác suất nhỏ nhất là 1/72 Cho R là số lượng các cạnh bị xóa Sử dụng tính tuyến tính của kỳ vọng chúng ta biết rằng E [R] ≥ m/72, m là tổng các cạnh
ở đầu của một pha Bây giờ cho p:= Pr [R ≤ E [R] /2]
Hạn chế số lượng mong đợi:
Giải p ta được:
Nói cách khác, với xác suất nhỏ nhất 1/144 , nhỏ nhất m/144 cạnh bị xóa trong pha Sau thời gian của pha O(log m), tất cả cạnh bị xóa
Ví dụ minh họa giải thuật:
Xác suất:
Trang 8Đánh dấu:
Xóa hàng xóm:
Trang 9II Fast MIS năm 2009
1.Giải thuật 2: Fast MIS 2009
Thuật toán hoạt động trong vòng đồng bộ, được nhóm thành các giai đoạn Một pha đơn như sau:
1) Mỗi nút v chọn một giá trị ngẫu nhiên r(v) € [0,1] và gửi nó tới láng giềng
2) Nếu r(v) < r(w) cho tất cả láng giềng w € N(v), nút v đi vào MIS và
thông báo cho láng giềng của nó
3) Nếu v hay một láng giềng của v tham gia vào MIS, v kết thúc( v và tất cả các cạnh liền kề với v bị xóa khỏi biểu đồ), nếu không v sẽ nhập pha tiếp theo
Ghi chú:
- Độ chính xác theo nghĩa là thuật toán tạo ra một tổ hợp độc lập là đơn giản: Bước 1 và 2 đảm bảo rằng nếu một nút v tham gia MIS, sau đó láng giềng của v không tham gia MIS cùng lúc Bước 3 đảm
bảo rằng các láng giềng của v sẽ không bao giờ tham gia MIS
- Tương tự như vậy thuật toán tạo ra cuối cùng một MIS, bởi vì nút
với giá trị nhỏ nhất sẽ luôn tham gia MIS, nên có tiến trình
- Vì vậy câu hỏi còn lại ở đây là làm sao để thuật toán kết thúc
nhanh
- Chứng minh của chúng tôi sẽ dựa trên một quan sát đơn giản nhưng mạnh mẽ về giá trị dự kiến của các biến ngẫu nhiên có thể
không độc lập
Định lý 1: ( Độ tuyến tính của kỳ vọng) Cho Xi,i=1….,k biểu thị biến ngẫu
nhiên sau đó
Chứng minh: Nó đủ để chứng minh E [X + Y ] = E [X]+E [Y ] cho hai biến
ngẫu nhiên X, Y
Chúng ta có:
Trang 10Ghi chú:
- Chúng ta có thể chứng minh giải thuật chỉ cần O(log n) như thế nào?
- Cần chứng minh rằng số lượng các cạnh giảm nhanh Lần nữa, nó tuyệt vời nếu có bất kỳ cạnh đơn nào bị xóa với xác suất không thay đổi ở bước 3 Nhưng một lần nữa, thật không may, trường hợp không xảy ra
- Có lẽ chúng ta sẽ có thể tranh luận về số lượng các cạnh mong muốn bị xóa trong một pha đơn? Cùng xem nhé: Một nút v đi vào MIS với xác suất 1/(d(v)+1) trong đó d(v) là bậc của nút v Bằng cách đó, không chỉ cạnh của v bị xóa, nhưng thực sự tất cả các cạnh của láng giềng của v nói chung nhiều hơn d(v) cạnh Tuy nhiên có hy vọng, chúng ta cần phải cẩn thận với việc tính cùng cạnh nhiều lần
- Làm sao để khắc phục? Cho một nút MIS mới v và hàng xóm w € N(v), ta tính các cạnh nếu r(v)<r(x) cho tất cả x € N(w) Trong biểu
đồ hình sao, ví dụ chỉ giá trị ngẫu nhiên nhỏ nhất có thể được đếm
để xóa tất cả các cạnh của hình sao
Bổ đề 4: ( Xóa cạnh) Trong một gian đoạn, chúng tôi loại bỏ ít nhất
một nửa các cạnh trong kỳ vọng
Chứng minh: Để đơn giản hóa ký hiệu, khi bắt đầu giai đoạn, đồ thị
đơn giản G= (V,E) Giả sử một nút v tham gia MIS trong giai đoạn này, tức là r(v)<r(w) cho tất cả hàng xóm w € N(v) Ngoài ra, r(v)< r(x) cho tất cả hàng xóm x của a, hàng xóm w của v Xác suất của sự kiện này ít nhất là 1/(d(v)+d(w)), vì d(v)+d(w) là số nút tối đa nằm cạnh v hoặc w( hoặc cả hai) Như v kết nối MIS, tất cả các cạnh (w,x)
sẽ bị gỡ bỏ, có d(w) của các cạnh này Cho dù chúng ta loại bỏ các cạnh liền kề với w là một biến ngẫu nhiên Nếu nó xảy ra nó có giá trị
Trang 11d(w), nếu không nó có giá trị 0 Đối với mỗi cạnh {v,w} chúng ta có hai biến như vậy, sự kiện (v->w) cho v tham gia MIS, và sự kiện đối xứng(w->v) cho w tham gia MIS Theo định lý 1 giá trị mong đợi của tổng X của các giá trị biến ngẫu nhiên này là ít nhất
Nói cách khác, trong kỳ vọng tất cả các cạnh được loại bỏ trong một pha duy nhất?!? Chắc là không Điều này có nghĩa là chúng tôi vẫn tính một số cạnh hơn một lần Thật vậy, đối với một cạnh {v, w} ∈ E biến ngẫu nhiên X bao gồm các cạnh nếu sự kiện (u → v) xảy ra, nhưng X cũng bao gồm các cạnh nếu sự kiện (x → w) xảy ra Vì vậy, chúng tôi có thể đã tính cạnh {v, w} hai lần May mắn thay, không quá hai lần, bởi vì nhiều nhất một sự kiện (· → v) và nhiều nhất một
sự kiện (· → w) có thể xảy ra Nếu (u → v) xảy ra, chúng ta biết rằng
r (u) <r (w) cho tất cả w ∈ N (v); do đó (u’ → v) khác không thể xảy
ra vì r (u’)> r (u) ∈ N (v) Do đó, biến ngẫu nhiên X phải được chia cho 2 Nói cách khác, trong kỳ vọng ít nhất một nửa các cạnh được loại bỏ
Ví dụ minh họa:
Chọn giá trị ngẫu nhiên:
Trang 12Tìm giá trị min trong hàng xóm=> IS:
Xóa các hàng xóm:
Chọn giá trị ngẫu nhiên
Tìm min trong hàng xóm=>IS
Trang 13Xóa hàng xóm
Chọn giá trị ngẫu nhiên:
Là giá trị thấp nhất:
Ta được MIS:
III Ứng dụng
Định nghĩa: Cho một đồ thị G=(V,E) một kết hợp là một tập con của các cạnh M trong E, mà không có hai cạnh trong M liền kề nhau( tức là nơi
mà không có nút nào liền kề tới hai cạnh trong kết hợp) Một kết hợp tối
đa nếu không có cạnh nào có thể được thêm mà không vi phạm các ràng buộc trên
Giải thuật: Tô màu cây tổng quát
1 Cho đồ thị G = (V,E) chúng ta xây dựng một đồ thị G’=(V’,E’) như sau
2 Mọi nút v € V sao chép chính nó d(v)+1 lần,(v0, vdd(v) thuộc V’), d(v): bậc của v trong G
3 Tập cạnh E của G như sau:
4 Đầu tiên tất cả các sao chép trong một clique: (vi, vj) thuộc E’, tất cả v thuộc V và tất cả 0<=i<j<=d(v)
5 Thứ 2 tất cả bản sao ith của hàng xóm trong đồ thị G gốc được kết nối: (ui,vj) thuộc E’, đối với tất cả (u,v) thuộc E và tất cả 0 <= i <=
min (d(u),d(v))
6 Bây giờ chúng ta chạy giải thuật MIS trên G’
Trang 147 Nếu nút vi trong MIS trong G’ thì node v tô màu i
https://disco.ethz.ch/courses/fs09/distcomp/lecture/mis.pdf