SLPA

SLPA

SLPA演演算法是一種社區監測演演算法,它是對LPA演演算法(標籤傳播演演算法)的拓展。

目錄

正文


SLPA分為以下三個階段:SLPA(T,r)
T:用戶定義的做大迭代數
r:處理后的閾值
1)首先,每一個節點的存儲器中初始化一個唯一的標籤。
2)然後,重複進行以下步驟,直到達到最大迭代T:
a. 選擇一個節點作為監聽器。
b. 所選節點的每個鄰居隨機選擇概率正比於該標籤在其存儲器中的出現頻率的標籤,把所選擇的標籤發送到聽眾。
c. 監聽器增加接收到的最流行的標籤到內存。
3)最後,根據在存儲器里的標籤和閾值r,后處理被用於輸出社區。
演演算法實現的步驟如下:
(1)初始化所有節點的標籤信息,使得每個節點擁有唯一的標籤。
(2)最為主要的是標籤傳播過程。
1.當前節點作為一個listener。
2.當前節點的每一個鄰居節點根據一定的speaking策略傳遞標籤信息。
3.當前節點從鄰居節點傳播的標籤信息集中根據一定的listener策略選擇一個
標籤作為本次迭代中的新標籤。
4.演演算法收斂或遍歷達到指定的次數,演演算法結束。否則,標籤在不斷的遍歷過程
中傳播。
(3)標籤分類過程。后處理階段根據節點的標籤信息進行社區發現。
SLPA演演算法優點:
不像其它演演算法,演演算法SLPA 不會像其它演演算法一樣忘記上一次迭代中節點所更新的標籤信息,它給每個節點設置了一個標籤存儲列表來存儲每次迭代所更新的標籤。最終的節點社區從屬關係將由標籤存儲列表中所觀察到的標籤的概率決定,當一個節點觀察到有非常多一樣的標籤時,那麼,很有可能這個節點屬於這個社區,而且在傳播過程中也很有可能將這個標籤傳播給別的節點。更有益處的是,這種標籤存儲列表的設計可以使得演演算法可以支持劃分重疊社區。