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中是新一轮计算后的各点距离。


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


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值