当前位置:网站首页>设计备忘录解矩阵链(动态规划法)的一些思考
设计备忘录解矩阵链(动态规划法)的一些思考
2022-06-09 21:55:00 【极客范儿】
动态规划法求解问题的时候,空间换时间的时候,怎么去记,应该记什么。空间计算值得过程可以有效的理解备忘录,备忘录实际上就是一张表格,帮助我们求解子问题。
一、操作过程:
现在有五个矩阵,有六个数来表示,每个矩阵的行号、列号都是已知的,就是从里面挑出相邻的两个值,六个数表示五个矩阵的项矩阵链,接下来记录子问题。
1、输入
P = < 30, 35, 15, 5, 10, 20 >, n = 5
2、矩阵链
A1A2A3A4A5,其中A1:30×35,A2:35×15,A3:15×5,A4:5×10,A5:10×20
3、备忘录
存储所有子问题的最小乘法次数及得到这个值的划分位置.
(1)r表示长度
首先是长度为1的,把r=1这一行先写好,这一行刚好有5列,每一列的值都是0。这个m表示最少的次数。
r=2长度为2这一行的计算要借助第一行来计算
(2)例:
例如m[2,5]的计算,k的位置可以有很多种选择,第1种选择,左边界2和2所构成的子链,右边是3→5所构成的另一个子链,m[2,2]和m[3,5]的结果,因为是逐层计算的,所以已知m[2,2]和m[3,5]的结果进行计算。
m[2,5] = min{ 0 +2800+35x15x20,2625+1000+35x5x20,4735+0+35x10x200 }=7125
把左边的结果加上右边的结果,第2个矩阵的规模是35x15,第3到第5构成的子链规模是15x20,所以最后乘到最后,一定是以第5个矩阵结束的列号作为最终的列号。综合求解过程:子问题1、子问题2、综合的过程。计算出来
(3) 过程
①r=1
m[1][1]= m[2][2] = m[3][3] = m[4][4] =m[5][5]=0
②r=2
m[1][2] = 30x35x15 = 15750
m[2][3] = 35x15x5 = 2625
m[3][4] = 15x5x10 = 750
m[4][5] = 5x10x20 = 1000
③r=3
m[1][3] =min(m[1][1]+m[2][3]+A1(A2A3),m[1,2]+m[3,3]+ (A1A2)A3
=min(m[1][1]+m[2][3]+P0P1P3,m[1,2]+m[3,3]+P0P2P3
=min(0+2625+30x35x5,15750+0+30x15x5)
=min(7875,18000)=36,s[1][3]=1
m[2][4]=min(m[2][2]+m[3][4]+A2(A3A4),m[2][3]+m[4][4]+(A2A3)A4
=4375,s[2][4]=3
m[3][5]==min(m[3][3]+m[4][5]+A3(A4A5),m[3][4]+m[5][5]+(A3A4)A5
=2500,s[3][5]=3
④r=4
m[1][4]=min(m[1][1]+m[2][4]+ A1(A2A3A4)+m[1][2]+m[3][4] + (A1A2)(A3A4), m[1][3]+m[4][4]+ (A1A2A3)A4
=9375,s[1][4]=3
m[2][5]=min(m[2][2]+m[3][5]+ A2(A3A4A5),m[2][3]+m[4][5] + (A2A3)(A4A5), m[2][4]+m[5][5]+ (A2A3A4)A5
=7125,s[2][5]=3
⑤r=5
m[1][5]=min(m[1][1]+m[2][5]+ A1(A2A3A4A5),m[1][2]+m[3][5] + (A1A2)(A3A4A5) ,m[1][3]+m[4][5]+(A1A2A3)(A4A5)
=11875,s[1][5]=3
备忘录
| r=1 | m[1][1]=0 | m[2][2]=0 | m[3][3]=0 | m[4][4]=0 | m[5][5]=0 |
|---|---|---|---|---|---|
| r=2 | m[1][2]=15750 | m[2][3]=2625 | m[3][4]=750 | m[4][5]=1000 | |
| r=3 | m[1][3]=7875 | m[2][4]=4375 | m[3][5]=2500 | ||
| r=4 | m[1][4]=9375 | m[2][5]=7125 | |||
| r=5 | m[1][5]=11875 |
(4)标记函数s[i,j]
| r=2 | s[1][2]=1 | m[2][3]=2 | m[3][4]=3 | m[4][5]=4 | |
|---|---|---|---|---|---|
| r=3 | m[1][3]=1 | m[2][4]=3 | m[3][5]=3 | ||
| r=4 | m[1][4]=3 | m[2][5]=3 | |||
| r=5 | m[1][5]=3 |
解的追踪:s[1,5]=3⇒(A1A2A3)(A4A5)
s[1,3]=1⇒A1(A2A3)
输出
计算顺序: (A1(A2A3))(A4A5)
最少的乘法次数:m[1,5]=11875
二、递推方程
其实比较难想到的,比较难进行的就是递推方程,要想到问题如何分解,为什么会有这样的关系,这些是难于想到的,尤其是在一个问题在做一个新的问题的时候,可能不是那么明显能看出来。
m[i,j] :得到 Ai…j 的最少的相乘次数
三、动态规划算法
1、子问题划分
Ai…j :矩阵链 Ai Ai+1 … Aj,边界i, j
输入向量: < Pi-1, Pi, … , Pj >
其最好划分的运算次数: m[i, j]
2、子问题的依赖关系
最优划分最后一次相乘发生在矩阵k 的位置,即
Ai…j = A~i …k~ Ak+1…j
Ai…j 最优运算次数依赖于 Ai…k 与 Ak+1…j 的最优运算次数
边栏推荐
- Calculation method that can be used for NLP Task Evaluation (semantic similarity calculation)
- Matlab implementation of Pettitt mutation test
- 化工企业双重预防体系数字化综合管理系统
- St link V2 Download: internal command error & error: flash download failed - target DLL has been canceled
- 线程池的学习记录
- This book has won the 2022 Beijing college entrance examination composition
- 【Jmeter】Jmeter从入门到精通
- 【蓝桥杯集训100题】scratch眩晕苹果 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第12题
- 还在怀疑数字藏品么?国家队都开始入局了
- SDN specific network security issues
猜你喜欢

RCNN series summary

什么是“大安全”产业?数字化赋能大安全产业发展

Find my technology | in the era of Internet of things, apple find my realizes real intelligent loss prevention

The 14th Sudoku - true standard Sudoku -day 6-20220121 (supplementary)

「ClickHouse系列」ClickHouse的优化之Block+LSM

调查显示macOS应用开发者普遍表示产品如何被用户发现是他们最大的挑战

RCNN系列总结

还在怀疑数字藏品么?国家队都开始入局了

华为设备配置Hub and Spoke

Cookie 和 Session 工作流程
随机推荐
Diligence from childhood
Systematic goal - Fitness collection
Typedef & enum & C data type
Who is the slowest child in C language test 169
Some Oracle DDL operations
[translation paper] a progressive morphological filter for removing nonground measurements from airport lidar dat
体系化目标一健身合辑
Matlab implementation of Pettitt mutation test
Light detection and ranging (LIDAR)
Spider PI intelligent vision hexapod robot color recognition function 0603
Find My产品|新款TWS耳机支持Find My功能,苹果Find My在第三方厂家应用更广泛
MySQL的集合运算
Day5-t2029 & T39 -2022-01-20-not answer by yourself
Bonner barcode reader ve205g1a
Oracle paging
【蓝桥杯集训100题】scratch眩晕苹果 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第12题
LiDAR相关介绍
汛期建筑施工现场安全生产风险智能防控
知乎关注热度25K的问题,自学软件测试,要学到什么程度才能找到工作?
Find my product | the new TWS headset supports the find my function, and apple find my is more widely used in third-party manufacturers