博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[动态规划斜率优化小结]
阅读量:5108 次
发布时间:2019-06-13

本文共 493 字,大约阅读时间需要 1 分钟。

用斜率优化的动态规划需要满足:

1、转移方程应该是这样的形式:f[i]=Max/Min{f[j]+G(j)}其中G是一个j有关系的函数(有可能包含其他未知数)。

2、设Vx=f[x]+G(x),Vy=f[y]+G(y).

如果在可以推出:

求最大值时根据x<y&&Vx>Vy:W(x,y)<U(i) 其中W(x,y)是和x、y有关的函数U(i)是只和i有关的函数且单调递增

求最小值时根据x<y&&Vx<Vy:W(x,y)>U(i) 其中W(x,y)是和x、y有关的函数U(i)是只和i有关的函数且单调递增

快速的转移出这样的方程需要用单调队列来维护(以最大值为例最小值类似):

1、在转移前比较队首h和队首的下一个h+1如果W(h,h+1)>=U(i)说明Vh+1更优就出队直到不符和或只剩一个,它便是最优的决策

2、转移

3、在转移后加入对队列时因为W(h,h+1)>=U(i)所以要维护队列单调递减。

 

例题:求最大:

   求最小:

转载于:https://www.cnblogs.com/procedure2012/archive/2012/04/17/2453436.html

你可能感兴趣的文章
C#中int32 的有效值范围
查看>>
js只能输入数字和小数点
查看>>
nyoj 20 吝啬的国度
查看>>
nyoj 86 找球号(一)(set,map)
查看>>
Oracle 删除重复数据只留一条
查看>>
poj1984 带权并查集(向量处理)
查看>>
P2764 最小路径覆盖问题
查看>>
PAT-ADVANCED-1090-Highest Price in Supply Chain
查看>>
sklearn学习7-----决策树(tree)
查看>>
39. Combination Sum II
查看>>
vue 配置环境遇到的问题总结
查看>>
JavaScript零基础学习系列三
查看>>
2018.2.1号 第一次在公司闹事
查看>>
Anaconda使用教程
查看>>
LeetCode题库13. 罗马数字转整数(c++实现)
查看>>
1010 一元多项式求导 (25 分)
查看>>
【NOIP2010】关押罪犯
查看>>
PIC2, Rank-Order Plots, Lift Charts and Pareto chart
查看>>
spring-4设计模式-代理动态,代理源码分析,实现自己的动态代理
查看>>
EXCEL中对1个单元格中多个数字求和
查看>>