专栏文章

广义矩阵乘法

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mio1tdip
此快照首次捕获于
2025/12/02 11:58
3 个月前
此快照最后确认于
2025/12/02 11:58
3 个月前
查看原文
普通矩阵乘法:
Ci,j=k=1A.mAi,k×Bk,jC_{i,j} = \sum_{k=1}^{A.m} A_{i,k} \times B_{k,j}
定义两个新运算 ,\oplus,\otimes,广义矩阵乘法:
Ci,j=k=1A.mAi,kBk,jC_{i,j} = \bigoplus_{k=1}^{A.m} A_{i,k} \otimes B_{k,j}
想要对广义矩阵乘法做矩阵快速幂,需要满足结合律:
(A×B)×C=A×(B×C)(A \times B) \times C = A \times (B \times C)
证明在 ,\oplus,\otimes 的意义下矩阵如何满足结合律,以下默认矩阵为方阵。
D=A×BD = A \times B,则 Di,j=k=1nAi,kBk,jD_{i,j} = \bigoplus_{k=1}^{n} A_{i,k} \otimes B_{k,j}
E=B×CE = B \times C,则 Ci,j=k=1nBi,kCk,jC_{i,j} = \bigoplus_{k=1}^{n} B_{i,k} \otimes C_{k,j}
考虑 (A×B)×C(A\times B)\times CA×(B×C)A\times (B \times C)(i,j)(i,j) 元。
应有:
k=1n(k=1nAi,kBk,k)Ck,j=k=1nAi,k(k=1nBk,kCk,j)\bigoplus_{k=1}^{n} (\bigoplus_{k'=1}^{n} A_{i,k'} \otimes B_{k',k}) \otimes C_{k,j} = \bigoplus_{k=1}^{n} A_{i,k} \otimes (\bigoplus_{k' = 1}^{n} B_{k,k'} \otimes C_{k',j})
如果 \otimes\oplus 有分配律,则有:
k=1nk=1nAi,kBk,kCk,j=k=1nk=1nAi,kBk,kCk,j\bigoplus_{k=1}^{n} \bigoplus_{k'=1}^{n} A_{i,k'} \otimes B_{k',k} \otimes C_{k,j} = \bigoplus_{k=1}^{n} \bigoplus_{k' = 1}^{n} A_{i,k} \otimes B_{k,k'} \otimes C_{k',j}
如果 \oplus 有交换律,那么左右相等。
所以广义矩阵乘法有交换律得有 \otimes\oplus 有分配律,\oplus 有交换律。
常见广义矩阵乘法 (+,×),(max,+),(min,+),(min,max),(max,min)(+,\times),(\max,+),(\min,+),(\min,\max),(\max,\min)
用处是优化 DP 状态转移方程。

评论

0 条评论,欢迎与作者交流。

正在加载评论...