• 沒有找到結果。

第四章 節點分群與加邊之演算法

4.2 兩種加邊演算法

藉由以上三種節點分群方法將所有最短路徑上的 TN 分群完後,可得到數群 的節點分群,每一群皆至少要包含 k2個節點。透過分群後的群組,可得知每一 組群組內的節點其所需要增加的總邊數,當得知某一節點其所需增加的分支度 數時,則代表此節點所需要新增的邊數。在此,我們將提出兩種圖形加邊的方 法,並在下個章節“實驗結果與分析”中,比較這兩種加邊方法,試圖從中找出 一種加邊方法能夠讓隱匿圖的平均群聚係數與平均最短路徑長度與原圖最接 近。

4.2.1 Random 為主之演算法

Random 的加邊方法主要的概念就是當 TN 需要提高分支度數時,則此節點

選擇連結的節點對象就是尋找在圖形中,非最短路徑上的起點、終點以及最短 路徑所經過的節點之以外的節點,再從這些節點中先挑出分支度數最高的節點 為首要連結的對象。如圖 14,圖 14 是一張(2, 2) - anonymous path privacy 的圖 形,圖形上有兩條最短路徑{VS, VX, VE, VG, VT}與{VS, VD, VF, VY, VT},若此圖上 的 TN : { VX, VE, VG, VD, VF, VY }經過 Modified k-means 分群後,最短路徑上需要 增加分支度數的節點為{ VF, VG, VY }。當這些節點以 Random 的加邊方法讓他們 的分支度數提高,則這三個 TN 的連結對象必須是非最短路徑上的節點,圖 14 中非最短路徑上的節點有 VC。那麼這三個 TN 將會選擇與 VC連結,虛線即為新 產生的連結。若在圖形中,TN 已無法找到能夠與非最短路徑上的節點產生連結 的節點時,則新增一個假節點,讓這些 TN 連結到這些假節點,直到所有的 TN 的分支度數皆能夠滿足其自己的分支度隱匿條件。

4.2.2 Transfer Node First 為主之演算法

另一種加邊方法名為 Transfer Node First(TNF),顧名思義就是 TN 的連結對 象以其他最短路徑上的 TN 為優先連結。當其他的 TN 節點無法當作連結對象 時,再以非最短路徑上的節點作為連結對象。主要的作法是當 TN 經過分群方 法分群後,可得知每個 TN 所要增加的分支度數。隨機挑選一個需要增加分支 度數的 TN,此 TN 的連結對象將是亦即需要增加分支度數的 TN。如圖 17,圖 17 亦是一張(2, 2) - anonymous path privacy 的圖形,圖形上有兩條最短路徑{VS, VX, VE, VG, VT}與{VS, VD, VF, VY, VT},圖上的 TN 為{ VX, VE, VG, VD, VF, VY }這六 個節點,當這些 TN 經過分群後,若需要增加分支度數的節點為{ VX, VF, VY },

而這三個 TN 所需提高的分支度數分別是{1,1,1},則隨機挑選一節點,VX,再 隨機挑選另一個節點 VY,挑選的這兩個 TN 之間若無連結,則在這兩個 TN 之 間加一條共同的邊,而此時兩個 TN 同時達到分支度隱匿的條件。而剩下的 VF

因找不到能夠連結的 TN 則須連結到非最短路徑上的節點,並先選擇連結分支

度數最大的節點,故 VF選擇連結到 VC

VS

VX

VD

VF

VY

VT VG

VC 7

5

5 VE

圖 17 (2, 2) - anonymous path privacy 圖(by TNF) 以下為 TNF 加邊方法的演算法 :

Input: C1, C2, …, Ck, |𝐶𝑖| ≥ 𝑘2 , 1 ≤ 𝑖 ≤ 𝐾 Output: 每一群內的節點皆有相同的分支度數

1. For each cluster 1.1 For each vertex

1.1.1 Calculate the degree required (degree+) to each the maximum degree in the cluster;

2. Let NOV = {the list of all vertices with non-zero node degree};

3. Sort NOV list in ascending order according to node degree;

4. While (NOV ≠ )

4.1 For (the first vertex in NOV)

4.1.1 While (there exits next vertex in NOV) If (there is no edge between the two nodes) {add an edge between them;

decrease (degree+) of N and current vertices by one;}

else

Continue on next vertex in NOV;

4.1.2 If ((degree+) of vertex N > 0)

Randomly select (degree+) vertices not on any of the shortest

paths and add edges;

4.2 Remove first vertex from NOV;

相關文件