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

每一轮为定长边的情况

下面是一个实例

《MapReduce算法例析——图算法概要和基于路径的算法初步》

初步情况:mapper里存的是邻接原点的点ID和它们到S的距离

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

《MapReduce算法例析——图算法概要和基于路径的算法初步》

下一个阶段:mapper中是经过上一轮的点到下一个点的总距离。

reducer中是新一轮计算后的各点距离。

《MapReduce算法例析——图算法概要和基于路径的算法初步》

下一阶段同理。直到输出不变。

    原文作者:九宫图算法
    原文地址: https://blog.csdn.net/csdnerrrrr/article/details/41410873
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