Thuật toán CONGA

Một phần của tài liệu Họ thuật toán Ginvan - Newman trong phát hiện cộng đồng và cài đặt thử nghiệm trên mạng xã hội trực tuyến Twitter (Trang 27 - 31)

Thuật toán CONGA được Gregory cải tiến từ thuật toán Girvan-Newman nhằm mục đích giải quyết vấn đề về chồng chéo cộng đồng [4].Dựa trên ý tưởng thuật toán Girvan-Newman, tác giảđề xuất thêm một ý tưởng mới đó là phép chia các đỉnh thành nhiều phần khác nhau, để một phần của đỉnh được chia đó có thể xuất hiện trong các cộng đồng con .Phép chia các đỉnh này là phù hợp với ý tưởng của thuật toán Girvan- Newman bởi lẽ, cũng như việc loại bỏ các cạnh, việc phân chia các đỉnh cũng có thể làm cho một cộng đồng lớn chia thành các cộng đồng con.

19

Tác giả đề ra một độ đo mới, là độ trung gian của phép phân chia, độ đo này cho phép ta có thể xác định được khi nào cần phân chia một đỉnh, thay vì loại bỏ các cạnh, đỉnh nào cần phân chia và phân chia như thế nào.Giả sử mỗi đỉnh v trong đồ thị đều được chia làm 2 phần, v1 và v2.Khi đó, coi v1v2 là một cạnh và tính toán độ trung gian cho cạnh này, nếu độđo trung gian tính được là lớn nhất đỉnh v sẽđược phân chia thành 2 phần v1 và v2.Giả sử với mỗi u là đỉnh kề với v1 và w là đỉnh kề với v2, ta có mọi đường đi qua u,v,w theo thứ tự giờ sẽ thành đường đi đi qua u,v1,v2,w.Từđó ta có thể tính được sốđường đi ngắn nhất mà đi qua cạnh v1v2 này.Có tổng cộng 2d(v)-1 cách phân chia v ra làm đôi, trong đó d(v) là bậc của v trong đồ thị.Phép phân đôi nào dẫn đến độ trung gian lớn nhất là phép phân chia được lựa chọn.

Từ đó, ta tính toán được độ trung gian của phép phân chia cho tất cả các đỉnh.Với mỗi đỉnh có độ trung gian của phép phân chia lớn hơn giá trị lớn nhất trong các độ đo trung gian của cạnh, ta thực hiện chia đỉnh đó làm đôi, sử dụng phép phân chia tối ưu nhất của nó.Hình số 6 thể hiện một ví dụ về một đồ thị với 2 cộng đồng chồng chéo nhau là (a,b,c) và (a,d,e) với độ trung gian các cạnh được ký hiệu ở trên các cạnh đó.Ta có thể thấy độ trung gian của phép phân chia của đỉnh a là 8, lớn hơn tất cả các độ trung gian của các cạnh, vì thế, đỉnh a được phân chia thành 2 phần như hình 6b.Hình 6c và 6d miêu tả một số phép phân chia khác, tuy nhiên không đem lại hiệu quả tối ưu như phép phân chia ở hình 6b

Hình 6: Ví dụ về phép phân chia một đỉnh trong đồ thị[4]

Nhóm tác giả cũng khẳng định phương pháp này không bao giờ phân một đỉnh thành hai đỉnh con mà trong đó một trong hai đỉnh con chỉ có duy nhất một đỉnh kề.Chính vì vậy, các đỉnh có bậc nhỏ hơn 4 trong đồ thị không bao giờ bị chia nhỏ và

20

tổng quát lại chỉ có 2d(v)-1–d(v)-1 cách phân chia một đỉnh thành hai phần trong một đồ thị.

Định nghĩa của độ trung gian của một đỉnh v trong đồ thị là tổng số đường đi ngắn nhất giữa các cặp đỉnh của đồ thị mà đi qua v.Ta có thể dễ tính được độ trung gian của đỉnh CB(v) từ các độđo trung gian của cạnh CB(e):

