筆記與流年

沒有太多的話,這只是一個普通的Blog,想用它來記錄我的閱讀和學習筆記。

複雜關係圖的可視化

By Mountain • Oct 18th, 2007 • Category: 技術話題

关系图

儅我們擁有成千上萬的人與人的關係數據之後,如何才能把這些數據以合適的圖形方式呈現給大家呢?直觀的講,關係近的這些人應該聚在一起,而關係遠的人在圖上也離得比較遠。雖然沒有嚴格的證明,但我們尋找到一種動力學方法來產生這樣的圖形。

假想圖中的節點都分佈在一個平面上,每一個節點都有它的位置。節點與節點之間有一種作用力—儅距離比較近時,表現為排斥;距離很遠時,表現為吸引力。另一方面,圖中的邊,相當於兩個節點上加裝了彈簧,距離越遠引力越大。在有了這種節點和節點作用之後,圖就可以自然演化。但爲了避免讓圖的演變無法終止,我們可以再引入摩擦力來耗損能量,摩擦力的大小只和速度有關係,方向和速度相反。當圖中所有節點的速度小於指定的閾值演化就終止。

在上述算法下,我們很容易就把複雜關係圖可視化呈現出來。這個算法的内存開銷比較小,是|V|+|E|的常數倍;而時間開銷有兩個因素:一個是演化每一步的計算量,這個是|V|^2+|E|的常數倍;另一個是演化本身到終止需要多少步,根據經驗需要的步數大致是ln|V|的常數倍。

這裡圖表顯示了一個幾千個節點的計算過程,縂的耗時大概用來三個小時。

Mountain is
Email this author | All posts by Mountain

3 Responses »

  1. 这个算法很像分子动力学啊,可以试一试能量优化的方法,不带速度,计算某一个构象的能量和梯度,沿着梯度方向改变构象一小步再计算能量和梯度直到梯度小于阈值。

  2. 我是上海的Eddie.最近我正在和一群朋友研究Wiki,实在找不到你的联系方式.方便的话,可否通过留言的邮件地址和我联系?

  3. 这位仁兄,都转型做互联网了,就花心思改改这背景颜色吧。

Leave a Reply