[发明专利]一种稳定的基于Spark平台的矩阵求逆算法在审
申请号: | 201810327881.6 | 申请日: | 2018-04-12 |
公开(公告)号: | CN108519959A | 公开(公告)日: | 2018-09-11 |
发明(设计)人: | 郭海旋;任江涛 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 510275 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 矩阵求逆算法 数值稳定性 求逆 矩阵 旋转操作 传统的 递归 算法 缓解 | ||
本发明基于传统的Strassen矩阵求逆算法上对其进行修改,实现了一种能缓解这种数值稳定性问题的方法。类似于Strassen矩阵求逆算法,不过本发明对其进行矩阵旋转操作,使Strassen矩阵求逆算法递归时其对进行求逆,那么当比更加良态的时候,就使用旋转后的算法求逆,以提升数值稳定性。
技术领域
本发明涉及Spark平台技术领域,更具体地,涉及一种稳定的基于Spark平台的矩阵求逆算法。
背景技术
由于Spark平台在2012年被提出,主要集中在大数据处理领域,尚不支持大型矩阵的求逆运算,而在Spark平台上的大型矩阵求逆算法的研究也非常少,只有2016年LIU等人提出的基于递归LU分解的算法以及2018年Misra等人提出的基于Strassen的递归求逆算法(SPIN),本发明基于后者,即是SPIN。
Strassen算法由Strassen发表于1969年,它应用于矩阵乘法的方法因为把矩阵乘法的复杂度从O(n3)降低到O(n2.8)而广为人知,Strassen同时提出的求逆算法则没有那么高的知名度。类似于Strassen矩阵乘法,对于
有
那么C矩阵可以通过以下步骤计算得出:
P2=A21×P1
P3=P1×A12
P4=A21×P3
P5=P4-A22
C12=P3×P6
C21=P6×P2
C11=P1-P3×C21
C22=-P6
对子矩阵A11递归使用该算法(SPIN),到达递归的顶点时,使用已有求逆算法(如LU分解)求解矩阵的逆,执行所有步骤后即可得到矩阵C。Strassen求逆算法的伪代码如图1所示,图2给出了Spark版本的Strassen矩阵求逆算法伪代码。
Spark版本的Strassen求逆算法,主要涉及到六个函数:
■breakMat:把矩阵分成4个块
■xy:即图2中的_11、_12、_21、_22等四个函数,作用是获取对应位置的子矩阵块
■multiply:矩阵乘法,使用Spark自带的矩阵乘法
■subtract:矩阵减法,使用Spark自带的矩阵减法
■scalarMul:矩阵乘以一个常数
■arrange:把四个矩阵块合并成一个大矩阵
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810327881.6/2.html,转载请声明来源钻瓜专利网。