矩阵乘法应用小结

隐隐约约记得打 ACM 时看过一篇关于介绍矩阵乘法应用的文章,还是在 @三江小渡的博客里面搜到的,今天中午吃饭的翻算法导论的时候看到一些跟矩阵乘法相关的算法,赶快又来翻了遍这篇博客:http://blog.pureisle.net/archives/900.html

矩阵乘法应用总结:http://blog.pureisle.net/archives/900.html

  • N维点坐标变换。例如,利用矩阵乘法我们可以模拟点的平移、翻转、缩放、旋转等操作。
    二维坐标点的坐标变换

  • 矩阵快速幂。A^N 求解,将幂数进行二进制分解加速运算。

  • 矩阵幂和。SUM(A, N) = A^1 + A^2 + ... + A^N,递归求解。如果 N % 2 == 0SUM(A, N) = SUM(A, N/2) * (E + A^(N/2));否则SUM(A, N) = A^N + SUM(A, N-1)

  • m个置换操作。矩阵乘法合并,矩阵快速幂加速计算。

  • 常系数线性齐次递推方程的求解,一方面可以通过求解多项式方程的根求解通项公式,另一方面我们也可以通过构造系数矩阵利用矩阵快速幂求解。

  • 有向图 A --> B 恰好 K 条边的路径数。

    • A(i, j) = 1 表示 (i,j) 之间存在有向边,C(i, j) 表示 (i,j) 存在两条边的路径方案数,易知 C(i,j) = SUM(A(i,k)*A(k,j)), 1 <= k <= N ,同理 C*A(C*A)*A,因此对于(i,j)恰好为 K 条边的路径数为 A^K

另外,关于矩阵乘法在优化动态规划、图邻接矩阵、折半递归的应用,可以参考矩阵乘法在信息学中的应用这篇论文。强烈推荐阅读这篇文章。

TODO:

  • 多米诺骨牌覆盖问题
  • POJ 2778

猜你喜欢

转载自blog.csdn.net/u011728372/article/details/86490989