六度分隔與最短路徑

來源:互聯網
上載者:User

【最短路徑】

圓明園的北部有一個迷宮,據說古時候每次有慶典在圓明園的時候,皇帝會派一些宮女走迷宮,看誰

最先走到迷宮內的亭子,會有不錯的獎賞。

迷宮問題對數學家們來講雖然是小兒科但在電腦課程上卻非常重要,因為不同的求解會涉及到遞迴

,廣度優先和深度優先等演算法。

迷宮畢竟是一個放置在2維空間的有限聯絡的網路,也就是說,迷宮裡的每一個點,最多隻和周圍的4

個點(上下左右)發生關係,而且這些點的位置是固定的。

六度分割通常用來描述一個廣闊的社會網路(SN),現在大部分的社會網路服務都提供了搜尋功能,

即搜尋出一個使用者到達另外一個使用者的最短路徑,也就是找出這兩個使用者之間通過最少的使用者的連結

一般的SN提供的搜尋都是4度的,也就是例如A-B-C-D-E 稱為4度的分隔。提供5度搜尋和6度搜尋的幾

乎寥寥無幾,當然一方面是5,6度分隔的使用者很少,大部分的使用者都應該在4度內,另外一個方面是5

,6度分隔的搜尋在實際計算上也涉及非常大的運算量。

【SN搜尋演算法】

如果說尋找兩個人之間的最小分隔的路徑和尋找最短路徑可以類比,那麼唯一不同的是SN上每個節點

的聯絡可以非常的廣闊,不只是上下左右,而是十個甚至上百個聯絡。這是是一個多維空間內的最短

路徑的尋找。假設一個使用者平均有n個好友,那麼粗數量級估計一個使用者的4度好友大約有n×n×n×n+n×

n×n+n×n+n ~ n^4,無疑是一個非常恐怖的數目。因此採用傳統的遞迴的方法顯然是不大現實的。

當然,事情並非這麼麻煩,有簡潔的方法可以加快找到使用者之間的最小分隔:不單是從一個使用者搜尋

,而是從兩個使用者同時搜尋,而看兩個使用者的2度之內的使用者是否有相同:
A-B-C
E-D-C
A和E的處在在兩度分隔的使用者基本上數目估計都在n的平方。問題變成了比較n^2和n^2之間有沒有相同

,這個計算的時間等同於2×n^2的排序所需要的時間。

【SN索引】

那麼能否繼續加快速度?
當然可以,可以提前對使用者的好友進行索引,對好友的好友進行索引,這樣在未來進行關係的搜尋時

會大大加快:

A: {A1} {A2} A1為A的好友的集合,A2為A的好友的好友的集合
E: {E1} {E2}

那麼
1度分隔為: A 屬於{E1},等同於E屬於 {A1}
2度分隔為: A 屬於{E2},等同於E屬於 {A2},{A1}{E1}有共同項。
3度分隔為: {A1} {E2}有共同項,等同於A屬於 {E2}
4度分隔為: {A2} {E2}有共同項

【SN關係的更新】

當然,發現是一個核心問題,另外一個問題就是更新,因為SN的關係不會是一成不變的,在一個活躍

的SN社區裡,每天使用者之間的關係的更新更是可觀。這裡只考慮關係添加的例子:

A: {A1} {A2}
E: {E1} {E2}

當A 與 E 直接建立了好友關係後,應該說整合系統的關係全都變化了,因為這個新的關係一定會導致

一些關係的短路,從而導致很多現有的關係的調整。但是因為我們只儲存2度分隔以內的關係,也只關

心兩度分隔以內的關係,因此當發生了一個新的關係後,2度內關係的變化一定是A和E本身或者他們的

一度關係的使用者,再遠的使用者將不受這個關係的影響。

因此首先 所有{A1}的元素的二度分隔集合裡要加上E,所有{E1}的元素的二度分隔集合裡要加上A

然後是二度的修正。分別加上對方的1度。
{A2} = {A2 + E1}
{E2} = {E2 + A1}

最後是一度的修正:A, E 的 一度{A1}{E1}需要加入E,A:
{A1} = {A1 + E}
{E1} = {E1 + A}

整體操作的量大約在2n次操作,比我們通常認為的要小的多 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.