希赛考试网
首页 > 软考 > 软件设计师

矩阵连乘最优子结构证明

希赛网 2024-02-21 14:05:29

矩阵连乘问题是指给定n个矩阵A1、A2、...、An,其中Ai与Ai+1是可乘的(1≤i

矩阵连乘问题的最优子结构性质:对于一组序列Ai、Ai+1、…、Aj,从中任选一个k(i≤k

接下来从多个角度证明矩阵连乘问题的最优子结构性质:

第一步,证明一个序列的最优值可以由它的子序列最优值递推得到。假设Ai、…、Aj的最优计算顺序为Ak1、…、Aki和Aki+1、…、Akj,则Ai、…、Aj的标量乘法次数为:

M(Ai…Aj)=M(Ai…Aki)+M(Aki+1…Aj)+pi-1pkpj

其中pi、pk和pj分别是Ai、Ak和Aj的维数。由于Ak1、…、Aki和Aki+1、…、Akj的计算顺序是最优的,因此可以得到:

M(Ak1…Aki)≤M(Ai…Aki)

M(Aki+1…Akj)≤M(Aki+1…Aj)

因此,有:

M(Ai…Aj)≤M(Ai…Aki)+M(Aki+1…Aj)+pi-1pkpj

M(Ai…Aj)≥M(Ak1…Aki)+M(Aki+1…Akj)+pi-1pkpj

这说明Ai、…、Aj的最优计算顺序可以由Ak1、…、Aki和Aki+1、…、Akj的最优计算顺序递推得到。

第二步,证明对于一组序列Ai、Ai+1、…、Aj,从中任选一个k(i≤k

M(Ai…Aj)=M(Ai…Ak)+M(Ak+1…Aj)+pi-1pkpj

M(Ak…Aj)=M(Ak…Ak+i)+M(Ak+i+1…Aj)+pi-1pikpj

其中,pi、pk和pj分别是Ai、Ak和Aj的维数。将两个式子相加可以得到:

M(Ai…Aj)+M(Ak…Aj)=M(Ai…Ak)+M(Ak+1…Aj)+M(Ak…Ak+i)+M(Ak+i+1…Aj)+pi-1pkpj+pi-1pikpj

由于Ai、…、Aj的最优计算顺序是整个矩阵链的最优计算顺序,因此有:

M(Ai…Aj)≤M(Ai…Ak)+M(Ak+1…Aj)+pi-1pkpj

将此式代入上面的式子,可以得到:

M(Ak…Aj)≥M(Ak…Ak+i)+M(Ak+i+1…Aj)+pi-1pikpj

这说明分割出的Ak、…、Ai、Ak+i和Ak+i+1、…、Aj的最优计算顺序也是最优的,因此原序列的最优计算顺序可以由子序列递推得到。

第三步,证明最优子结构性质可以用来设计动态规划算法。对于矩阵连乘问题,设M[i,j]表示计算Ai、…、Aj的最少标量乘法次数。则当i=j时,M[i,j]=0;当i

1、对于每一个M[i,i],令其为0;

2、对于每一个M[i,i+1],令其等于pi-1*pi*pi+1;

3、对于每一个M[i,j],其中i

M[i,j]=min{M[i,k]+M[k+1,j]+pi-1pkpj| i≤k

这个表达式的计算过程可以用动态规划算法实现。

综上所述,矩阵连乘问题具有最优子结构性质,这为设计动态规划算法提供了基础。动态规划算法通过逐步选取最优子问题的解来求解整个问题,递推式的设计和变量的定义有助于提高问题的解决效率。矩阵连乘问题的最优子结构性质为设计动态规划算法提供了一个很好的例子。

微信扫一扫,领取最新备考资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考报考咨询

微信扫一扫,定制学习计划