作基于節(jié)點屬性傳遞函數(shù)的圖布局。
[0039] 4. 1初始化:設(shè)置初始條件。賦予每個節(jié)點一個隨機位置和質(zhì)量。
[0040] 4. 2對圖中的每個節(jié)點V1作如下迭代:
[0041] 4. 2. 1計算:計算頂點所受合力。a)先計算節(jié)點Vi與其他節(jié)點之間的屬性距離δ, 再根據(jù)節(jié)點的屬性類別,分別代入Fe ( δ )、Fk ( δ )和( δ )這三個傳遞函數(shù)計算G、K、L的 值。b)計算節(jié)點V1與其他節(jié)點之間的幾何距離r,然后將前面計算得到的G、K、L和r都代 入公式(3)和(4)分別計算該節(jié)點所受的來自其他節(jié)點的彈力和斥力。c)最后計算節(jié)點V1 所受合力F(V1)為:
[0044] 4. 2. 2位置更新:節(jié)點V1根據(jù)作用在其之上的合力F(v J進行運動,到達新位置 P z (Vi) 〇
[0045] p'(Vi) = p (Vi)+C*F (Vi) (11)
[0046] 這里的C為普通常量,為力的影響系數(shù)。當C較大時,節(jié)點受力影響大,運動較快 速;反之亦然。
[0047] 4. 2. 3判定迭代結(jié)束條件:當所有節(jié)點的合力都小于設(shè)定的閾值時,說明系統(tǒng)總 能量較低,已達到穩(wěn)定狀態(tài),則停止迭代,得到布局結(jié)果。
[0048] 本發(fā)明針對帶有屬性的網(wǎng)絡(luò)數(shù)據(jù),提出了節(jié)點屬性傳輸函數(shù)的布局方法,將節(jié)點 的屬性映射為圖布局中與力有關(guān)的參數(shù),能夠得到反應節(jié)點屬性關(guān)系的圖布局結(jié)果,解決 多屬性網(wǎng)絡(luò)圖布局問題。
[0049] 本發(fā)明的優(yōu)點如下:
[0050] (1)布局靈活。本發(fā)明實現(xiàn)的圖布局方法,可以根據(jù)節(jié)點或邊的不同屬性,設(shè)計不 同的傳遞函數(shù),從而得到反應不同屬性的布局結(jié)果。
[0051] (2)實現(xiàn)簡單。本發(fā)明實現(xiàn)的圖布局方法是在傳統(tǒng)力導引布局算法的基礎(chǔ)上進行 的改進,將節(jié)點的屬性值映射為力導引布局中與力相關(guān)的參數(shù),實現(xiàn)比較簡單。
[0052] (3)可控性好。力導引布局參數(shù)G、K、L與屬性函數(shù)δ的映射關(guān)系,可以根據(jù)布局 結(jié)果進行修改,從而達到更好的布局結(jié)果。
【附圖說明】
[0053] 圖1是本發(fā)明中力導引布局算法中力的參數(shù)G、K、L與屬性函數(shù)δ的映射關(guān)系示 意圖
[0054] 圖Ia是本發(fā)明中力導引布局算法中力的參數(shù)G與屬性函數(shù)δ的映射關(guān)系示意圖
[0055] 圖Ib是本發(fā)明中力導引布局算法中力的參數(shù)K與屬性函數(shù)δ的映射關(guān)系示意圖
[0056] 圖Ic是本發(fā)明中力導引布局算法中力的參數(shù)L與屬性函數(shù)δ的映射關(guān)系示意圖
【具體實施方式】
[0057] 下面結(jié)合附圖進一步說明本發(fā)明。
[0058] 本發(fā)明的技術(shù)方案共分三個步驟:第一步,確定圖中節(jié)點對之間作用力的計算方 式;第二步,基于節(jié)點屬性傳遞函數(shù)確定節(jié)點屬性值與圖布局中力的映射關(guān)系;第三步,根 據(jù)不同的屬性類別,設(shè)計不同的傳遞函數(shù)。
[0059] 具體步驟如下:
[0060] 1.確定節(jié)點對之間作用力的計算。
[0061] 基于傳遞函數(shù)的圖布局方法是對傳統(tǒng)力導引布局算法的改進。傳統(tǒng)力導引布局算 法采用彈簧模型,將頂點看成帶有質(zhì)量的點,頂點之間存在相互排斥的力。頂點之間相連的 邊看成彈簧,當彈簧長度大于其原長時,彈簧的作用力為引力,反之亦然。整個系統(tǒng)就處于 彈簧力和頂點間斥力的作用下。用m( Vl)表示頂點\的質(zhì)量,K表示彈簧的彈性系數(shù),L表 示彈簧的原長,G表示萬有引力常量,r = I I p (V1)-P (V]) I I表示頂點'和V ,之間的距離, 其中P (V1)表示頂點V1的位置,因此有如下兩個公式計算兩個頂點V JP v /司的力:
[0064] 表示節(jié)點V ;與V 之間相連的邊,因此公式(1)計算兩個有邊相連的頂點間的 彈簧作用力,當兩點之間距離大于彈簧原長,則兩點之間為吸引力,否則為斥力。公式(2) 計算任意兩點間的斥力。
[0065] 2.將節(jié)點的屬性值映射為圖布局中與力相關(guān)的參數(shù)。
[0066] 用A(Vi)表示頂點Vi的某個屬性值,引入函數(shù)δ (A(v IA(Vj))計算頂點vjP V 的屬性值的距離,該距離可以采用歐式距離等方法計算。G、K和L設(shè)計為基于δ的函數(shù), 從而得到三個力系數(shù)的線性傳遞函數(shù)F e( δ )、FK( δ )和FJ δ ),這三個函數(shù)與節(jié)點間的屬 性距離相關(guān),即為傳遞函數(shù),可以通過δ函數(shù)選擇不同的屬性計算兩節(jié)點之間的距離。因 此,公式(1)和(2)變?yōu)椋?br>[0069] 傳遞函數(shù)Ft(S)表示的三個線性函數(shù)中,F(xiàn)g(S)和F l(S)是正比線性函數(shù), Fk(S)是一個反比線性函數(shù)。
[0070] T = FT( δ ) = δ +bT(T e {G, K, L}aG, aL>0, aK<0) (5)
[0071] 其中,aT、bj別為線性函數(shù)的斜率和截距,都是常量;FG(S)、F K(S)和?\(δ)的 取值在[0, 1]之間。為了計算的方便,S的取值也在[0, 1]之間??梢酝ㄟ^調(diào)節(jié)圖1中三 個線性函數(shù)的斜率,改變G、K、L隨著δ變化的變化速度,從而控制點的布局如何隨著點的 屬性距離變化。F t(S)的設(shè)計可以很靈活,不僅可以將Ft(S)設(shè)計為線性函數(shù),也可以設(shè) 計為非線性函數(shù),使得力系數(shù)隨著S的變化速度不均勻。
[0072] 3.根據(jù)不同屬性類別設(shè)計不同的傳遞函數(shù)。
[0073] 本發(fā)明考慮的節(jié)點屬性主要分為兩類:一類是節(jié)點的數(shù)據(jù)屬性,如社交網(wǎng)絡(luò)中用 戶的性別、年齡等屬性,另一類是與圖結(jié)構(gòu)相關(guān)的節(jié)點結(jié)構(gòu)屬性,如點度中心性(degree centrality:連接該節(jié)點邊的數(shù)目)、中介中心性(betweenness centrality:該節(jié)點位于 其它節(jié)點最短路徑上的次數(shù))等。
[0074] 下面給出了基于傳遞函數(shù)實現(xiàn)的三類不同節(jié)點屬性下的圖布局方法:即僅考慮數(shù) 據(jù)屬性的圖布局算法、考慮節(jié)點數(shù)據(jù)屬性和結(jié)構(gòu)屬性的圖布局算法以及同時考慮點屬性和 邊屬性的圖布局算法。對于每一類方法,設(shè)計不同的G、K、L的傳遞函數(shù)。
[0075] 3. 1僅考慮數(shù)據(jù)屬性的圖布局算法;
[0076] 當只考慮節(jié)點的數(shù)據(jù)屬性時,G、K和L的取值由同一個與數(shù)據(jù)屬性相關(guān)的δ函數(shù) 控制。假設(shè)兩點的屬性值分別為aJPa,,則屬性距離函數(shù)δ = I |ai-a]| |,這里屬性函數(shù)δ 也可以根據(jù)需要設(shè)計為其它的函數(shù)。G、K、L則對應為δ的線性函數(shù),如公式(6)所示:
[0078] 線性函數(shù)Fe(S)、FK(S)、FjS)公式(5)所示,也可以根據(jù)具體的數(shù)據(jù),改變線性 函數(shù)的斜率,從而得到想要的結(jié)果。
[0079] 當節(jié)點有多個屬性,并且希望這多個屬性影響圖布局的結(jié)果,可以采用下面的加 權(quán)求和的方式計算屬性距離函數(shù):
[0081] 公式中函數(shù)&表示兩節(jié)點的第k個屬性值執(zhí)行的操作,akl表示節(jié)點i的第k個屬 性值,a kj表示節(jié)點j的第k個屬性值,ε k為加權(quán)系數(shù),η表示屬性的個數(shù)。
[0082] 3. 2考慮節(jié)點數(shù)據(jù)屬性和結(jié)構(gòu)屬性的圖布局算法;
[0083] 有時候不僅需要關(guān)注節(jié)點的數(shù)據(jù)屬性,也需要關(guān)注節(jié)點的結(jié)構(gòu)屬性,即在節(jié)點某 種拓撲結(jié)構(gòu)影響下的圖布局。當同時考慮節(jié)點的數(shù)據(jù)屬性和結(jié)構(gòu)屬性時,可以設(shè)計兩個S 函數(shù)分別計算在數(shù)據(jù)屬性空間和結(jié)構(gòu)屬性空間的距離。同時,傳遞函數(shù)Fp匕和!\分別與 不同的δ函數(shù)對應。
[0084] 根據(jù)力導引算法的定義,任意兩點之間都存在與G相關(guān)的斥力,有邊相連的兩點 之間才有與K和L相關(guān)的彈簧作用力。因此將任意兩點之間的傳遞函數(shù)F ti定義為與數(shù)據(jù)屬 性距離相關(guān)的函數(shù),與邊相關(guān)的傳遞函數(shù)匕和定義為與節(jié)點結(jié)構(gòu)屬性距離相關(guān)的函數(shù)。 假設(shè)兩點V 1和、的數(shù)據(jù)屬性為a JP a ,,結(jié)構(gòu)屬性為山和d ,,則控制G的數(shù)據(jù)屬性函數(shù)δ i =I IaiIj I I,G = Fs( δ J,控制 K 和 L 的結(jié)構(gòu)屬性函數(shù) δ 2= I I d「dj I I,K = FK( δ 2)