最优性原理
对于一个具有n个输入的最优化问题,其求解过程往往可以划分为若干个阶段,每一阶段的决策仅依赖于前一阶段的状态,由决策所采取的动作使状态发生转移,成为下一阶段决策的依据。从而,一个决策序列在不断变化的状态中产生。这个决策序列产生的过程称为多阶段决策过程。
在每一阶段的决策中有一个赖以决策的策略或目标,这种策略或目标是由问题的性质和特点所确定,通常以函数的形式表示并具有递推关系,称为动态规划函数。
多阶段决策过程满足最优性原理(Optimal Principle):无论决策过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的当前状态,构成一个最优决策序列。
如果一个问题满足最优性原理,则称该问题具有最优子结构性质。
动态规划法的设计思想
动态规划法将待求解问题分解成若干个相互重叠的子问题,每个子问题对应决策过程的一个阶段,一般来说,子问题的重叠关系表现在对给定问题求解的递推关系(也就是动态规划函数)中,将子问题的解求解一次并填入表中,当需要再次求解此子问题时,可以通过查表获得该子问题的解而不用再次求解,从而避免了大量重复计算。
动态规划=“局部最优达到全局最优”策略+递推(降阶)+存储递推结果
“局部最优达到全局最优”策略、递推算法都是在“线性”地解决问题,而动态规划则是全面分阶段地解决问题。可以通俗地说动态规划是“带决策的多阶段、多方位的递推算法”。
用动态规划法求解的问题具有特征
1、能够分解为相互重叠的若干子问题;
2、满足最优性原理(也称最优子结构性质):该问题的最优解中也包含着其子问题的最优解。
(用反证法)分析问题是否满足最优性原理:
1、先假设由问题的最优解导出的子问题的解不是最优的;
2、然后再证明在这个假设下可构造出比原问题最优解更好的解,从而导致矛盾。