动态规划(Dynamic programming)

基本概念

动态规划是一种分阶段求最优值的算法:将复杂的问题按阶段划分成一个个的子问题,然后枚举子问题可能出现的各种情况,从中找出最优解,即利用子问题的最优解求得原问题的最优解

几个概念

阶段:用动态规划求解一个问题时,需要将问题的全过程恰当的分成若干个相互联系的阶段,以便按一定的次序去求解。阶段的划分一般是根据时间和空间的自然特征来划分,同时阶段的划分要便于把问题转化成多阶段决策过程。即根据空间顺序或时间顺序对问题的求解划分阶段

阶段变量:用来描述阶段的变量,通常用 k 表示

状态:某一阶段的出发位置称为状态,通常一个阶段包含若干状态。状态描述事物的性质,不同事物有不同的性质,因而用不同的状态来刻画,对问题的求解状态的描述是分阶段的

状态变量:用来描述状态的变量

决策:在对问题的处理中做出的每种选择性地行动称为决策,即从该阶段的每一个状态出发,通过一次选择性的行动转移至下一阶段的相应状态。一个实际问题可能要有多次决策和多个决策点,在每一个阶段的每一个状态中,都要有一次决策

决策变量:用来描述决策的变量

决策允许集合:在实际问题中,决策变量的取值往往限制在某一个范围之内,此范围称为决策允许集合

多阶段决策过程:把一个问题看作是一个前后关联具有链状结构的多阶段过程就称为多阶段决策过程

策略:所有阶段依次排列构成问题的全过程,全过程中各阶段决策变量所组成的有序总体称为策略

最优策略:在实际问题中,从决策允许集合中找出最优效果的策略称为最优策略

状态转移方程:前一阶段的终点就是后一阶段的起点,对前一阶段的状态做出某种决策,产生后一阶段的状态,这种关系描述了由 k 阶段到 k+1 阶段状态的演变规律,称为状态转移方程,即用数学公式描述与阶段相关的状态间的演变规律

动态规划问题的基本特征

1、问题具有多阶段决策的特征
2、每一阶段都有相应的“状态”与之对应
3、每一阶段都需要做出一个决策,选择不同的决策会导致下一阶段出现不同的状态
4、每一阶段的最优解问题可以递归地归结为下一阶段各个可能状态的最优解问题,各子问题与原问题具有完全相同的结构。

动态规划问题的一般解题步骤

动态规划问题又称DP问题

1、判断问题是否具有最优子结构性质,若不具备则不能用动态规划
2、把问题分成若干个子问题(分阶段)
3、建立状态转移方程(递推公式)
4、找出边界条件
5、将已知边界值带入方程
6、递推求解

与递归类似,将问题层层分解
与贪心类似,求子问题的最优解,不同的时贪心只求一个子问题的最优解,而动态规划要枚举子问题所有可能出现的情况,从中选择最优解
dp中的枚举是指枚举子问题可能出现的各种情况,而不是枚举整个问题的所有答案然后比较求出最优解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值