亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于層次化模型的數(shù)據(jù)可視化方法及其系統(tǒng)的制作方法

文檔序號:10552922閱讀:890來源:國知局
基于層次化模型的數(shù)據(jù)可視化方法及其系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于層次化模型的數(shù)據(jù)可視化方法及系統(tǒng),其中數(shù)據(jù)可視化方法包括下列步驟:圖形數(shù)據(jù)準(zhǔn)備、圖形頂點采樣分層、子圖頂點連接、圖形頂點受力計算、頂點位置更新、圖形布局遞歸計算、圖形布局層次化繪制;其中數(shù)據(jù)可視化系統(tǒng)包括下列模塊:圖形數(shù)據(jù)準(zhǔn)備模塊、圖形頂點采樣分層模塊、子圖頂點連接模塊、圖形頂點受力計算模塊、頂點位置更新模塊、圖形布局遞歸計算模塊、圖形布局層次化繪制模塊。本發(fā)明可以加快算法收斂,正確計算布局,保持效果穩(wěn)定性。另外,本發(fā)明不僅可以科學(xué)地繪制大數(shù)據(jù)的圖形布局,而且還提供了便捷的交互操作。因此,本發(fā)明具有快速高效地計算美觀布局、幫助用戶挖掘潛在知識規(guī)律的優(yōu)點。
【專利說明】
基于層次化模型的數(shù)據(jù)可視化方法及其系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種數(shù)據(jù)可視化技術(shù),特別涉及一種基于層次化模型的數(shù)據(jù)可視化方 法及其系統(tǒng)。
【背景技術(shù)】
[0002] 目前,隨著信息時代的高速發(fā)展,電子商務(wù)、社交網(wǎng)絡(luò)、移動互聯(lián)網(wǎng)、數(shù)字家庭等信 息技術(shù)已經(jīng)被普遍應(yīng)用于人們的工作和生活中,這些應(yīng)用不斷產(chǎn)生海量數(shù)據(jù),而這些數(shù)據(jù) 又包含了各方面潛在而有價值的信息。對大數(shù)據(jù)的分析和管理,將創(chuàng)造出巨大的經(jīng)濟(jì)效應(yīng) 和社會價值,例如,在商業(yè)領(lǐng)域,大數(shù)據(jù)有助于企業(yè)掌握市場動態(tài),指定精準(zhǔn)的營銷策略,為 消費者提供更加及時和個性化的服務(wù);在公共事業(yè)領(lǐng)域,大數(shù)據(jù)有助于維護(hù)社會穩(wěn)定、促進(jìn) 經(jīng)濟(jì)發(fā)展;在醫(yī)療領(lǐng)域,大數(shù)據(jù)有助于疾病暴發(fā)的跟蹤和處理等等。
[0003] 但由于數(shù)量大、生成速度快以及數(shù)據(jù)多樣等特點,大數(shù)據(jù)呈現(xiàn)出不斷增長的復(fù)雜 性,導(dǎo)致傳統(tǒng)的分析方法已經(jīng)無法對其進(jìn)行正確的分析。因此,大數(shù)據(jù)領(lǐng)域非常需要科學(xué)有 效的分析技術(shù),而數(shù)據(jù)可視化分析就是一種最直觀的大數(shù)據(jù)分析技術(shù):它將互相關(guān)聯(lián)的海 量數(shù)據(jù)表示成各種可見的圖形對象,并根據(jù)數(shù)據(jù)的關(guān)系,計算出數(shù)據(jù)點在圖形中的相對位 置,從而把復(fù)雜抽象的數(shù)據(jù)分布轉(zhuǎn)換成直觀明了的大圖布局。然后,它充分利用人類視覺系 統(tǒng)對圖形的高靈敏度和快速分析能力,通過人的觀察分析來獲得潛在的數(shù)據(jù)規(guī)律,從而高 效地進(jìn)行知識挖掘的過程。因此,該技術(shù)是大數(shù)據(jù)研究領(lǐng)域中的一個熱點。
[0004]數(shù)據(jù)可視化分析是指將關(guān)系型數(shù)據(jù)轉(zhuǎn)換為圖形,并觀察圖形的特征,分析數(shù)據(jù)潛 在規(guī)律,從而挖掘知識的過程。它最大的優(yōu)勢是,以最直觀的方式呈現(xiàn)數(shù)據(jù)特征,降低了分 析難度,提高了挖掘效率。這項技術(shù)廣泛存在于各種數(shù)據(jù)分析應(yīng)用,例如社交網(wǎng)絡(luò)分析 (Social Networks Analysis)、互聯(lián)網(wǎng)溝通(Internet Communications)以及生物信息學(xué) (Bioinformatics)等等;同時,該研究領(lǐng)域也具有非常大的挑戰(zhàn)性,因為它涉及計算機(jī)科 學(xué)、物理學(xué)、圖形設(shè)計學(xué)、符號學(xué),以及藝術(shù)等幾個重要知識領(lǐng)域。
[0005] 數(shù)據(jù)可視化方法的核心在于圖形布局的計算方法。當(dāng)前圖形布局的計算方法主 要有:基于光譜和基于力引導(dǎo)(force-directed)的布局計算方法。前者的主要不足是計算 出來的圖形布局不夠美觀,難以表現(xiàn)數(shù)據(jù)的內(nèi)在特征,而且采用的特征向量計算方法不能 直觀地解釋計算結(jié)果;對于后者,雖然大部分方法簡單直觀,布局效果好,但只適用于幾十 或幾百的小數(shù)據(jù),對于大數(shù)據(jù)則存在以下的缺點和不足:
[0006] 1.由于大數(shù)據(jù)的數(shù)據(jù)量大等特點,大圖布局的計算難度很大,難以產(chǎn)生比較好的 布局效果。
[0007] 2.算法本身的計算復(fù)雜度比較高,導(dǎo)致大圖布局的計算非常緩慢,運行時間特別 久。
[0008] 3.繪制圖形的邊框大小被計算機(jī)的屏幕大小所限制,導(dǎo)致直接繪制圖形布局時產(chǎn) 生頂點和連接頂點的邊大量重疊,難以清晰地觀察和分析布局的特征,從而無法挖掘大數(shù) 據(jù)的潛在規(guī)律。
[0009] 因此,為了更加有效地計算大數(shù)據(jù)的圖形布局,需要采用新的策略來計算圖形布 局,并設(shè)計有效的圖形交互方式,從而提高布局算法的準(zhǔn)確性和高效性,以及圖形繪制方式 的有效性,滿足用戶觀察和分析大數(shù)據(jù)的需求,達(dá)到挖掘知識的目的。

【發(fā)明內(nèi)容】

