国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

      【發(fā)明內容】

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