- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试理解以下使用动态规划进行矩阵乘法的算法。
如果mi, j
是评估产品Mi × ... × Mj
的最小成本,那么:
算法:
for i := 1 to n do
mi,i := 0
for length := 1 to n-1 do
for i := 1 to n-length do
j := i + length
mi,j = MINi≤k<j{mi,k + mk+1,j + ri-1rkrj}
关于它实际如何工作的任何线索,或者是否有人可以为我指出一个很好的引用。
最佳答案
该算法找到乘以矩阵链的最低成本。
给定一个矩阵 A
与 p
行和 q
列和矩阵 B
与 q
行和 r
列,标准矩阵乘法A·B
需要 p*q*r
乘法 - 对于 p×r
中的每一个产品条目,q
A
对应行的元素之间的乘法和B
对应的栏目.
现在,矩阵乘法是结合的,所以你可以用括号括起乘积
M_1 · M_2 · … · M_n
如你所愿,它总是会产生相同的结果。
现在,让r_0
是 M_1
的行数和 r_i
M_i
的列数(对于要定义的产品,它也必须是 M_(i+1)
的行数)。
然后M_i · … · M_k
是一个 r_(i-1)×r_k
矩阵,和 M_(k+1) · … · M_j
是一个 r_k×r_j
矩阵。所以如果产品 M_i · … · M_j
通过首先计算产品 M_i · … · M_k
来计算和 M_(k+1) · … · M_j
然后将两个结果矩阵相乘,相乘的总成本为
c_{i,k} + c_{k+1,j} + r_(i-1)×r_k×r_j
哪里c_{i,k}
是所选计算方式的成本 M_i · … · M_k
(和 c_{k+1,j}
类似)。
现在,评估的最小成本M_i · … · M_j
在 M_k
之后拆分如果以最小成本评估两个子产品,则显然可以实现。
和最小的评估成本M_i · … · M_j
是通过计算所有可能拆分的最小成本找到的,所以
m_{i,j} = min { m_{i,k} + m_{k+1,j} + r_(i-1)×r_k×r_j : i <= k < j }
i < j
.
然后计算完整产品的最小成本,方法是首先计算仅涉及两个矩阵的子产品的最小成本 [其中只有一个可能的拆分],然后计算使用三个矩阵的子产品,为此我们需要仅两个矩阵的子积的最小成本 - 这就是括号发挥作用的地方,通常会有所不同 - 然后是四个等,直到找到总计算的最小成本。
要找到产生最低成本的括号,您可以搜索最小成本数组以找到产生它的拆分 [然后是两个子产品,等等],但最好存储信息在 m
中以最低成本分割的位置数组。
关于algorithm - 使用动态规划的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286150/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!