记表备查-----动态规划算法
来源:互联网 发布:深圳华夏软件职业教育 编辑:程序博客网 时间:2024/06/03 16:55
1.最优子结构
•组合优化问题,指的是问题有多个可行解,每一个可行解对应一个目标值,目的是要在可行解中求得目标值最优者(最大或最小)。
•最优子结构特性指的是问题的最优解包含的子问题的解相对于子问题而言也是最优的。
2.子问题重叠
•问题的一个递归算法在每个递归步骤产生分支子问题时并不总是新的,而是对部分子问题解了又解。当一个递归算法一次又一次地访问同一个子问题时,我们说该最优化问题具有重叠子问题的特性。
3.动态规划
•针对具有上述两个特征的优化问题,动态规划算法通常需要做如下的3步工作:
•(1)利用最优子结构定义一个关于解的目标值的递归方程。鉴于子问题的重叠性,如果自顶向下地用递归技术解每一个遇到的子问题,则可能陷入一个“时间黑洞”。
•(2)因此,动态规划以自底向上地对每个新产生的子问题仅解一次且将其解保存在一个表格中,需要时可以在表中查找,且能在常数时间内完成查找。
•(3)根据计算出的最优解的值构造对应的最优解。
参考:《算法设计、分析与实现:C、C++和Java》
0 0
- 记表备查-----动态规划算法
- wxWidgets动态事件表爱好者备查手册
- 算法--动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 初识动态规划算法
- 动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 动态规划算法剖析
- 动态规划算法
- 动态规划算法实现
- 动态规划算法
- 动态规划算法
- 动态规划算法之一
- 动态规划算法备忘
- 动态规划 --压缩算法
- 动态规划算法
- 解题报告 之 SOJ3191 Free square
- 3.Socket网络编程之基于UDP协议的Socket(图解与源码)
- 记录关于spring MVC入门遇见的问题
- Leetcode Reorder List 链表重排序
- Freemarker指令
- 记表备查-----动态规划算法
- 多线程编程2 - NSOperation
- 小孩培养记事
- 黑马程序员——Java基础---赋值运算符
- 黑马程序员——Java基础——集合(一)
- 多线程编程3 - NSOperationQueue
- Linux & ROS 常用命令整理
- c++中函数中将引用用于类对象
- 多线程编程4 - GCD