1.分析優化解的結構
兩個記號:
(2)優化解的結構
證明:若計算
2.子問題堆疊性: 計算
3.遞歸定義最優解代價
用子問題的最優解遞歸定義原問題的最優解
m[i,j]表示計算矩陣Ai,j所需標量乘法次數的最小值,那末原問題的最優解-計算
其中
4.遞歸劃份子問題
1個
5.自底向上計算優化解的代價
以m[1,5]為例:
m[1,1] m[1,2] m[1,3] m[1,4] m[1,5]
m[2,2] m[2,3] m[2,4] m[2,5]
m[3,3] m[3,4] m[3,5]
m[4,4] m[4,5]
m[5,5]
想要計算m[1,5],需要計算m[1,1] m[1,2] m[1,3] m[1,4]和m[2,5],m[3,5], m[4,5],m[5,5]。
要計算m[1,4],需要計算m[1,1] m[1,2] m[1,3]和[2,4],m[3,4], m[4,4]
要計算m[2,5],需要計算m[2,2] m[2,3] m[2,4]和m[3,5], m[4,5],m[5,5]
……..
所以最需要先計算的是對角線的上元素m[1,1],m[2,2],m[3,3],m[4,4],m[5,5],它們的結果都是0
接下來就能夠計算m[1,2],m[2,3],m[3,4],m[4,5]了
以后計算m[1,3],m[2,4],m[3,5]
……
最后計算出m[1,5]
每次均計算出對角線上的1組元素,且是自底向上的
6.算法思想
1.先對第1層對角線值給初值0(m[i,i]=0)
2.對有n個矩陣的輸入來講,為計算m[1,n],需要n⑴個對角線(第1層對角線已計算過了)
3.對自底向上的第i層對角線來講,共需要計算i個不同的m值
4.對每個m值,通過
所以總共需要3層循環。
Matrix-Chain-Order(n)
For
For
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