∑ Γ ∈ − − = ) ( ) 1 ( ) ( 2 1 ) ( v e B B v C e n C Trong đó Γ(v)là tập các cạnh có v là đỉnh cuối và n là số đỉnh của đồ thị chứa v.Ta có thể thấy từđịnh nghĩa, độ trung gian của các đỉnh luôn lớn hơn độ trung gian phép phân chia của các đỉnh.Vì vậy tác giả sử dụng độ trung gian của các đỉnh là cận trên của độ trung gian phép phân chia, nếu độ trung gian của các đỉnh mà nhỏ hơn giá trị lớn nhất độ trung gian của các cạnh, đỉnh đó coi như không được phân chia.

Để tính toán độ trung gian phép phân chia của đỉnh v, ta sử dụng một độ đo khác là độ trung gian theo cặp của v theo (u,w).Giả sử u, w là 2 đỉnh kề bất kỳ của v, độ trung gian theo cặp của v theo (u,w) chính là số đường đi ngắn nhất của bất kỳ cặp đỉnh trong đồ thị mà đi qua (u,v) và (v,w).

Người ta biểu diễn các độ đo trung gian theo cặp của đỉnh v bậc k bằng một k- clique, trong đó mỗi đỉnh được gán nhãn một hàng xóm của v và mỗi cạnh (u,w) được gán 1 số bằng độ đo trung gian theo cặp của v theo (u,w).Từ đó ta có thể tìm được phép phân chia tốt nhất của đỉnh v theo cách như sau:

− Chọn cạnh (u,w) có giá trị nhỏ nhất

− Nhập u và w vào thành 1 đỉnh uw duy nhất

− Với mỗi đỉnh x trong clique ta thay cạnh (u,x) điểm b1 và cạnh (w,x) điểm b2 bằng cạnh (uw,x) điểm b1+b2

− Lặp bước thứ nhất tổng cộng k-2 lần

Sau k -2 phép lặp, 2 đỉnh còn lại sẽ là phép phân chia tối ưu nhất cho đỉnh v với độ trung gian phép phân chia chính là điểm số của cạnh tạo bởi 2 đỉnh đó.

Ta có hình 5 là miêu tả cho quá trình tìm phép phân chia tối ưu của trường hợp xét trong hình 4, trong đó phép phân chia tối ưu nhất là (abc) và (ade)

21

Hình 7: Tìm phép phân chia tối ưu trong trường hợp ở hình 6

Các độ trung gian theo cặp của một đỉnh được tính toán hoàn toàn theo định nghĩa của nó.Như vậy, tổng quát lại, thuật toán CONGA chia làm các bước như sau:

− Tính độ trung gian của tất cả các cạnh trong đồ thị

− Tính độ trung gian của các đỉnh trong đồ thị, dựa vào độ trung gian của các cạnh như trong công thức ở trên

− Tìm danh sách các đỉnh mà độ trung gian của đỉnh đó lớn hơn giá trị lớn nhất của các độ trung gian cạnh

− Nếu danh sách ở bước 3 không rỗng, tính các độ trung gian theo cặp của các đỉnh trong danh sách, sau đó xác định phép phân chia tối ưu nhất cho các đỉnh đó − Thực hiện việc loại bỏ cạnh, hoặc phân chia đỉnh để chia đồ thị thành các thành

phần

− Tính lại độ trung gian của các cạnh trong tất cả các thành phần vừa được chia ra − Lặp lại bước 2 đến khi không còn cạnh nào.

Như vậy, bài luận đã trình bày toàn bộ các bước thực hiện của thuật toán CONGA.Thuật toán này có ưu điểm là giải quyết được vấn đề chồng chéo cộng đồng bằng cách đặt ra phép phân chia đỉnh, ngoài ra nội dung thuật toán tương đối dễ hiểu và xác định được phép phân chia tối ưu nhất trong các trường hợp,một điều mà thuật toán Girvan-Newman nguyên thủy không làm được.Tuy nhiên nhược điểm của thuật toán vẫn là thời gian tính toán, với độ phức tạp tính toán lên tới ( 3)

m

O với m là số cạnh

22 (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Họ thuật toán Ginvan - Newman trong phát hiện cộng đồng và cài đặt thử nghiệm trên mạng xã hội trực tuyến Twitter (Trang 27 - 31)