MapReduce算法例析——圖算法概要和基於路徑的算法初步

這是中國大學MOOC中大數據算法課程的筆記


圖計算模型


社交網絡建模成圖模型,問:我是我朋友的最好的朋友麼?


相當於建立有權圖,權值代表兩人的親密關係。


能否用MapReduce實現?


點和關係用鄰接表表示


node作爲map的key,鄰接表作爲value。


一個實際用例:誰是我多個朋友的朋友(顯然是我潛在的朋友)


然後,假設我們希望超越直接的朋友關係

例如:有多少我朋友的朋友把我當做他們最好朋友的最好朋友?


距離k>2的情況


這裏我們需要運行多輪MapReduce,即迭代MapReduce,上一輪MapReduce的結果是下一輪MapReduce的輸入。


因爲一輪MapReduce只能做一跳。


許多圖的算法需要多個map/reduce階段:迭代mapreduce和mapreduce鏈


另一類算法的實現:基於路徑的算法


重點講單源最短路徑的並行化

Dijkstra算法

http://blog.csdn.net/v_JULY_v/article/details/6096981


每一輪爲定長邊的情況

下面是一個實例

初步情況:mapper裏存的是鄰接原點的點ID和它們到S的距離

在reducer中算出當前S到A和S到C的最短路徑。


下一個階段:mapper中是經過上一輪的點到下一個點的總距離。

reducer中是新一輪計算後的各點距離。


下一階段同理。直到輸出不變。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章