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

本文探讨了如何利用迭代MapReduce解决社交网络中的图计算问题,包括如何建立有权图来衡量人际关系亲密度,并通过迭代MapReduce算法寻找多跳的好友关系。

这是中国大学MOOC中大数据算法课程的笔记


图计算模型


社交网络建模成图模型,问:我是我朋友的最好的朋友么?


相当于建立有权图,权值代表两人的亲密关系。


能否用MapReduce实现?


点和关系用邻接表表示


node作为map的key,邻接表作为value。


一个实际用例:谁是我多个朋友的朋友(显然是我潜在的朋友)


然后,假设我们希望超越直接的朋友关系

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


距离k>2的情况


这里我们需要运行多轮MapReduce,即迭代MapReduce,上一轮MapReduce的结果是下一轮MapReduce的输入。


因为一轮MapReduce只能做一跳。


许多图的算法需要多个map/reduce阶段:迭代mapreduce和mapreduce链


另一类算法的实现:基于路径的算法


重点讲单源最短路径的并行化

Dijkstra算法

http://blog.youkuaiyun.com/v_JULY_v/article/details/6096981


每一轮为定长边的情况

下面是一个实例

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

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


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

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


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


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值