[0010] 本發(fā)明的首要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于層次化模型的 數(shù)據(jù)可視化方法,該方法通過采用層次化模型、結(jié)合模擬退火技術(shù)等策略,極大提高了算法 的布局效果和計算效率;同時還通過采用不同粗細(xì)粒度層次顯示圖形的方式,解決了大圖 無法在屏幕中清晰顯示的問題。
[0011] 本發(fā)明的另一目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于層次化模型的 數(shù)據(jù)可視化系統(tǒng),該系統(tǒng)能夠正確并高效地計算大量數(shù)據(jù)的圖形布局,科學(xué)合理地在有限 的屏幕中繪制大圖,并為用戶提供了兩種有效的交互方式,較好地滿足了用戶快速分析大 數(shù)據(jù)的要求,達(dá)到了挖掘知識的目的。
[0012] 本發(fā)明的首要目的通過下述技術(shù)方案實現(xiàn):基于層次化模型的數(shù)據(jù)可視化方法, 包括:
[0013] 圖形數(shù)據(jù)準(zhǔn)備:將海量的數(shù)據(jù)對象映射成圖形中的頂點,任意兩個數(shù)據(jù)之間的關(guān) 系映射成無向邊,生成結(jié)構(gòu)化的圖形數(shù)據(jù)。
[0014] 圖形頂點采樣分層:基于層次化模型的策略,根據(jù)一定的規(guī)則,對已有的數(shù)據(jù)頂 點遞歸地進(jìn)行采樣,生成數(shù)據(jù)頂點不斷減少的多份子圖形數(shù)據(jù),來表示從細(xì)粒度層次(頂點 個數(shù)多)向粗粒度層次(頂點個數(shù)少)變化的多個子圖。
[0015] 子圖頂點連接:由于對原始圖形的頂點進(jìn)行了采樣分層操作后,所生成的每個子 圖都只有頂點,而沒有邊,因此需要根據(jù)原始圖形的邊,來構(gòu)建每個子圖的邊,即連接子圖 各自的頂點,從而得到完整的子圖形數(shù)據(jù)。
[0016] 圖形頂點受力計算:首先隨機(jī)初始化每個頂點的位置;然后,由于在經(jīng)典的力引導(dǎo) 模型中,圖形被模擬成力學(xué)系統(tǒng),每個頂點都被模擬成一個帶同種電荷的粒子,每一條邊都 被模擬成一根彈簧;因此,需要計算任意兩個頂點之間的基于庫倫定律的電場斥力,以及鄰 接頂點之間的基于胡克定律的彈簧力。
[0017] 頂點位置更新:根據(jù)每個頂點當(dāng)前所受的合力,采用改進(jìn)的模擬退火等技術(shù),將頂 點移動到新的位置。當(dāng)所有頂點移動到新的位置后,再重新計算每個頂點所受的合力,再移 動到新的位置;按照這種方式不斷迭代計算,直至整個圖形系統(tǒng)的力處于相對穩(wěn)定狀態(tài)。
[0018] 圖形布局遞歸計算:從最粗粒度的子圖開始計算布局,并用粗粒度子圖的正確布 局來初始化下一個較細(xì)粒度子圖的布局,再計算該細(xì)粒度圖形的布局;按照這種方式從粗 粒度向細(xì)粒度遞歸地計算每個子圖的布局,直至得到原始圖形的布局。
[0019] 圖形布局層次化繪制:采用層次化模型的策略,根據(jù)屏幕大小和圖形數(shù)據(jù)量的相 對關(guān)系,對大圖形繪制較粗粒度的圖形布局;并設(shè)計縮放操作,當(dāng)用戶需要觀察局部情況, 則放大該局部的圖形布局;并設(shè)計平移操作,方便用戶將屏幕外的圖形布局移動到屏幕范 圍內(nèi)進(jìn)行觀察。
[0020] 所述的圖形數(shù)據(jù)準(zhǔn)備包括以下步驟:
[0021] (la)將數(shù)據(jù)集中的每個對象都映射成一個頂點;
[0022] (lb)將兩個對象之間的任意聯(lián)系都映射成一條無向邊;
[0023] (lc)為每個頂點和每一條邊都賦予不重復(fù)的ID號,從而生成結(jié)構(gòu)化的圖形數(shù)據(jù)文 件。
[0024] 所述的圖形頂點采樣分層包括以下步驟:
[0025] (2a)采樣生成子圖的頂點集合:從原始圖形的頂點集合中采樣生成更小的頂點集 合,為了保持不同粒度圖形之間的幾何特征,使用的方法是生成原始頂點集合的最大獨立 集合(Maximallndependent Set,MIS)。假設(shè)圖形G= (V,E),其中,V表示頂點集合,E表示邊 的集合;那么集合S C=P是一個獨立集合的充要條件是:該集合中任意兩個頂點的圖形距 離大于或等于2(其中,圖形距離是指兩個頂點在圖形中的最短路徑)。其實這就等價于,集 合S中的任意兩個頂點在圖G中都不是鄰接點。圖G可以生成多個MIS,但每個MIS都不是其他 MIS的子集。生成MIS方法是,隨機(jī)選取頂點Vi GV,把Vi加入到集合S中,同時把Vi從V中刪除; 然后再把^的所有鄰接節(jié)點從V中刪除;重復(fù)上述操作直至V為空。最后得到的獨立集合S就 是當(dāng)前圖形的MIS,也就是子圖的點集。
[0026] (2b)判斷是否應(yīng)停止采樣分層操作:在生成一系列粒度不斷粗化的頂點集合V1; V2,…,Vk之后(其中k表示子圖的個數(shù)),當(dāng)21^0丨311^61'(6())(01311^61'(6())表示原始圖形的 直徑)時,MIS采樣分層操作就停止。
[0027] 所述的子圖頂點連接包括以下步驟:
[0028] (3a)計算圖形的平均度:由MIS采樣分層方法得到了一系列粒度不斷粗化的圖形 的頂點集合Vi,V 2,…,Vk,下一步的內(nèi)容是,重構(gòu)這些頂點集合對應(yīng)的邊集,從而得到完整的 圖形。重構(gòu)邊集的過程其實就是尋找每個頂點的新鄰接點,其關(guān)鍵之處也是盡可能保持上 一層圖形的幾何特征。
[0029] 假設(shè)將圖形表示為Gi(0<i<k),其對應(yīng)的頂點集合表示為Vi,對應(yīng)的邊集表示為 Ei。為了讓粗粒度圖形保持細(xì)粒度圖形的幾何特征,本發(fā)明要介紹平均度(Average De gr e e)的概念。在圖論中,每個頂點的度(Degr e e)是指該頂點所連接邊的數(shù)量。而平均度 則是指該圖的邊的數(shù)量與頂點數(shù)量的比例,其作用在于衡量圖的稠密程度。為了保持圖的 幾何特征,不同層次之間的圖的平均度應(yīng)該是相同的,即,
[0030] avgDeg(Gi) =avgDeg(Gi-i)
[0031 ]其中,avgDeg(Gi) = 2 |Ei | / | Vi |。假設(shè)細(xì)粒度圖形Gi-(Vi-hEi-〇,粗粒度圖形Gi =(Vi,Ei)。其中Ei未知,則由平均度可知:
[0032] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0033] 即,|Ed = |Eh| ( IVj/IV^I )。然后,計算粗粒度圖形中每個頂點所要連接的新鄰 接點個數(shù)m,P:
[0034] m,P= |Ei | (m-i,P/1Ei-11)
[0035] 其中,m-u表示細(xì)粒度圖形中的同一頂點的鄰接點個數(shù);0<i彡k,0彡p彡|1|。
[0036] (3b)尋找每個頂點的鄰接點:采用廣度優(yōu)先搜索(Breadth-First Search,BFS) 算法尋找鄰接點:選取圖Gi的頂點VpGVi,該頂點同時存在于圖61-沖;以^為根節(jié)點,在圖 Gi-沖進(jìn)行BFS查找;如果當(dāng)前查找的頂點VqGVH也存在于頂點集合Vi中,那么就把vq放入 ^的新鄰接點集合^中,然后繼續(xù)查找,直至鄰接節(jié)點的個數(shù)達(dá)到預(yù)先指定的數(shù)量。不斷重 復(fù)上述操作,直至遍歷完1中所有的頂點。
[0037] 所述的圖形頂點受力計算包括以下步驟:
[0038] (4a)隨機(jī)初始化每個頂點的位置:為了促進(jìn)算法收斂,本發(fā)明設(shè)置以下的初始化 方式:
[0039] Xj = randi%.,/^), = rando%^^
[0040] 其中,(Xi,yi)表示頂點i在二維空間中的坐標(biāo),randi和rand2表示兩個不同的隨機(jī) 數(shù),Vo表示原始圖形的頂點個數(shù)。這種隨機(jī)初始化的期望結(jié)果就是,使頂點盡可能被均勻地 初始化在一個合適大小的以原點為中心的正方形區(qū)域內(nèi),從而避免頂點的初始位置過于分 散或過于重疊。
[0041] (4b)對頂點構(gòu)建空間劃分樹:由于斥力存在于任意兩個頂點之間,因此如果直接 計算每個頂點所受的斥力,那么計算時間復(fù)雜度將是0(|V|2)(其中,V表示頂點的個數(shù)), 導(dǎo)致算法效率非常低下,難以適用于大數(shù)據(jù)的可視化分析。由于影響斥力的關(guān)鍵因素是頂 點之間的距離,因此可以采用多極擴(kuò)展定理(Multipole Expansion)近似計算斥力。多極擴(kuò) 展定理是指,當(dāng)一個頂點與某一群點的距離足夠遠(yuǎn)時,這群頂點對該頂點的斥力會產(chǎn)生一 種聚合效應(yīng),即這群頂點產(chǎn)生的斥力效果近似等價于:對這群點的電荷進(jìn)行累加,然后在其 幾何中心的位置統(tǒng)一對該頂點施加斥力。所以,本發(fā)明根據(jù)頂點的空間分布,構(gòu)建空間劃分 樹,即把相同區(qū)域的頂點歸到同一個空間樹節(jié)點內(nèi);然后根據(jù)多極擴(kuò)展定理,近似計算每個 頂點所受的斥力。
[0042] 本發(fā)明利用1(維樹(1(-〇;[1116118;[0仙11>66,1(0-1^66)作為空間劃分樹。1(0-1'代6是一 種在k維歐幾里德空間中將多個點劃分成不同區(qū)域的數(shù)據(jù)結(jié)構(gòu)。KD-Tree是一種二叉樹,它 的每一個非葉子結(jié)點都可以視為一個將空間分割成兩半的超平面。超平面的一側(cè)被表示為 該節(jié)點的左子節(jié)點,而另一側(cè)則被表示為該節(jié)點的右子節(jié)點。例如,在二維坐標(biāo)系中,如果 使用x軸垂直分割面,那么在分割面左側(cè)的點被劃分到左子節(jié)點,而右側(cè)的點就被劃分為右 子節(jié)點。
[0043]本發(fā)明利用"軸對齊分割"的方法構(gòu)建KD-Tree,即選擇坐標(biāo)系中的某一坐標(biāo)軸的 某一位置的垂直分割面進(jìn)行空間的分割。由于本發(fā)明研究的是二維圖形的布局,因此這里 只討論二維坐標(biāo)系中KD-Tree的構(gòu)建方法:首先,將整個二維空間初始為樹的根節(jié)點,并根 據(jù)當(dāng)前樹的深度選擇垂直分割面所在的坐標(biāo)軸(例如,在根節(jié)點時選擇x軸,當(dāng)深度加1時選 擇y軸,以此方式輪換坐標(biāo)軸);然后,以某種方式指定垂直分割面位于坐標(biāo)軸的具體位置, 并用該分割面將當(dāng)前的空間區(qū)域劃分成兩部分,生成左右子節(jié)點。不斷重復(fù)以上步驟,直至 當(dāng)前區(qū)域的點的個數(shù)小于某個閾值。本發(fā)明采用二進(jìn)制分割法指定垂直分割面位于坐標(biāo)軸 上的具體位置:(假設(shè),把 x軸當(dāng)作分割面所在坐標(biāo)軸)首先,將該區(qū)域內(nèi)所有頂點的x坐標(biāo)轉(zhuǎn) 換為二進(jìn)制數(shù)字,然后比較所有二進(jìn)制數(shù)字的最高有效位,把最高有效位為〇的點放入左子 節(jié)點、為1的點放入右子節(jié)點;最后,當(dāng)該區(qū)域內(nèi)的所有頂點被劃分完之后,把比較的二進(jìn)制 位從最高有效位左移一位,以供下次選擇x軸劃分時使用。
[0044] (4c)計算頂點所受的斥力:根據(jù)多極擴(kuò)展定理,本發(fā)明將通過遍歷KD-Tree來計算 斥力。對于距離當(dāng)前頂點足夠遠(yuǎn)的一群頂點,本發(fā)明采用如下方式進(jìn)行計算:
[0045]首先,假設(shè)C= {ci,-_,cm}是由m個帶電荷Q(C) = {qi,-_,qm}的粒子組成的集合,這 m個帶電粒子位于不同的位置p(C) = {pi,"_,pm}。其中,所有頂點的位置p: = (x,y) G M2 都被標(biāo)識為復(fù)數(shù)形式:Z = x + iy e C;
[0046] 假設(shè)一個半徑為r且圓心為ZQ的圓形包含了 m個帶有電荷且位于不同位置的粒子; 那么,對于任何滿足I z-zo | >r的位置z GC,這m個帶電粒子對z產(chǎn)生的總的電勢能用以下公 式計算:
(1) a該公式進(jìn)行的是k階多極擴(kuò)展,這 里,k被設(shè)置為4,目的是使估計值的誤差小于102。
[0049] 根據(jù)公式(1)計算得到的帶電粒子在電場中的電勢能,進(jìn)一步計算電場力。處于位 置z且?guī)挝浑姾傻牧W邮艿降碾妶隽κ牵?br>[0050] (ReCe7(z)),-Im(e/ (z))) (2)
[0051] 其中:
:,Re表示復(fù)數(shù)的實部,Im表示復(fù)數(shù)的虛部。
[0052] 基于上述方式,假設(shè)N表示KD-Tree中圓心為zo、半徑為r的節(jié)點,該節(jié)點包含了k個 帶電粒子{vo,…,vk}。為了近似計算任意一個位置為z的粒子vGV所受的斥力,要從KD-Tree 的根節(jié)點開始,前序遍歷:在節(jié)點N,如果| z-zq | >r,那么就用公式(1)和(2)近似計算該節(jié) 點的粒子群對v產(chǎn)生的斥力。反之,則根據(jù)節(jié)點類型做不同處理:如果該節(jié)點是內(nèi)部節(jié)點,則 繼續(xù)遍歷它的左右子節(jié)點;如果該節(jié)點是葉子節(jié)點,則按原始的方式逐一計算v與該節(jié)點中 其他粒子之間的斥力。
[0053] (4d)計算頂點所受的彈力:由于彈力與距離的關(guān)系往往是對數(shù)關(guān)系,而不是類似 胡克定律的線性關(guān)系,因此本發(fā)明采用的彈力計算公式為:
[0054] Attraction = d2log(d/d/ )
[0055] 其中,d表示兩個鄰接頂點之間的歐拉距離,表示彈簧的原長。
[0056] (4e)計算頂點所受的合力:每個頂點所受的合力包括來自其他所有頂點的斥力, 以及來自鄰接頂點的彈力,所以頂點所受合力的計算公式如下:
[0057] Ft〇tai = F rep 1+Fattr
[0058] 其中,F(xiàn)total表示合力,F(xiàn)repl表示頂點所受斥力,F(xiàn)attr表示頂點所受彈力。
[0059] 所述的頂點位置更新包括以下步驟:
[0060] (5a)計算頂點移動的位移:經(jīng)典的力引導(dǎo)(force-directed)布局的原理是,先計 算出所有頂點所受的彈力和斥力,并根據(jù)合力的大小和方向?qū)㈨旤c移動到新的位置,從而 逐步減小頂點所受的力;對所有頂點進(jìn)行多次迭代計算,使圖形系統(tǒng)達(dá)到穩(wěn)定平衡狀態(tài),從 而得到最終布局。因此,在上一步計算得到頂點的合力后,這一步要做的是更新頂點的位 置。
[0061] 由于圖形的初始布局是隨機(jī)生成的,當(dāng)初始布局比較差時,在計算過程中如果某 些頂點移動太遠(yuǎn)或太近,都可能導(dǎo)致某些頂點在兩個特定的位置之間來回振蕩,使圖形系 統(tǒng)難以穩(wěn)定,布局結(jié)果很差。為了科學(xué)地計算每個頂點移動的位移,本發(fā)明改進(jìn)并應(yīng)用傳統(tǒng) 的模擬退火技術(shù)。
[0062] 由力引導(dǎo)布局算法的原理可知,計算布局的過程實際就是每個頂點尋找最佳位置 的過程,相當(dāng)于把布局的計算問題轉(zhuǎn)換為一個全局優(yōu)化問題;而模擬退火就是一種能夠在 一定時間內(nèi)找到全局最優(yōu)解的技術(shù)。該技術(shù)的原理是,首先將系統(tǒng)加熱到一定的溫度(這相 當(dāng)于隨機(jī)初始化圖形的布局),加熱使頂點的能量變大(這相當(dāng)于初始狀態(tài)時頂點受到比較 大的合力),使頂點離開原來的位置,并隨機(jī)地在其他位置移動,以較大的概率找到能量比 原來更低的位置;然后對系統(tǒng)進(jìn)行退火冷卻的操作,此時頂點的移動范圍逐漸縮小,進(jìn)而收 斂到相對穩(wěn)定的位置。計算頂點移動位移的公式如下:
[0064] 其中,F(xiàn)tcltal(v)表示頂點v所受的合力,t表示模擬退火過程中的溫度。t被初始化 為欠* ,(其中,K是一個超參數(shù),本發(fā)明將其設(shè)置為0.1 ;V表示當(dāng)前圖形的頂點總數(shù))。另 外,t會隨著迭代次數(shù)的增加而遞減:
[0065] t = t氺入
[0066] 其中,A是一個超參數(shù),本發(fā)明將其設(shè)置為〇. 9。
[0067] (5b)更新頂點的位置:根據(jù)每個頂點移動的位移,將頂點移動到新的位置:
[0068] posnew(v) = pos〇id (v)+di sp ( V )
[0069] 其中,p〇Snew(V)表示頂點V的新位置,口0 8。1〇1(>)表示頂點¥的舊位置,(118口(>)表示 頂點V需要移動的位移。
[0070] 所述的圖形布局遞歸計算包括以下步驟:
[0071] (6a)計算最粗粒度圖形的布局:隨機(jī)初始化最粗粒度圖形的頂點位置,根據(jù)前面 所述的方法計算最終的穩(wěn)定布局。由于最粗粒度圖形是頂點個數(shù)最少的子圖,因此可以很 快計算出該圖形的布局。
[0072] (6b)遞歸計算更細(xì)粒度圖形的布局:用最粗粒度圖形的頂點位置,初始化更細(xì)粒 度圖形的頂點的位置(即,將粗粒度布局作為細(xì)粒度布局的骨架),然后再計算細(xì)粒度圖形 的布局。不斷遞歸計算,直至得到原始圖形的最終布局。
[0073]所述的圖形布局層次化繪制包括以下步驟:
[0074] (7a)計算頂點的概率密度分布:為了計算頂點的概率密度分布,本發(fā)明將利用非 參數(shù)估計方法--核密度估計(Kernel Density Estimation,KDE)。核密度是一種估計連 續(xù)隨機(jī)變量的概率密度函數(shù)的非參數(shù)估計方法。假設(shè)頂點坐標(biāo)(x,y)是一種連續(xù)隨機(jī)變量, {(XI,y 1),…,(xn,yn)}是符合概率密度函數(shù)f (x,y)的n個獨立同分布的樣本點,那么總體的 核密度估計為:
[0076]其中,K表示核函數(shù);hx、hy表示帶寬,是一個調(diào)整核密度估計曲線的平滑程度的參 數(shù)。核函數(shù)的選定非常重要。為了表現(xiàn)出頂點的概率密度比圖形中的空白位置要高,可以把 頂點假想為一座山峰的最高點:假設(shè)當(dāng)前只有一個最高點,則離最高點越遠(yuǎn)的位置,其海拔 高度越低,概率密度也越低,直至為零。基于這個假設(shè),本發(fā)明選定均勻?qū)ΨQ的二維高斯函 數(shù)作為核函數(shù)。二維高斯函數(shù)的公式如下:
[0078]其中,心和~表示均值,〇x和%表示方差。由于每個頂點都處于以自身為最高點的 二維高斯曲面中,當(dāng)兩個頂點互相靠近時,彼此的二維高斯曲面將互相疊加,從而估計出頂 點的概率密度分布。
[0079] (7b)繪制圖形布局:由于大圖的頂點個數(shù)非常多(幾十萬或者幾百萬等等),而圖 形的繪制空間受計算機(jī)屏幕大小所限制,導(dǎo)致大量頂點互相重疊,難以分辨圖形的布局。因 此,本發(fā)明根據(jù)已計算好的頂點概率密度分布,將互相堆疊或鄰近的頂點合并成一個頂點, 并且合并相應(yīng)的邊,從而繪制出粗粒度圖形的布局,便于觀察圖形的整體特征。
[0080] (7c)圖形交互設(shè)計:為了觀察圖形的局部分布情況,本發(fā)明設(shè)計了兩個科學(xué)有效 的交互操作:縮放操作和平移操作。利用縮放操作,可以縮小和放大圖形。特別是當(dāng)放大圖 形某一局部時,可以將粗粒度圖形的單個頂點分裂成多個頂點,并繪制相應(yīng)的邊,顯示出細(xì) 粒度層次的布局。利用平移操作,可以將當(dāng)前粒度的圖形在屏幕外部分移動到屏幕內(nèi),從而 進(jìn)行觀察。
[0081] 縮放操作的具體過程為(假設(shè)每次縮小或放大的倍數(shù)為m):首先,將鼠標(biāo)移動到需 要縮放的位置,記錄當(dāng)前的鼠標(biāo)位置P;接著,如果進(jìn)行的是放大操作,則將所有頂點的坐標(biāo) 乘以倍數(shù)m,反之則乘以1/m,記錄當(dāng)前的鼠標(biāo)位置為q;然后將錨點從位置q平移到位置p,其 他頂點則按照同樣的平移量I q_P I進(jìn)行平移;最后繪制圖形。
[0082] 平移操作的具體過程為:首先,將鼠標(biāo)移動到需要平移的位置,記錄此時的鼠標(biāo)位 置P;接著,拖拽整個圖形至目標(biāo)位置,記錄此時的鼠標(biāo)位置為q;然后,計算錨點的平移量, 并根據(jù)平移量移動所有頂點的坐標(biāo);最后繪制圖形。
[0083] 本發(fā)明的另一目的通過下述技術(shù)方案實現(xiàn):基于層次化模型的數(shù)據(jù)可視化系統(tǒng), 包括:
[0084] 圖形數(shù)據(jù)準(zhǔn)備模塊:給每個頂點和每一條無向邊都賦予特定的ID號,并按照一定 格式生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。
[0085] 圖形頂點采樣分層模塊:對原始圖形的頂點集合進(jìn)行遞歸采樣,生成頂點個數(shù)逐 漸減少的多個頂點集合。
[0086] 子圖頂點連接模塊:根據(jù)原始圖形的幾何結(jié)構(gòu)特征,采用廣度優(yōu)先搜索方式,連接 距離鄰近的頂點,生成子圖的邊集,得到完整的子圖數(shù)據(jù)。
[0087] 圖形頂點受力計算模塊:隨機(jī)初始化原始圖形中每個頂點的位置,近似計算頂點 所受斥力,并具體計算頂點所受彈力,將斥力和彈力相加得到合力。
[0088] 頂點位置更新模塊:根據(jù)每個頂點所受的合力,將頂點移動到新的位置。
[0089] 圖形布局遞歸計算模塊:從最粗粒度的子圖開始計算布局,并以粗粒度圖形布局 為基礎(chǔ),遞歸地計算每個子圖的布局,最終得到原始圖形的布局。
[0090] 圖形布局層次化繪制模塊:根據(jù)屏幕大小,繪制合適粒度層次的子圖,或者直接繪 制原始圖形;允許用戶縮放或移動圖形。
[0091] 進(jìn)一步地,所述的圖形數(shù)據(jù)準(zhǔn)備模塊具體用于:
[0092] 將輸入數(shù)據(jù)集中的每個對象都映射成一個頂點,將兩個對象之間的任意聯(lián)系都映 射成一條無向邊;為每個頂點和每一條邊都賦予不重復(fù)的ID號,從而生成結(jié)構(gòu)化的圖形數(shù) 據(jù)文件。
[0093]進(jìn)一步地,所述的圖形頂點采樣分層模塊具體用于:
[0094]該模塊利用在原始頂點集合中生成最大獨立集合的方式,從原始圖形的頂點集合 中采樣生成更小的頂點集合。假設(shè)圖形G=(V,E),其中,V表示頂點集合,E表示邊的集合;那 么集合S C V是一個獨立集合的充要條件是:該集合中任意兩個頂點的圖形距離大于或等 于2(其中,圖形距離是指兩個頂點在圖形中的最短路徑)。
[0095]圖G可以生成多個MIS,但每個MIS都不是其他MIS的子集。生成MIS方法是,隨機(jī)選 取頂點VlGV|Vl加入到集合S中,同時把viv中刪除;然后再把^的所有鄰接節(jié)點從V中 刪除;重復(fù)上述操作直至V為空。最后得到的獨立集合S就是當(dāng)前圖形的MIS,也就是子圖的 點集。
[0096] 該模塊會自動判斷是否應(yīng)停止采樣分層操作:在生成一系列粒度不斷粗化的頂點 集合¥1,¥2,.",'\^之后(其中1^表示子圖的個數(shù)),當(dāng)2 1^01311^61'(6())(01311^61'(6())表示原 始圖形的直徑)時,MIS采樣分層操作就停止。
[0097] 進(jìn)一步地,所述的子圖頂點連接模塊具體用于:
[0098] 計算原始圖形的平均度,并根據(jù)平均度,對一系列粒度不斷粗化的圖形的頂點集 合%,%,…,Vk所對應(yīng)的邊集進(jìn)行重構(gòu)。重構(gòu)邊集時,根據(jù)上一層圖形的幾何特征尋找每個 頂點的新鄰接點。
[0099] 假設(shè)將圖形表示為Gi(0<i<k),其對應(yīng)的頂點集合表示為Vi,對應(yīng)的邊集表示為 Ei。在重構(gòu)的過程中,為了讓粗粒度圖形保持細(xì)粒度圖形的幾何特征,,不同粒度層次之間 的子圖的平均度是相同的,即,
[0100] avgDeg(Gi) =avgDeg(Gi-i)
[0101] 其中,avgDeg (Gi) = 2 | Ei | / | Vi |。假設(shè)細(xì)粒度圖形Gi-i = (Vi-i,Ei-i),粗粒度圖形Gi =(Vi,Ei)。其中Ei未知,則由平均度可知:
[0102] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0103] 即,|Ed = lE^I ( IVj/IV^I )。然后,計算粗粒度圖形中每個頂點所要連接的新鄰 接點個數(shù)m,P:
[0104] ni,P= | Ei | (ru -i,p/ | Ei-i |)
[0105] 其中,m-u表示細(xì)粒度圖形中的同一頂點的鄰接點個數(shù);0<i彡k,0彡p彡|1|。 [010 6]本發(fā)明利用廣度優(yōu)先搜索(Breadth-First Search,BFS)算法尋找鄰接點:選取圖 Gi的頂點vPGVi,該頂點同時存在于圖Gi-沖;以^為根節(jié)點,在圖Gi-沖進(jìn)行BFS查找;如果 當(dāng)前查找的頂點Vq G Vi-l也存在于頂點集合Vi中,那么就把Vq放入Vp的新鄰接點集合Np中,然 后繼續(xù)查找,直至鄰接節(jié)點的個數(shù)達(dá)到預(yù)先指定的數(shù)量。不斷重復(fù)上述操作,直至遍歷完I 中所有的頂點。
[0107] 進(jìn)一步地,所述的圖形頂點受力計算模塊具體用于:
[0108] 首先隨機(jī)初始化每個頂點的位置,為了促進(jìn)算法收斂,本發(fā)明設(shè)置以下的初始化 方式:
[0109] xj = randi%^/^, y; = rand2%vi/V〇
[0110] 其中,(Xi,yi)表示頂點i在二維空間中的坐標(biāo),randi和rand2表示兩個不同的隨機(jī) 數(shù),Vo表示原始圖形的頂點個數(shù)。這種隨機(jī)初始化有助于頂點被盡可能均勻地被初始化在 以原點為中心的正方形區(qū)域內(nèi)(該正方形區(qū)域的大小與頂點的個數(shù)成正比關(guān)系),從而避免 頂點的初始位置過于分散或過于重疊。
[cm]本發(fā)明結(jié)合多極擴(kuò)展定理,基于頂點的空間分布,構(gòu)建空間劃分樹,即把相同區(qū)域 的頂點歸到同一個空間樹節(jié)點內(nèi),根據(jù)當(dāng)前頂點與其他頂點的距離,近似計算每個頂點所 受的斥力。
[0112] 本發(fā)明利用K維樹(K-Dimensional Tree,KD_Tree)作為空間劃分樹。
[0113]本發(fā)明采用"軸對齊分割"的方法構(gòu)建KD-Tree,選擇坐標(biāo)系中的某一坐標(biāo)軸的某 一位置的垂直分割面進(jìn)行空間的分割。由于本發(fā)明研究的是二維圖形的布局,因此這里只 討論二維坐標(biāo)系中KD-Tree的構(gòu)建方法:首先,將整個二維空間初始為樹的根節(jié)點,并根據(jù) 當(dāng)前樹的深度選擇垂直分割面所在的坐標(biāo)軸(例如,在根節(jié)點時選擇x軸,當(dāng)深度加1時選擇 y軸,以此方式輪換坐標(biāo)軸);然后,以某種方式指定垂直分割面位于坐標(biāo)軸的具體位置,并 用該分割面將當(dāng)前的空間區(qū)域劃分成兩部分,生成左右子節(jié)點。不斷重復(fù)以上步驟,直至 當(dāng)前區(qū)域的點的個數(shù)小于某個閾值。本發(fā)明采用二進(jìn)制分割法指定垂直分割面位于坐標(biāo)軸 上的具體位置:(假設(shè),把 x軸當(dāng)作分割面所在坐標(biāo)軸)首先,將該區(qū)域內(nèi)所有頂點的x坐標(biāo)轉(zhuǎn) 換為二進(jìn)制數(shù)字,然后比較所有二進(jìn)制數(shù)字的最高有效位,把最高有效位為〇的點放入左子 節(jié)點、為1的點放入右子節(jié)點;最后,當(dāng)該區(qū)域內(nèi)的所有頂點被劃分完之后,把比較的二進(jìn)制 位從最高有效位左移一位,以供下次選擇x軸劃分時使用。
[0114]根據(jù)多極擴(kuò)展定理,本發(fā)明將通過遍歷KD-Tree來計算斥力。對于距離當(dāng)前頂點足 夠遠(yuǎn)的一群頂點,本發(fā)明采用如下方式進(jìn)行計算:
[0115]首先,假設(shè)C= {ci,"_,cm}是由m個帶電荷Q(C) = {qi,"_,qm}的粒子組成的集合,這 m個帶電粒子位于不同的位置p(C) = {Pl,…,pm}。其中,所有頂點的位置p = € E2 都被標(biāo)識為復(fù)數(shù)形式3 = X + iy e C;
[0116]假設(shè)一個半徑為r且圓心為ZQ的圓形包含了 m個帶有電荷且位于不同位置的粒子; 那么,對于任何滿足I z-zo | >r的位置z GC,這m個帶電粒子對z產(chǎn)生的總的電勢能用以下公 式計算:
(1) 該公式進(jìn)行的是k階多極擴(kuò)展,這 里,k被設(shè)置為4,目的是使估計值的誤差小于102。
[0119] 根據(jù)公式(1)計算得到的帶電粒子在電場中的電勢能,進(jìn)一步計算電場力。處于位 置z且?guī)挝浑姾傻牧W邮艿降碾妶隽κ牵?br>[0120] (ReCe7(z)),-Im(e/ (z))) (2)
[0121] 其中
Re表示復(fù)數(shù)的實部,Im表示復(fù)數(shù)的虛部。
[0122] 基于上述方式,假設(shè)N表示KD-Tree中圓心為zo、半徑為r的節(jié)點,該節(jié)點包含了k個 帶電粒子{vo,…,vk}。為了近似計算任意一個位置為z的粒子vGV所受的斥力,要從KD-Tree 的根節(jié)點開始,前序遍歷:在節(jié)點N,如果| z-z〇| >r,那么就用公式(1)和(2)近似計算該節(jié)點 的粒子群對V產(chǎn)生的斥力。反之,則根據(jù)節(jié)點類型做不同處理:如果該節(jié)點是內(nèi)部節(jié)點,則繼 續(xù)遍歷它的左右子節(jié)點;如果該節(jié)點是葉子節(jié)點,則按原始的方式逐一計算V與該節(jié)點中其 他粒子之間的斥力。
[0123] 基于彈力與距離的對數(shù)關(guān)系,本發(fā)明采用的彈力計算公式為:
[0124] Attraction = d2log(d/d/ )
[0125] 其中,d表示兩個鄰接頂點之間的歐拉距離,表示彈簧的原長。
[0126] 每個頂點所受的合力包括來自其他所有頂點的斥力,以及來自鄰接頂點的彈力, 所以本發(fā)明計算頂點所受合力如下:
[0127] Ft〇tai = F rep 1+Fattr
[0128]其中,?1;。1;31、?1^1、?31^分別表示頂點所受的合力、斥力、彈力。
[0129] 進(jìn)一步地,所述的頂點位置更新模塊具體用于:
[0130] 根據(jù)每個頂點所合力的大小和方向?qū)㈨旤c移動到新的位置,從而逐步減小頂點所 受的力;對所有頂點進(jìn)行多次迭代計算,使圖形系統(tǒng)達(dá)到穩(wěn)定平衡狀態(tài),從而得到最終布 局。
[0131] 由于圖形的初始布局是隨機(jī)生成的,當(dāng)初始布局比較差時,在計算過程中如果某 些頂點移動太遠(yuǎn)或太近,都可能導(dǎo)致某些頂點在兩個特定的位置之間來回振蕩,使圖形系 統(tǒng)難以穩(wěn)定。為了科學(xué)地計算每個頂點移動的位移,本發(fā)明改進(jìn)并應(yīng)用傳統(tǒng)的模擬退火技 術(shù)。
[0132] 由力引導(dǎo)布局算法的原理可知,計算布局的過程實際就是每個頂點尋找最佳位置 的過程,相當(dāng)于把布局的計算問題轉(zhuǎn)換為一個全局優(yōu)化問題;而模擬退火就是一種能夠在 一定時間內(nèi)找到全局最優(yōu)解的技術(shù)。本發(fā)明改進(jìn)模擬退火技術(shù),計算頂點移動位移的公式 如下:
[0134] 其中,F(xiàn)tcltal(v)表示頂點v所受的合力,t表示模擬退火過程中的溫度。t被初始化為 夂*#,(其中,1(是一個超參數(shù),本發(fā)明將其設(shè)置為0.1^表示當(dāng)前圖形的頂點總數(shù))。另 外,t會隨著迭代次數(shù)的增加而遞減:
[0135] t = t* 入
[0136] 其中,A是一個超參數(shù),本發(fā)明將其設(shè)置為〇. 9。
[0137] 更新頂點的位置,根據(jù)每個頂點移動的位移,將頂點移動到新的位置:
[0138] posnew(v) = pos〇id (v)+di sp ( V )
[0139] 其中,p〇Snew(V)表示頂點V的新位置,口0 8。1〇1(>)表示頂點¥的舊位置,(118口(>)表示 頂點V需要移動的位移。
[0140] 進(jìn)一步地,所述的圖形布局遞歸計算模塊具體用于:
[0141] 計算最粗粒度圖形的布局,隨機(jī)初始化最粗粒度圖形的頂點位置,根據(jù)前面所述 的方法計算最終的穩(wěn)定布局。由于最粗粒度圖形是頂點個數(shù)最少的子圖,因此可以很快計 算出該圖形的布局。
[0142] 本發(fā)明將粗粒度布局作為細(xì)粒度布局的骨架,遞歸計算更細(xì)粒度圖形的布局。用 最粗粒度圖形的頂點位置,初始化更細(xì)粒度圖形的頂點的位置,然后再計算細(xì)粒度圖形的 布局。不斷遞歸計算,直至得到原始圖形的最終布局。
[0143]進(jìn)一步地,所述的圖形布局層次化繪制模塊具體用于:
[0144] 本發(fā)明將利用非參數(shù)估計方法--核密度估計(Kernel Density Estimation, KDE),來計算頂點的概率密度分布。核密度是一種估計連續(xù)隨機(jī)變量的概率密度函數(shù)的非 參數(shù)估計方法。假設(shè)頂點坐標(biāo)(x,y)是一種連續(xù)隨機(jī)變量,{(X1,yi),…,(Xn,y n)}是符合概 率密度函數(shù)f(x,y)的n個獨立同分布的樣本點,那么總體的核密度估計為:
[0146]其中,K表示核函數(shù);hx、hy表示帶寬,是一個調(diào)整核密度估計曲線的平滑程度的參 數(shù)。核函數(shù)的選定非常重要。為了表現(xiàn)出頂點的概率密度比圖形中的空白位置要高,本發(fā)明 選定均勻?qū)ΨQ的二維高斯函數(shù)作為核函數(shù)。二維高斯函數(shù)的公式如下:
[0148] 其中,iaPiiy表示均值,~和%表示方差。由于每個頂點都處于以自身為最高點的 二維高斯曲面中,當(dāng)兩個頂點互相靠近時,彼此的二維高斯曲面將互相疊加,從而估計出頂 點的概率密度分布。
[0149] 本發(fā)明根據(jù)已計算好的頂點概率密度分布,將互相堆疊或鄰近的頂點合并成一個 頂點,并且合并相應(yīng)的邊,并將頂點和無向邊通過GPU渲染到屏幕上,從而繪制出粗粒度圖 形的布局,便于觀察圖形的整體特征。
[0150] 本發(fā)明設(shè)計了兩個科學(xué)有效的交互操作:縮放操作和平移操作。利用縮放操作,可 以縮小和放大圖形。特別是當(dāng)放大圖形某一局部時,可以將粗粒度圖形的單個頂點分裂成 多個頂點,并繪制相應(yīng)的邊,顯示出細(xì)粒度層次的布局。利用平移操作,可以將當(dāng)前粒度的 圖形在屏幕外部分移動到屏幕內(nèi),從而進(jìn)行觀察。
[0151]縮放操作的具體過程為(假設(shè)每次縮小或放大的倍數(shù)為m):首先,將鼠標(biāo)移動到需 要縮放的位置,記錄當(dāng)前的鼠標(biāo)位置P;接著,如果進(jìn)行的是放大操作,則將所有頂點的坐標(biāo) 乘以倍數(shù)m,反之則乘以1/m,記錄當(dāng)前的鼠標(biāo)位置為q;然后將錨點從位置q平移到位置p,其 他頂點則按照同樣的平移量I q_P I進(jìn)行平移;最后繪制圖形。
[0152] 平移操作的具體過程為:首先,將鼠標(biāo)移動到需要平移的位置,記錄此時的鼠標(biāo)位 置P;接著,拖拽整個圖形至目標(biāo)位置,記錄此時的鼠標(biāo)位置為q;然后,計算錨點的平移量, 并根據(jù)平移量移動所有頂點的坐標(biāo);最后繪制圖形。
[0153] 本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:
[0154] 1、本發(fā)明提出了層次化模型,并改進(jìn)了模擬退火策略,不僅獲得了美觀的布局效 果,降低了振蕩的概率,提高了效果穩(wěn)定性,而且減少了計算布局的迭代次數(shù),加快了運行 的時間。
[0155] 2、本發(fā)明巧妙利用了物理學(xué)中的多極擴(kuò)展定理,通過對圖形頂點劃分空間區(qū)域、 構(gòu)建KD-Tree的方法,近似計算了頂點所受斥力,避免了直接計算頂點斥力的高計算復(fù)雜 度,大大提高了布局算法的性能,使本發(fā)明更加適用于大數(shù)據(jù)的快速可視化分析。
[0156] 3、本發(fā)明利用層次化模型來繪制不同粒度層次的圖形,解決了大數(shù)據(jù)圖形布局存 在的在有限屏幕空間中頂點大量重疊、難以觀察的問題。另外,本發(fā)明設(shè)計的縮放操作和平 移操作,方便用戶觀察圖形布局的整體特征和局部規(guī)律,非常有助于實現(xiàn)知識挖掘的目的。
【附圖說明】
[0157] 圖1為本發(fā)明中公開的一種基于層次化模型的數(shù)據(jù)可視化方法的總體流程圖;
[0158] 圖2為基于層次化模型的圖形布局計算流程圖;
[0159] 圖3為本發(fā)明中公開的一種基于層次化模型的數(shù)據(jù)可視化系統(tǒng)的組成框圖。
【具體實施方式】
[0160] 下面結(jié)合實施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實施方式不限 于此。
[0161] 實施例
[0162] 如圖1所示,一種基于層次化模型的數(shù)據(jù)可視化方法的總體流程圖,該基于層次化 模型的數(shù)據(jù)可視化方法包括以下步驟:
[0163] S1、圖形數(shù)據(jù)準(zhǔn)備:給每個頂點和每一條無向邊都賦予特定的ID號,并按照一定格 式生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。
[0164] S2、圖形頂點采樣分層:對原始圖形的頂點集合進(jìn)行遞歸采樣,生成頂點個數(shù)逐漸 減少的多個頂點集合。
[0165] S3、子圖頂點連接:根據(jù)原始圖形的幾何結(jié)構(gòu)特征,采用廣度優(yōu)先搜索方式,連接 距離鄰近的頂點,生成子圖的邊集,得到完整的子圖數(shù)據(jù)。
[0166] S4、圖形頂點受力計算:隨機(jī)初始化原始圖形中每個頂點的位置,近似計算頂點所 受斥力,并具體計算頂點所受彈力,將斥力和彈力相加得到合力。
[0167] S5、頂點位置更新:根據(jù)每個頂點所受的合力,將頂點移動到新的位置。
[0168] S6、圖形布局遞歸計算:從最粗粒度的子圖開始計算布局,并以粗粒度圖形布局為 基礎(chǔ),遞歸地計算每個子圖的布局,最終得到原始圖形的布局。
[0169] S7、圖形布局層次化繪制:根據(jù)屏幕大小,繪制合適粒度層次的子圖,或者直接繪 制原始圖形;允許用戶縮放或移動圖形。
[0170] 下面對本發(fā)明提供的一種基于層次化模型的數(shù)據(jù)可視化方法作詳細(xì)說明:
[0171] ( - )步驟S1、圖形數(shù)據(jù)準(zhǔn)備。S11、將輸入數(shù)據(jù)集中的每個對象都映射成一個頂點; S12、將兩個對象之間的任意聯(lián)系都映射成一條無向邊;S13、為每個頂點和每一條邊都賦予 不重復(fù)的ID號,從而生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。以Facebook數(shù)據(jù)集為例,假如我們從 Facebook網(wǎng)站上獲取到了某年某月內(nèi)的整個數(shù)據(jù)集,數(shù)據(jù)集的內(nèi)容包括:用戶昵稱、好友、 已關(guān)注對象、居住地、所在公司\所在學(xué)校、生日等等。對于這份原生數(shù)據(jù),本發(fā)明的圖形數(shù) 據(jù)準(zhǔn)備模塊會找出所有不重復(fù)的用戶,然后給每個用戶當(dāng)作一個特定的頂點,賦予唯一的 ID號,并構(gòu)建用戶名和ID號之間的映射;然后根據(jù)用戶與用戶之間是否存在關(guān)系(例如:好 友關(guān)系)生成無向邊,并給每一條邊賦予唯一的ID號;最后將頂點和邊的ID按照結(jié)構(gòu)化的格 式生成圖形數(shù)據(jù)文件。
[0172] (二)步驟S2、圖形頂點采樣分層。該步驟利用在原始頂點集合中生成最大獨立集 合的方式,從原始圖形的頂點集合中采樣生成更小的頂點集合。假設(shè)圖形G=(V,E),其中,V 表示頂點集合,E表示邊的集合;那么集合S C 7是一個獨立集合的充要條件是:該集合中 任意兩個頂點的圖形距離大于或等于2(其中,圖形距離是指兩個頂點在圖形中的最短路 徑)。
[0173] 生成MIS方法是,隨機(jī)選取頂點^£¥,把^加入到集合3中,同時把^從¥中刪除;然 后再把Vl的所有鄰接節(jié)點從V中刪除;重復(fù)上述操作直至V為空。最后得到的獨立集合S就 是當(dāng)前圖形的MIS,也就是子圖的點集。
[0174] 該步驟會自動判斷是否應(yīng)停止采樣分層操作:在生成一系列粒度不斷粗化的頂點 集合¥1,¥2,.",'\^之后(其中1^表示子圖的個數(shù)),當(dāng)2 1^01311^61'(6())(01311^61'(6())表示原 始圖形的直徑)時,MIS采樣分層操作就停止。
[0175] (三)步驟S3、子圖頂點連接。計算原始圖形的平均度,并根據(jù)平均度,對一系列粒 度不斷粗化的圖形的頂點集合¥1,¥ 2,…,Vk所對應(yīng)的邊集進(jìn)行重構(gòu)。重構(gòu)邊集時,根據(jù)上一 層圖形的幾何特征尋找每個頂點的新鄰接點。
[0176] 假設(shè)將圖形表示為Gi(0<i<k),其對應(yīng)的頂點集合表示為Vi,對應(yīng)的邊集表示為 Ei。在重構(gòu)的過程中,為了讓粗粒度圖形保持細(xì)粒度圖形的幾何特征,不同粒度層次之間的 子圖的平均度是相同的,即,
[0177] avgDeg(Gi) =avgDeg(Gi-i)
[0178] 其中,avgDeg (Gi) = 2 | Ei | / | Vi |。假設(shè)細(xì)粒度圖形Gi-i = (Vi-i,Ei-i),粗粒度圖形Gi =(Vi,Ei)。其中Ei未知,則由平均度可知:
[0179] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0180] 即,|Ed = lE^I ( IVj/IV^I )。然后,計算粗粒度圖形中每個頂點所要連接的新鄰 接點個數(shù)m,P:
[0181 ] ni,P= | Ei | (ru -i,p/ | Ei-i |)
[0182] 其中,m-u表示細(xì)粒度圖形中的同一頂點的鄰接點個數(shù);0<i彡k,0彡p彡III。
[0183] 本發(fā)明利用廣度優(yōu)先搜索算法尋找鄰接點:選取圖Gi的頂點VpGl,該頂點同時存 在于圖Gi-沖;以力為根節(jié)點,在圖Gi-沖進(jìn)行BFS查找;如果當(dāng)前查找的頂點VqGVH也存在 于頂點集合乂:中,那么就把v q放入^的新鄰接點集合^中,然后繼續(xù)查找,直至鄰接節(jié)點的 個數(shù)達(dá)到預(yù)先指定的數(shù)量。不斷重復(fù)上述操作,直至遍歷完Vi中所有的頂點。
[0184] 如圖2所示,圖形布局的計算主要包括計算頂點所受合力、更新頂點位置,以及計 算出當(dāng)前子圖的正確布局后的遞歸布局計算等步驟。
[0185] (四)步驟S4、圖形頂點受力計算。首先隨機(jī)初始化每個頂點的位置,為了促進(jìn)算法 收斂,本發(fā)明設(shè)置以下的初始化方式:
[0186] Xi = mnc^o/o'/V。,% .=. rand2%、/V0
[0187] 其中,(Xi,yi)表示頂點i在二維空間中的坐標(biāo),randi和rand2表示兩個不同的隨 機(jī)數(shù),Vo表示原始圖形的頂點個數(shù)。這種隨機(jī)初始化有助于頂點被盡可能均勻地被初始化 在以原點為中心的正方形區(qū)域內(nèi)(該正方形區(qū)域的大小與頂點的個數(shù)成正比關(guān)系),從而避 免頂點的初始位置過于分散或過于重疊。
[0188]本發(fā)明結(jié)合多極擴(kuò)展定理,基于頂點的空間分布,構(gòu)建空間劃分樹,即把相同區(qū)域 的頂點歸到同一個空間樹節(jié)點內(nèi),根據(jù)當(dāng)前頂點與其他頂點的距離,近似計算每個頂點所 受的斥力。
[0189]本發(fā)明利用K維樹作為空間劃分樹,并采用"軸對齊分割"的方法構(gòu)建KD-Tree。選 擇坐標(biāo)系中的某一坐標(biāo)軸的某一位置的垂直分割面進(jìn)行空間的分割。由于本發(fā)明研究的是 二維圖形的布局,因此這里只討論二維坐標(biāo)系中KD-Tree的構(gòu)建方法:首先,將整個二維空 間初始為樹的根節(jié)點,并根據(jù)當(dāng)前樹的深度選擇垂直分割面所在的坐標(biāo)軸(例如,在根節(jié)點 時選擇x軸,當(dāng)深度加1時選擇y軸,以此方式輪換坐標(biāo)軸);然后,以某種方式指定垂直分割 面位于坐標(biāo)軸的具體位置,并用該分割面將當(dāng)前的空間區(qū)域劃分成兩部分,生成左右子節(jié) 點。不斷重復(fù)以上步驟,直至當(dāng)前區(qū)域的點的個數(shù)小于某個閾值。本發(fā)明采用二進(jìn)制分割法 指定垂直分割面位于坐標(biāo)軸上的具體位置:(假設(shè),把x軸當(dāng)作分割面所在坐標(biāo)軸)首先,將 該區(qū)域內(nèi)所有頂點的x坐標(biāo)轉(zhuǎn)換為二進(jìn)制數(shù)字,然后比較所有二進(jìn)制數(shù)字的最高有效位,把 最高有效位為〇的點放入左子節(jié)點、為1的點放入右子節(jié)點;最后,當(dāng)該區(qū)域內(nèi)的所有頂點被 劃分完之后,把比較的二進(jìn)制位從最高有效位左移一位,以供下次選擇x軸劃分時使用。 [0190]根據(jù)多極擴(kuò)展定理,本發(fā)明將通過遍歷KD-Tree來計算斥力。對于距離當(dāng)前頂點足 夠遠(yuǎn)的一群頂點,采用如下方式進(jìn)行計算:
[0191]首先,假設(shè)C= {ci,-_,cm}是由m個帶電荷Q(C) = {qi,-_,qm}的粒子組成的集合,這 m個帶電粒子位于不同的位置p(C) = {pi,…,pm}。其中,所有頂點的位置= (x, y) e E2 都被標(biāo)識為復(fù)數(shù)形式= x + iy e C。
[0192]假設(shè)一個半徑為r且圓心為ZQ的圓形包含了 m個帶有電荷且位于不同位置的粒子; 那么,對于任何滿足I z-zo | >r的位置z GC,這m個帶電粒子對z產(chǎn)生的總的電勢能用以下公 式計算:
(1) 。該公式進(jìn)行的是k階多極擴(kuò)展,這 里,k被設(shè)置為4,目的是使估計值的誤差小于10弋
[0195] 根據(jù)公式(1)計算得到的帶電粒子在電場中的電勢能,進(jìn)一步計算電場力。處于 位置z且?guī)挝浑姾傻牧W邮艿降碾妶隽κ牵?br>[0196] (Re(e/(z)),-Im(e/(z))) (2)
[0197] 其中:
,Re表示復(fù)數(shù)的實部,Im表示復(fù)數(shù)的虛部。
[0198] 基于上述方式,假設(shè)N表示KD-Tree中圓心為zo、半徑為r的節(jié)點,該節(jié)點包含了k個 帶電粒子{vo,…,vk}。為了近似計算任意一個位置為z的粒子vGV所受的斥力,要從KD-Tree 的根節(jié)點開始,前序遍歷:在節(jié)點N,如果| z-z〇| >r,那么就用公式(1)和(2)近似計算該節(jié)點 的粒子群對v產(chǎn)生的斥力。反之,則根據(jù)節(jié)點類型做不同處理:如果該節(jié)點是內(nèi)部節(jié)點,則繼 續(xù)遍歷它的左右子節(jié)點;如果該節(jié)點是葉子節(jié)點,則按原始的方式逐一計算v與該節(jié)點中其 他粒子之間的斥力。
[0199] 基于彈力與距離的對數(shù)關(guān)系,本發(fā)明采用的彈力計算公式為:
[0200] Attraction = d2log(d/d/ )
[0201] 其中,d表示兩個鄰接頂點之間的歐拉距離,表示彈簧的原長。
[0202] 每個頂點所受的合力包括來自其他所有頂點的斥力,以及來自鄰接頂點的彈力, 所以本發(fā)明計算頂點所受合力如下:
[0203] Ftotal = Frepl+Fa ttr
[0204]其中,?1;。1;31、?卿1、?3咖分別表示頂點所受的合力、斥力、彈力 。
[0205] (五)步驟S5、頂點位置更新。根據(jù)每個頂點所合力的大小和方向?qū)㈨旤c移動到新 的位置,從而逐步減小頂點所受的力;對所有頂點進(jìn)行多次迭代計算,使圖形系統(tǒng)達(dá)到穩(wěn)定 平衡狀態(tài),從而得到最終布局。
[0206] 由于圖形的初始布局是隨機(jī)生成的,當(dāng)初始布局比較差時,在計算過程中如果某 些頂點移動太遠(yuǎn)或太近,都可能導(dǎo)致某些頂點在兩個特定的位置之間來回振蕩,使圖形系 統(tǒng)難以穩(wěn)定。為了科學(xué)地計算每個頂點移動的位移,本發(fā)明改進(jìn)并應(yīng)用傳統(tǒng)的模擬退火技 術(shù)。由力引導(dǎo)布局算法的原理可知,計算布局的過程實際就是每個頂點尋找最佳位置的過 程,相當(dāng)于把布局的計算問題轉(zhuǎn)換為一個全局優(yōu)化問題;而模擬退火就是一種能夠在一定 時間內(nèi)找到全局最優(yōu)解的技術(shù)。本發(fā)明改進(jìn)模擬退火技術(shù),計算頂點移動位移的公式如下:
[0208] 其中,F(xiàn)tcltal(v)表示頂點v所受的合力,t表示模擬退火過程中的溫度。t被初始化為 歹,(其中,K是一個超參數(shù),本發(fā)明將其設(shè)置為0.1 ;V表示當(dāng)前圖形的頂點總數(shù))。另 外,t會隨著迭代次數(shù)的增加而遞減:
[0209] t = t* 入
[0210]其中,A是一個超參數(shù),本發(fā)明將其設(shè)置為0.9。
[0211] 更新頂點的位置,根據(jù)每個頂點移動的位移,將頂點移動到新的位置:
[0212] posnew(v) = pos〇id (v)+di sp ( V )
[0213] 其中,p0Snew(v)表示頂點V的新位置,p0Sc)ld( v)表示頂點¥的舊位置,disp(v)表示 頂點V需要移動的位移。
[0214] (六)步驟S6、圖形布局遞歸計算。計算最粗粒度圖形的布局,隨機(jī)初始化最粗粒度 圖形的頂點位置,根據(jù)前面所述的方法計算最終的穩(wěn)定布局。由于最粗粒度圖形是頂點個 數(shù)最少的子圖,因此可以很快計算出該圖形的布局。
[0215] 本發(fā)明將粗粒度布局作為細(xì)粒度布局的骨架,遞歸計算更細(xì)粒度圖形的布局。用 最粗粒度圖形的頂點位置,初始化更細(xì)粒度圖形的頂點的位置,然后再計算細(xì)粒度圖形的 布局。不斷遞歸計算,直至得到原始圖形的最終布局。
[0216](七)步驟S7、圖形布局層次化繪制。本發(fā)明將利用非參數(shù)估計方法一一核密度估 計,來計算頂點的概率密度分布。核密度是一種估計連續(xù)隨機(jī)變量的概率密度函數(shù)的非參 數(shù)估計方法。假設(shè)頂點坐標(biāo)(x,y)是一種連續(xù)隨機(jī)變量,{( X1,yi),…,(xn,yn)}是符合概率 密度函數(shù)f(x,y)的n個獨立同分布的樣本點,那么總體的核密度估計為:
[0218]其中,K表示核函數(shù);hx、hy表示帶寬,是一個調(diào)整核密度估計曲線的平滑程度的參 數(shù)。核函數(shù)的選定非常重要。為了表現(xiàn)出頂點的概率密度比圖形中的空白位置要高,本發(fā)明 選定均勻?qū)ΨQ的二維高斯函數(shù)作為核函數(shù)。二維高斯函數(shù)的公式如下:
[0220] 其中,iaPiiy表示均值,(^和力表示方差。由于每個頂點都處于以自身為最高點的 二維高斯曲面中,當(dāng)兩個頂點互相靠近時,彼此的二維高斯曲面將互相疊加,從而估計出頂 點的概率密度分布。
[0221] 本發(fā)明根據(jù)已計算好的頂點概率密度分布,將互相堆疊或鄰近的頂點合并成一個 頂點,并且合并相應(yīng)的邊,并將頂點和無向邊通過GPU渲染到屏幕上,從而繪制出粗粒度圖 形的布局,便于觀察圖形的整體特征。
[0222] 本發(fā)明設(shè)計了兩個科學(xué)有效的交互操作:縮放操作和平移操作。利用縮放操作, 可以縮小和放大圖形。特別是當(dāng)放大圖形某一局部時,可以將粗粒度圖形的單個頂點分裂 成多個頂點,并繪制相應(yīng)的邊,顯示出細(xì)粒度層次的布局。利用平移操作,可以將當(dāng)前粒度 的圖形在屏幕外部分移動到屏幕內(nèi),從而進(jìn)行觀察。
[0223] 縮放操作的具體過程為(假設(shè)每次縮小或放大的倍數(shù)為m):首先,將鼠標(biāo)移動到需 要縮放的位置,記錄當(dāng)前的鼠標(biāo)位置P;接著,如果進(jìn)行的是放大操作,則將所有頂點的坐標(biāo) 乘以倍數(shù)m,反之則乘以1/m,記錄當(dāng)前的鼠標(biāo)位置為q;然后將錨點從位置q平移到位置p,其 他頂點則按照同樣的平移量I q_P I進(jìn)行平移;最后繪制圖形。
[0224] 平移操作的具體過程為:首先,將鼠標(biāo)移動到需要平移的位置,記錄此時的鼠標(biāo)位 置P;接著,拖拽整個圖形至目標(biāo)位置,記錄此時的鼠標(biāo)位置為q;然后,計算錨點的平移量, 并根據(jù)平移量移動所有頂點的坐標(biāo);最后繪制圖形。
[0225] 如圖3所示,一種基于層次化模型的數(shù)據(jù)可視化系統(tǒng)的結(jié)構(gòu)框圖,該基于層次化模 型的數(shù)據(jù)可視化系統(tǒng)包括:
[0226] 圖形數(shù)據(jù)準(zhǔn)備模塊:給每個頂點和每一條無向邊都賦予特定的ID號,并按照一定 格式生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。
[0227] 圖形頂點采樣分層模塊:對原始圖形的頂點集合進(jìn)行遞歸采樣,生成頂點個數(shù)逐 漸減少的多個頂點集合。
[0228] 子圖頂點連接模塊:根據(jù)原始圖形的幾何結(jié)構(gòu)特征,采用廣度優(yōu)先搜索方式,連接 距離鄰近的頂點,生成子圖的邊集,得到完整的子圖數(shù)據(jù)。
[0229] 圖形頂點受力計算模塊:隨機(jī)初始化原始圖形中每個頂點的位置,近似計算頂點 所受斥力,并具體計算頂點所受彈力,將斥力和彈力相加得到合力。
[0230]頂點位置更新模塊:根據(jù)每個頂點所受的合力,將頂點移動到新的位置。
[0231] 圖形布局遞歸計算模塊:從最粗粒度的子圖開始計算布局,并以粗粒度圖形布局 為基礎(chǔ),遞歸地計算每個子圖的布局,最終得到原始圖形的布局。
[0232] 圖形布局層次化繪制模塊:根據(jù)屏幕大小,繪制合適粒度層次的子圖,或者直接繪 制原始圖形;允許用戶縮放或移動圖形。
[0233] 綜上所述,本發(fā)明的工作原理:本發(fā)明是一種基于層次化模型的數(shù)據(jù)可視化方法。 方法針對基本布局算法計算大圖時出現(xiàn)振蕩導(dǎo)致布局效果不理想,以及迭代次數(shù)多、運行 時間長的問題,本發(fā)明提出了層次化模型的方法。對大圖進(jìn)行采樣得到子圖,并對該子圖繼 續(xù)采樣生成更小的子圖,按照這種方式遞歸地生成一系列子圖,從而形成粒度不斷粗化 (粒度越粗,表示頂點個數(shù)越少)的層次化結(jié)構(gòu);接著,隨機(jī)初始化最粗粒度圖形的布局并計 算其正確布局,然后用該布局對下一層細(xì)粒度圖形進(jìn)行初始化,再繼續(xù)計算該細(xì)粒度圖形 的正確布局;以此方式遞歸地計算出原始圖形的最終布局。這種層次化模型的方法降低了 振蕩的概率,提高了布局的效果,同時減少了迭代次數(shù),加快了運行的時間。其次,針對計算 斥力的效率低的問題,本發(fā)明根據(jù)多極擴(kuò)展定理,利用KD-Tree對斥力進(jìn)行了近似計算,從 而大幅度提高算法效率。
[0234] 另外,在改進(jìn)和優(yōu)化布局算法之后,本發(fā)明進(jìn)一步研究圖形的繪制和交互方式。由 于大圖的數(shù)據(jù)量多,導(dǎo)致頂點大量重疊,不利于用戶進(jìn)行可視化分析。對此,本發(fā)明設(shè)計了 層次化繪制圖形的算法:利用KDE非參數(shù)估計方法計算大圖的頂點概率密度分布,然后根據(jù) 密度分布情況,合并重疊或靠近的頂點及其對應(yīng)的邊,從而展現(xiàn)粗粒度圖形的布局,呈現(xiàn)出 大圖的基本特征;同時,當(dāng)放大觀察局部細(xì)節(jié)時,被合并的頂點或邊也可以被分裂復(fù)原。根 據(jù)這種層次化繪制圖形的策略,本發(fā)明還設(shè)計了必要而有效的交互方式:縮放操作和平移 操作??s放操作是根據(jù)圖形的繪制方式設(shè)計的:當(dāng)圖形的某一局部被放大時,算法會根據(jù)頂 點的密度分布,將原本合并的頂點分裂成原來的多個頂點,相應(yīng)地恢復(fù)原來的邊,從而顯示 出細(xì)粒度圖形的布局。用戶進(jìn)行縮放操作后,部分圖形會在屏幕之外無法觀看,而平移操作 針對這個問題向用戶提供了移動圖形的功能。當(dāng)用戶對圖形的某一位置按住并拖拽鼠標(biāo), 平移操作就會重新渲染圖形布局,將原本在屏幕外部的布局顯示到屏幕內(nèi)部。
[0235] 上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的 限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化, 均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項】
1. 一種基于層次化模型的數(shù)據(jù)可視化方法,其特征在于,所述數(shù)據(jù)可視化方法包括下 列步驟: 51、 圖形數(shù)據(jù)準(zhǔn)備步驟,將原生數(shù)據(jù)集中的對象和對象之間的關(guān)系映射成頂點和無向 邊,并分別為所有的頂點和無向邊賦予ID號,按照一定格式生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件; 52、 圖形頂點采樣分層步驟,對原始圖形的頂點集合進(jìn)行遞歸采樣,生成頂點個數(shù)逐漸 減少的多個頂點集合; 53、 子圖頂點連接步驟,根據(jù)原始圖形的幾何結(jié)構(gòu)特征,結(jié)合廣度優(yōu)先捜索的方法,連 接距離鄰近的頂點,生成子圖的邊集,得到完整的子圖數(shù)據(jù); 54、 圖形頂點受力計算步驟,隨機(jī)初始化原始圖形中每個頂點的位置,近似計算頂點所 受斥力,并具體計算頂點所受彈力,將斥力和彈力相加得到合力; 55、 頂點位置更新步驟,根據(jù)每個頂點所受的合力,將頂點移動到新的位置; 56、 圖形布局遞歸計算步驟,從最粗粒度的子圖開始計算布局,并W粗粒度圖形布局為 基礎(chǔ),遞歸地計算每個子圖的布局,最終得到原始圖形的布局; 57、 圖形布局層次化繪制步驟,根據(jù)屏幕大小,繪制合適粒度層次的子圖,或者直接繪 制原始圖形;允許用戶縮放或移動圖形。2. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S4、圖形 頂點受力計算步驟具體如下:541、 假設(shè)C=ki,…,Cm}是由m個帶電荷Q(C) = {qi,…,qm}的粒子組成的集合,運m個帶 電粒子位于不同的位置P(C) = {pi,…,PmK其中,所有頂點的位置 都被標(biāo) 識為復(fù)數(shù)形式假設(shè)一個半徑為r且圓屯、為ZO的圓形包含了 m個帶有電荷且位于不同位置的粒子;那么, 對于任何滿足I Z-ZOI〉r的位置Z GC,運m個帶電粒子對Z產(chǎn)生的總的電勢能用W下公式計 算:(1) 其中式(1)進(jìn)行的是k階多極擴(kuò)展,運里,k 被設(shè)置為4;542、 根據(jù)公式(1)計算得到的帶電粒子在電場中的電勢能,進(jìn)一步計算處于位置Z且?guī)?單位電荷的粒子受到的電場力是: (Re(e'(z)),-Im(e'(z))) (2) 其中I示復(fù)數(shù)的實部,Im表示復(fù)數(shù)的虛部; 543、 基于上述式(2),假設(shè)N表示KD-Tree中圓屯、為Z0、半徑為r的節(jié)點,該節(jié)點包含了k個 帶電粒子Ivo,…,vk},為了近似計算任意一個位置為Z的粒子VEV所受的斥力,要從邸-Tree 的根節(jié)點開始,前序遍歷:在節(jié)點N,如果I z-zol〉r,那么就用公式(1)和(2)近似計算該節(jié)點 的粒子群對V產(chǎn)生的斥力;反之,則根據(jù)節(jié)點類型做不同處理:如果該節(jié)點是內(nèi)部節(jié)點,則繼 續(xù)遍歷它的左右子節(jié)點;如果該節(jié)點是葉子節(jié)點,則按原始的方式逐一計算V與該節(jié)點中其 他粒子之間的斥力。3. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S6、圖形 布局遞歸計算步驟具體如下: 561、 計算最粗粒度圖形的布局:隨機(jī)初始化最粗粒度圖形的頂點位置,根據(jù)前面所述 的方法計算最終的穩(wěn)定布局; 562、 遞歸計算更細(xì)粒度圖形的布局:用最粗粒度圖形的頂點位置,初始化更細(xì)粒度圖 形的頂點的位置,然后再計算細(xì)粒度圖形的布局,不斷遞歸計算,直至得到原始圖形的最終 布局。4. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S7、圖形 布局層次化繪制步驟具體如下: 571、 利用非參數(shù)核密度估計方法,來計算頂點的概率密度分布,假設(shè)頂點坐標(biāo)(x,y)是 一種連續(xù)隨機(jī)變量,{(Xi,yi),…,(Xn,yn)}是符合概率密度函數(shù)f (X,y)的n個獨立同分布的 樣本點,那么總體的核密度估計為:其中 前參數(shù); 572、 i 式如下: 其中,Jix和Jiy表示均值,Ox和Oy表示方差; 573、 根據(jù)已計算好的頂點概率密度分布,選擇適合屏幕顯示的布局粒度層次來繪制相 應(yīng)的布局。5. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S5、頂點 位置更新步驟具體如下: 551、 采用模擬退火技術(shù)更新頂點的位置,其中計算頂點移動位移的具體公式如下:其中,F(xiàn)tDtal(V)表示頂點V所受的合力,t表示模擬退火過程中的溫度,在計算不同粒度 層次圖形的布局時,t的初始溫度都與圖形大小直接相關(guān),初始化t的公式如下:其中,K是超參數(shù),本發(fā)明將其設(shè)置為0.1 ;V表示當(dāng)前圖形的頂點總數(shù),另外,在計算單 個圖形的布局時,t會隨著迭代次數(shù)的增加而遞減: t = t本A 其中,A是一個超參數(shù),本發(fā)明將其設(shè)置為0.9; 552、 更新頂點的位置,根據(jù)每個頂點移動的位移,將頂點移動到新的位置: pOSnew(v) =p〇S〇ld(v)+disp(v) 其中,pOSnew(V)表示頂點V的新位置,pOSold(V)表示頂點V的舊位置,disp(V)表示頂點V 需要移動的位移。6. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S3、子圖 頂點連接步驟具體如下: 531、 計算圖形的平均度,假設(shè)將圖形表示為Gi(0《i《k),其對應(yīng)的頂點集合表示為Vi, 對應(yīng)的邊集表示為Ei,為了讓粗粒度圖形保持細(xì)粒度圖形的幾何特征,需要保持不同層次 之間的圖的平均度: avgDeg(Gi) =avgDeg(Gi-i) 其中,avgDeg(Gi) = 2 I Ei I / I Vi I,假設(shè)細(xì)粒度圖形Gi-I = (Vi-I,Ei-I),粗粒度圖形Gi = (Vi, Ei),其中Ei未知,則由平均度可知: 2|Ei|/|Vi|=2|Ei-i|/|Vi-i 即,I Ei I = I Ei-I I ( I Vi I / I Vi-I I ),然后,計算粗粒度圖形中每個頂點所要連接的新鄰接點 個數(shù)m,p: Hi,P= I Ei I (rii-l,p/ I Ei-I I ) 其中,m-i,p表示細(xì)粒度圖形中的同一頂點的鄰接點個數(shù);0《i《k,0《p《 |Vi| ; 532、 尋找每個頂點的鄰接點,采用廣度優(yōu)先捜索算法尋找鄰接點:選取圖Gi的頂點VpG Vi,該頂點同時存在于圖Gi-沖;Wvp為根節(jié)點,在圖Gi-沖進(jìn)行BFS查找;如果當(dāng)前查找的頂 點VqG Vl-地存在于頂點集合Vl中,那么就把Vq放入Vp的新鄰接點集合Np中,然后繼續(xù)查找, 直至鄰接節(jié)點的個數(shù)達(dá)到預(yù)先指定的數(shù)量,不斷重復(fù)上述操作,直至遍歷完Vi中所有的頂 點。7. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S2、圖形 頂點采樣分層步驟具體如下: 521、 采樣生成子圖的頂點集合,假設(shè)圖形G= (V,E),其中,V表示頂點集合,E表示邊的 集合;那么集合S C 1/是一個獨立集合的充要條件是:該集合中任意兩個頂點的圖形距離 大于或等于2;即,集合S中的任意兩個頂點在圖G中都不是鄰接點;圖G可W生成多個最大獨 立集合,但每個最大獨立集合都不是其他最大獨立集合的子集;生成最大獨立集合的步驟 是,隨機(jī)選取頂點ViGV,把Vi加入到集合S中,同時把Vi從V中刪除;然后再把Vi的所有鄰接 節(jié)點從V中刪除;重復(fù)上述操作直至V為空;最后得到的獨立集合S就是當(dāng)前圖形的最大獨立 集合,也就是子圖的點集; 522、 判斷是否應(yīng)停止采樣分層操作,在生成一系列粒度不斷粗化的頂點集合Vi,V2,…, Vk之后,其中k表示子圖的個數(shù),當(dāng)2k《Diamete;r(G〇)時,采樣分層操作停止;其中,Diameter (Go)表示原始圖形的直徑。8. 根據(jù)權(quán)利要求1所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在,所述S1、圖形 數(shù)據(jù)準(zhǔn)備步驟具體如下: Sl 1、將原生數(shù)據(jù)集中的每個對象都映射成一個頂點; 512、 將兩個對象之間的任意聯(lián)系都映射成一條無向邊; 513、 為每個頂點和每一條邊都賦予唯一的ID號,生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。9. 一種基于層次化模型的數(shù)據(jù)可視化系統(tǒng),其特征在于,所述數(shù)據(jù)可視化系統(tǒng)包括: 圖形數(shù)據(jù)準(zhǔn)備模塊,用于給每個頂點和每一條無向邊都賦予特定的ID號,并按照一定 格式生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件; 圖形頂點采樣分層模塊,用于對原始圖形的頂點集合進(jìn)行遞歸采樣,生成頂點個數(shù)逐 漸減少的多個頂點集合; 子圖頂點連接模塊,用于根據(jù)原始圖形的幾何結(jié)構(gòu)特征,采用廣度優(yōu)先捜索方式,連接 距離鄰近的頂點,生成子圖的邊集,得到完整的子圖數(shù)據(jù); 圖形頂點受力計算模塊,用于隨機(jī)初始化原始圖形中每個頂點的位置,近似計算頂點 所受斥力,并具體計算頂點所受彈力,將斥力和彈力相加得到合力; 頂點位置更新模塊,用于根據(jù)每個頂點所受的合力,將頂點移動到新的位置; 圖形布局遞歸計算模塊,用于從最粗粒度的子圖開始計算布局,并W粗粒度圖形布局 為基礎(chǔ),遞歸地計算每個子圖的布局,最終得到原始圖形的布局; 圖形布局層次化繪制模塊,用于根據(jù)屏幕大小,繪制合適粒度層次的子圖,或者直接繪 制原始圖形,并允許用戶縮放或移動圖形。10.根據(jù)權(quán)利要求9所述的基于層次化模型的數(shù)據(jù)可視化方法,其特征在于,所述圖形 頂點受力計算模塊的工作過程如下: 假設(shè)C= ki,…,Cm}是由m個帶電荷Q(C) =扣,…,qm}的粒子組成的集合,運m個帶電粒 子位于不同的位置P(C) = {pi,…,PmK其中,所有頂點的位1皆巧皮標(biāo)識為 復(fù)數(shù)形式假設(shè)一個半徑為r且圓屯、為ZO的圓形包含了 m個帶有電荷且位于不同位置的粒子;那么, 對于任何滿足I Z-ZOI〉r的位置Z GC,運m個帶電粒子對Z產(chǎn)生的總的電勢能用W下公式計 算: (1) 其中,:公式(1)進(jìn)行的是k階多極擴(kuò)展,運里,k 被設(shè)置為4; 根據(jù)公式(1)計算得到的帶電粒子在電場中的電勢能,進(jìn)一步計算處于位置Z且?guī)挝?電荷的粒子受到的電場力是: (Re(e'(z)),-Im(e'(z))) (2) 其中I示復(fù)數(shù)的實部,Im表示復(fù)數(shù)的虛部; 所述圖形布局遞歸計算模塊的工作過程如下: 計算最粗粒度圖形的布局:隨機(jī)初始化最粗粒度圖形的頂點位置,根據(jù)前面所述的方 法計算最終的穩(wěn)定布局; 遞歸計算更細(xì)粒度圖形的布局:用最粗粒度圖形的頂點位置,初始化更細(xì)粒度圖形的 頂點的位置,然后再計算細(xì)粒度圖形的布局,不斷遞歸計算,直至得到原始圖形的最終布 局; 所述圖形布局層次化繪制模塊其工作過程如下: 利用非參數(shù)核密度估計方法,來計算頂點的概率密度分布,假設(shè)頂點坐標(biāo)(x,y)是一種 連續(xù)隨機(jī)變量,{(Xi,yi),???,(Xn,yn)}是符合概率密度函數(shù)f(x,y)的n個獨立同分布的樣本 點,那么總體的核密度估計為:其中,K表示核函數(shù);hx、hy表示帶寬,是一個調(diào)整核密度估計曲線的平滑程度的參數(shù); 選定均勻?qū)ΨQ的二維高斯函數(shù)作為核函數(shù),其中所述二維高斯函數(shù)的公式如下:其中,^1和1%表示均值,Ox和Oy表示方差; 根據(jù)已計算好的頂點概率密度分布,選擇適合屏幕顯示的布局粒度層次來繪制相應(yīng)的 布局; 所述頂點位置更新模塊其工作過程如下: 采用模擬退火技術(shù)更新頂點的位置,其中計算頂點移動位移的具體公式如下:其中,F(xiàn)tDtal(V)表示頂點V所受的合力,t表示模擬退火過程中的溫度,在計算不同粒度 層次圖形的布局時,t的初始溫度都與圖形大小直接相關(guān),初始化t的公式如下:其中,K是超參數(shù),本發(fā)明將其設(shè)置刃0.1 ;V表不當(dāng)前圖形的頂點總數(shù),另外,在計算單 個圖形的布局時,t會隨著迭代次數(shù)的增加而遞減: t = t本A 其中,A是一個超參數(shù),本發(fā)明將其設(shè)置為0.9; 更新頂點的位置,根據(jù)每個頂點移動的位移,將頂點移動到新的位置: pOSnew(v) =p〇S〇ld(v)+disp(v) 其中,pOSnew(V)表示頂點V的新位置,pOSold(V)表示頂點V的舊位置,disp(V)表示頂點V 需要移動的位移; 所述子圖頂點連接模塊其工作過程如下: 計算圖形的平均度,假設(shè)將圖形表示為Gi(0《i《k),其對應(yīng)的頂點集合表示為Vi,對應(yīng) 的邊集表示為Ei,為了讓粗粒度圖形保持細(xì)粒度圖形的幾何特征,需要保持不同層次之間 的圖的平均度: avgDeg(Gi) =avgDeg(Gi-i) 其中,avgDeg(Gi) = 2 I Ei I / I Vi I,假設(shè)細(xì)粒度圖形Gi-I = (Vi-I,Ei-I),粗粒度圖形Gi = (Vi, Ei),其中Ei未知,則由平均度可知: 2. Ei 1/1 Vi I =2 I Ei-11/1 Vi-I 即,I Ei I = I Ei-I I ( I Vi I / I Vi-I I ),然后,計算粗粒度圖形中每個頂點所要連接的新鄰接點 個數(shù)m,p: Ili,P= Ei (ni-l,p/ Ei-I ) 其中,n i -1, P表示細(xì)粒度圖形中的同一頂點的鄰接點個數(shù);0《i《k,0《P《IV i I ; 尋找每個頂點的鄰接點,采用廣度優(yōu)先捜索算法尋找鄰接點:選取圖Gi的頂點VpG Vi, 該頂點同時存在于圖Gi-沖;Wvp為根節(jié)點,在圖Gi-沖進(jìn)行WS查找;如果當(dāng)前查找的頂點Vq GVi-I也存在于頂點集合Vi中,那么就把Vq放入Vp的新鄰接點集合Np中,然后繼續(xù)查找,直至 鄰接節(jié)點的個數(shù)達(dá)到預(yù)先指定的數(shù)量,不斷重復(fù)上述操作,直至遍歷完Vi中所有的頂點; 所述圖形頂點采樣分層模塊其工作過程如下: 采樣生成子圖的頂點集合,假設(shè)圖形G=(V,E),其中,V表示頂點集合,E表示邊的集合; 那么集合5 C護(hù)是一個獨立集合的充要條件是:該集合中任意兩個頂點的圖形距離大于 或等于2;即,集合S中的任意兩個頂點在圖G中都不是鄰接點;圖G可W生成多個最大獨立集 合,但每個最大獨立集合都不是其他最大獨立集合的子集;生成最大獨立集合的步驟是,隨 機(jī)選取頂點Vi G V,把Vi加入到集合S中,同時把Vi從V中刪除;然后再把Vi的所有鄰接節(jié)點從 V中刪除;重復(fù)上述操作直至V為空;最后得到的獨立集合S就是當(dāng)前圖形的最大獨立集合, 也就是子圖的點集; 判斷是否應(yīng)停止采樣分層操作,在生成一系列粒度不斷粗化的頂點集合Vi,V2,…,Vk之 后,其中1^表示子圖的個數(shù),當(dāng)2'"《〇1曰1116161'(6〇)時,采樣分層操作停止;其中,01曰1116161'(6〇) 表示原始圖形的直徑; 所述圖形數(shù)據(jù)準(zhǔn)備模塊其工作過程如下: 將原生數(shù)據(jù)集中的每個對象都映射成一個頂點; 將兩個對象之間的任意聯(lián)系都映射成一條無向邊; 為每個頂點和每一條邊都賦予唯一的ID號,生成結(jié)構(gòu)化的圖形數(shù)據(jù)文件。
【文檔編號】G06F17/30GK105912562SQ201610162397
【公開日】2016年8月31日
【申請日】2016年3月21日
【發(fā)明人】蔡毅, 陳震鴻, 閔華清
【申請人】華南理工大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1