第四周动态规划

一、具有的特征
1.问题具有多阶段性决策的特征
2.每一阶段有相应的“状态变量”。
3.不同决策导致下一阶段不同的状态
4.多个阶段的最优解的递归,子问题与原问题有同结构。
阶段:按空间或时间顺序对问题的求解划分阶段。
状态:不同事物有不同性质,用不同的状态来刻画。
决策:对每个阶段做出某种选择性的操作。
状态转移方程:用数学公式描述与阶段相关的状态间的演变规律。
二、解题步骤
1.是否具有动态规划特征。
2.分阶段
3.建立状态转移方程。
4.找边界条件。
5.将已知边界条件带入。
6.递推求解。
总结:
上课老师讲了最长单调子序列模型,最长公共子序列模型,最大字段和模型,矩阵模型里的一种。做题遇到了多个升级版的题。反恐训练营(lcs)模板是加一上升到加的权值不一样。机器人路线问题把模板两个选择的上升到超多个的选择。动态规划好难,感觉就是贪心加递归。每次做这题我感觉最关键的就是题目的量要用什么表示出来,就比如说最长单调子序列用一个一维数组来表述段长,虫子爬树那一题用二维数组表述时间和第几棵树。如果这个都没有选择对就别说动态方程了。对于动态定义数组比如dp[i][j]一维表示时间二维表示棵树想的时候只把ij当成第几分钟第几课树。刚开始我一直在想为什么这么表示可以转牛角尖,乱想一堆东西出来,就越来越看不懂。所以简单点想就好了。老师今天说了指数可以用对数来转化,那我如果遇到其他不好表达的数那我可以用一些数学公式来转化数据。那个相同字符最大子矩阵和,刚开始我多给了定义了数组范围,超出内存范围,一直找不到错误,改了好多次,上网提交别人的代码,就是看不出哪里错了,以后给定范围,还是不要超出定义范围太多。动态的题都好难做,刚开始做题就是无头苍蝇,多做几题之后就有了一点感觉,还是要多刷题,希望自己能坚持吧。

发布了23 篇原创文章 · 获赞 0 · 访问量 332

猜你喜欢

转载自blog.csdn.net/qq_45762392/article/details/105150167