acm第六次动态规划

一、动态规划
1、 只要问题可以划分成规模更小的子问题,并且原问题的最优解中包含了子问题的最优解,则可以考虑用动态规划解决。因此,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法。该方法主要应用于最优化问题,这类问题会有多种可能的解,每个解都有一个值,而动态规划找出其中最优(最大或最小)值的解。若存在若干个取最优值的解的话,它只取其中的一个。
2、 动态规划法所针对的问题有一个显著的特征,即它所对应的子问题树中的子问题呈现大量的重复。动态规划法的关键就在于,对于重复出现的子问题,只在第一次遇到时加以求解,并把答案保存起来,让以后再遇到时直接引用,不必重新求解。
3、动态规划问题具有以下基本特征:
① 问题具有多阶段决策的特征。
② 每一阶段都有相应的“状态”与之对应,描述状态的量称为“状态变量”。
③每一阶段都面临一个决策,选择不同的决策将会导致下一阶段不同的状态。
④每一阶段的最优解问题可以递归地归结为下一阶段各个可能状态的最优解问题,各子问题与原问题具有完全相同的结构。
4、动态规划的几个概念
①阶段:据空间顺序或时间顺序对问题的求解划分阶段。
②状态:描述事物的性质,不同事物有不同的性质,因而用不同的状态来刻画。对问题的求解状态的描述是分阶段的。
③决策:根据题意要求,对每个阶段所做出的某种选择性操作。
④状态转移方程:用数学公式描述与阶段相关的状态间的演变规律。
5、动态规划问题的一般解题步骤
①判断问题是否具有最优子结构性质,若不具备则不能用动态规划。
②把问题分成若干个子问题(分阶段)。
③建立状态转移方程(递推公式)。
④找出边界条件。
⑤将已知边界值带入方程。
⑥递推求解。

猜你喜欢

转载自blog.csdn.net/qq_43550247/article/details/88858295