动态规划(算法导论学习笔记)
来源:互联网 发布:一元购网站源码 编辑:程序博客网 时间:2024/05/17 04:35
动态规划是通过组合子问题的解而解决整个问题的。和分治法的区别在于:分治法算法是指将问题划分成一些独立的子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。与此不同,动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题,动态规划算法是对每个子子问题只求解一次,将其结果保存在一张表中,从而避免每次遇到各个子问题时重新计算答案。
动态规划常用于最优化问题。此类问题可能有很多种可行解。每个解有一个值,而我们希望找出一个具有最优(最大或最小)值的解。
动态规划算法的设计可以分为如下4个步骤:
1、描述最优解的结构。
2、递归定义最优解的值。
3、按自底向上的方式计算最优解的值。
4、由计算出的结果构造一个最优解。
动态规划的最优子结构:一个问题的最优解包含了子问题的一个最优解。
是否可以采用动态规划的两个标志:1、最优子结构 2、子问题重叠
在找寻最优子结构时,可以遵循一种共同的模式:
1、问题的一个解可以是做一个选择。例如,选择一个前一个装配线装配站;或者选择一个下标以在该位置分裂矩阵链。做这种选择会得到一个或多个有待解决的子问题。
2、假设对一个给定的问题,已知的是一个可以导致最优解的选择。
3、在已知这个选择后,要确定哪些子问题会随之发生,以及如何最好地描述所得到的的子问题空间。
4、利用一种“剪贴”技术,来证明在问题的一个最优解中,使用的子问题的解本身也必须是最优的。通过假设每一个子问题的解都不是最优解,然后导出矛盾。
未完待续。。。
- 动态规划(算法导论学习笔记)
- 算法导论学习笔记----动态规划
- 算法导论学习笔记(十一):动态规划(一)
- 算法导论 动态规划 笔记
- 算法导论学习笔记-第十五章-动态规划
- 算法导论学习笔记——动态规划
- 算法导论学习笔记(7)——动态规划之装配线调度
- 算法导论学习笔记(8)——动态规划之矩阵链乘法
- 算法导论学习笔记(9)——动态规划之最长公共子序列
- 算法导论学习笔记(10)——动态规划之最优二叉查找树
- 算法导论学习笔记(十二):动态规划(二):最长公共子序列(LCS)
- 算法导论学习笔记(十三):动态规划(三):01背包问题
- 《算法导论》学习笔记(5)——动态规划:最长子序列
- 《算法导论》学习笔记——最大子数组(分治策略,动态规划)
- 《算法导论》学习笔记——钢条切割,斐波那契数列(动态规划)
- 《算法导论》学习笔记——最长公共子序列(动态规划)
- 《算法导论》笔记(9) 动态规划 部分习题
- 算法导论笔记:15动态规划
- DataSet与GridView绑定
- Irrlicht引擎
- 《怪诞行为学2》读书笔记,第三章 宜家效应:为什么我们会高估自己的劳动成果?
- java中访问修饰符的使用,方法重写定义,final修饰符,布局的特点等等:
- Scheme基本概念之External Representations
- 动态规划(算法导论学习笔记)
- STM32 -USART中断方式
- 素数定理(素数的分布)
- careercup1.7
- iOS6的framework运行在iOS5或者以下版本机器上报错的解决办法
- Google Maps API编程资源大全
- Ubuntu 12.04中文输入法的安装
- [转]Android xmlns 的作用及其自定义
- 使用ASP.NET上传图片汇总