楼主: EchoEstelle
2430 1

Map-Reduce实现矩阵乘法 [推广有奖]

  • 0关注
  • 31粉丝

已卖:174份资源

教授

56%

还不是VIP/贵宾

-

威望
0
论坛币
6772 个
通用积分
1.2139
学术水平
220 点
热心指数
149 点
信用等级
90 点
经验
22842 点
帖子
498
精华
7
在线时间
839 小时
注册时间
2010-3-10
最后登录
2016-7-20

楼主
EchoEstelle 发表于 2015-2-12 22:25:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
矩阵P=MN,p_ik=sum_{j}m_ij*n_jk,把矩阵M看成关系R(I,J,V),把矩阵N看成关系R(J,K,W).

M,N有公共属性J,M中每个元组(i,j,v)N中的每个元组(j,k,w),两个关系的自然链接会产生元组(i,j,k,v*w),接下来进行分组聚合运算,
也就是矩阵乘法能用两步串联的Map-Reduce实现。


Map函数:将每个矩阵元素m_ij传给键值对(j,(M,i,m_ij)),将每个矩阵元素n_jk传给键值对(j,(N,k,n_jk))。
Reduce函数:对每个键j,检查与之关联的值的列表。对每个来自M的值(M,i,m_ij)和来自N的值(N,k,n_jk),产生元组(i,k,m_ij,n_jk).
                      对于键j,Reduce函数输出满足(i,k,m_ij*n_jk)的所有元组列表作为值。

Map函数:第一步的输出结果传递给该Map函数,这些结果的形式为(j,[(i_1,k_1,v_1),(i_2,k_2,v_2),...,(i_p,k_p,v_p)]),其中每个
                 v_q对应m_{i_qj}和n_{jk_q}的乘积。
                 基于该元素可以产生p个键值对((i_1,k_1),v_1),((i_2,k_2),v_2),...,((i_p,k_p),v_p).
Reduce函数:对每个键(i,k),计算与此键关联的所有值的和,结果记为((i,k),v),其中v是矩阵P=MN的第i行第k列的元素值。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Map-Reduce reduce Map edu red

已有 1 人评分论坛币 收起 理由
daazx + 10 奖励积极上传好的资料

总评分: 论坛币 + 10   查看全部评分

我非我见我释我是我非我

沙发
EchoEstelle 发表于 2015-2-12 23:27:17

一步Map-Reduce实现矩阵乘法

Map函数:对矩阵M中的每个元素m_ij,产生一系列键值对((i,k),(M,j,m_ij)),其中k=1,2,...直到矩阵N的列数。
                 N中的每个元素n_jk,也产生一系列的键值对((i,k),(N,j,n_jk)),其中i=1,2,...,直到矩阵M的行数。

Reduce函数:每个键(i,k)相关联的值(M,j,m_ij)(N,j,n_jk)将组成一个表。Reduce函数必须对每个j将具有相同j值的
                      (M,j,m_ij)和(N,j,n_jk)接通。一个简单的方法是将所有的(M,j,m_ij)和(N,j,n_jk)按照j值排序并放到不同的列表中。
                      将两个列表的第j个元组中m_ij和n_jk抽出来相乘,然后将积相加,与键(i,k)作为Reduce输出。


我非我见我释我是我非我

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 01:45