- 6
- 0
- 约9.49千字
- 约 10页
- 2017-10-06 发布于重庆
- 举报
关于1D1D类型的动态规划优化初步
1D/1D动态规划优化初步
所谓1D/1D动态规划,指的是状态数为O(n),每一个状态决策量为O(n)的动态规划方程。直接求解的时间复杂度为O(n2),但是,绝大多数这样的方程通过合理的组织与优化都是可以优化到O(nlogn)乃至O(n)的时间复杂度的。这里就想讲一讲我对一些比较初步的经典的优化方法的认识。
本文中使用两种方式表示一个函数:f(x)与f[x],用方括号表示的函数值可以在规划之前全部算出(常量),而用圆括号表示的函数值必须在规划过程中计算得到(变量)。无论是什么函数值一经确定,在以后的计算中就不会更改。
经典模型一:
相信这个方程大家一定是不陌生的。另外,肯定也知道一个关于决策单调性的性质:
假如用k(x)表示状态x取到最优值时的决策,则决策单调性表述为:
,当且仅当:
,对于这个性质的证明读者可以在任意一篇讲述四边形不等式的文章中找到,所以这里不再重复。而且,从实战的角度来看,我们甚至都不需要验证w函数的这个性质,最经济也是最可靠的方法是写一个朴素算法打出决策表来观察(反正你总还是要对拍)。当然,有的时候题目要求你做一点准备工作,去掉一些明显不可能的决策,然后在应用决策单调性。这是上述性质也许会有点用处。
正如前文中所述,我们关注的重点是怎样实现决策单调性。有了决策单调性,怎样高效地实现它呢?很容易想到在枚举决策的时候,不需要从1开始,只要从k(x-1)开始就可以了,但这只能降低常数,不可能起到实质性的优化。
另一种想法是从k(x-1)开始枚举决策更新f(x),一旦发现决策u不如决策u+1来得好,就停止决策过程,选取决策u作为f(x)的最终决策。这样时间是很大提高了,但可惜是不正确的。决策单调性并没有保证f(j)+w[j,x]有什么好的性质,所以这样做肯定是不对的。
刚才我们总是沿着“f(x)的最优决策是什么”这个思路进行思考,下面我们换一个角度,思考对于一个已经计算出来的状态f(j),“f(j)能够更新的状态有哪些”。这样,每一步过程中某些状态的决策可能不是最优的,但是当算法结束的时候所有状态对应的决策一定是最优的。
一开始,只有f(1)的函数值被计算出来,于是所有状态的当前最优决策都是1。
111111111111111111111111111111111111111111111111111111111111111
现在,显然f(2)的值已经确定了:它的最有决策只能是1。我们用决策2来更新这个决策表。由于决策单调性,我们知道新的决策表只能有这样的形式:
111111111111111111111111111111222222222222222222222222222222
这意味着我们可以使用二分法来查找“转折点”,因为如果在一个点x上,如果决策2更好,则所有比x大的状态都是决策2更好;如果x上决策1更好,则所有比x小的状态都是决策1更好。
现在决策1和决策2都已经更新完毕,则f(3)业已确定,现在用决策3来更新所有状态。根据决策单调性,现在的决策表只能有以下2种类型:
11111111111111111111111111111111122222222222222222233333333333
1111111111111111111111111333333333333333333333333333333333333
而这样的决策表示绝对不会出现的:
111111111111333333333333333333322222222222222222222222222222,不可能。
那么,我们的更新算法就是:
考察决策2的区间[b,e]的b点上是否决策3更优,如果是,则全部抛弃决策2,将此区间划归决策3;如果否,则在决策2的区间[b,e]中二分查找转折点。
如果第1问的回答是“是”,则用同样的方法考察决策1。
推演到这一步,相信决策单调性的实现算法已经明了了:使用一个栈来维护数据,占中的每一个元素保存一个决策的起始位置与终了位置,显然这些位置相互连接且依次递增。当插入一个新的决策时,从后到前扫描栈,对于每一个老决策来说,做这样两件事:
如果在老决策的起点处还是新决策更好,则退栈,全额抛弃老决策,将其区间合并至新决策中,继续扫描下一个决策。
如果在老决策的起点处是老决策好,则转折点必然在这个老决策的区间中;二分查找之,然后新决策进栈,结束。
由于一个决策出栈之后再也不会进入,所以均摊时间为O(1),但是由于二分查找的存在,所以整个算法的时间复杂度为O(nlogn)。
下面我们来看两个例题。
例题1:玩具装箱。
题目来源:湖南省选2008。
题目大意:有n个玩具需要装箱,每个玩具的长度为c[i],规定在装箱的时候,必须严格
您可能关注的文档
最近下载
- SY_T 5106-2019 石油天然气钻采设备 封隔器规范.docx VIP
- 世界著名谈判案例.docx VIP
- T_CPI 11037-2024 石油天然气钻采设备水力振荡器技术与应用规范.docx VIP
- 雪铁龙维修 手册 图DS_5LS_Owner_Book_ZH.pdf VIP
- 2025至2030药用真菌行业项目调研及市场前景预测评估报告.docx
- T_SCMES 24—2024(石油天然气钻采设备智能钻机).pdf VIP
- 财务共享模式下企业内部控制研究——以延长石油为例.docx VIP
- 财务共享延长石油集成方案.pdf VIP
- 2025《延安延长石油集团财务共享中心实施效果分析的案例报告》8200字.doc VIP
- 2025人教版音乐一年级下册全册教学设计教案.pdf
原创力文档

文档评论(0)