浅谈动态规划,贪婪,回溯算法联系
来源:互联网 发布:淘宝视频用什么拍好看 编辑:程序博客网 时间:2024/05/06 14:45
那么看到这三种算法,你应该有所出现:
贪心法是动态规划法的特例,如0-1背包,最小代价生成树(prim算法和cruskal算法),huffman算法,以及地杰斯特拉算法。
动态规划法是一种方法,注意和算法的区别。如多段图问题,备忘录方法,弗洛伊德算法,最长公共子序列问题
回溯法是比动态规划法更加一般的算法,如n皇后,子集和数问题
那么,这三种有什么区别呢?
首先,这些方法所要解决的问题,一般都是决策问题。而贪心法一般是来求解最优问题的,而且他们其实都是在对问题的状态空间树进行搜索,在这个状态空间树中搜索最佳的路径以便求出最优策略。而贪心法是从上到下只进行深度搜索的,也就是说它是一口气走到黑的,一口气吃成胖子的,它的代价取决于子问题的数目,也就是树的高度,每次在当前问题的状态上作出的选择都是1,也就是说,它其实是不进行广度搜索的,这也造成了它的一个缺点:它得出的解不一定是最优解,很有可能是近似最优解。而动态规划法在最优子结构的前提下,从状态空间树的叶子节点开始向上进行搜索,并且在每一步都根据叶子节点的当前问题的状况作出选择,从而作出最优决策,所以她的代价就是子问题的个数和可选择的数目,所以它求出的解一定是最优解。回溯法是从上到下进行深度搜索,如果深度搜索没有进行到底而不满足决策函数了,那么不好意思,请回去,然后再从最近的可以岔开的地方选择另一条路,继续之前的深度搜索,如果搜索到底,那么再通过for循环进行广度搜索。所以它也是深度搜索和广度搜索并行的。求出的解也一定是最优解。
0 0
- 浅谈动态规划,贪婪,回溯算法联系
- 贪婪算法和动态规划
- 分治算法,动态规划,贪婪算法以及递归之间的区别与联系
- 浅谈动态规划法与贪心法和回溯法的联系
- 浅谈动态规划法与贪心法和回溯法的联系
- 分治、动态规划、贪婪 之 算法分析
- 分治,动态规划和贪婪算法
- 【贪婪算法、动态规划】Jump Game II
- 动态规划与贪婪算法学习笔记
- 剑指offer------动态规划与贪婪算法
- 【算法】动态规划与贪婪法区别
- 动态规划算法和贪婪算法的区别
- 算法总结1——贪婪算法,动态规划
- 算法导论(八)——动态规划&贪婪算法
- 递归,回溯,合并,动态规划算法笔记
- 递归,回溯,合并,动态规划算法笔记
- 背包问题 动态规划和回溯算法
- 递归,回溯,合并,动态规划算法笔记
- 《深入理解Java虚拟机(第2版)》的笔记-第89页
- leetcode_c++:Longest Consecutive Sequence(128)
- JAVA特性多态之覆盖
- 数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL
- JS匀速运动
- 浅谈动态规划,贪婪,回溯算法联系
- 4道面试题检测你是不是菜鸟!
- POJ-1330 LCA的两种写法
- iOS之应用程序国际化
- 你需要知道的Android拍照适配方案
- php学习笔记之PDO异常处理
- Apache Shiro 移动端认证回调函数授权登录
- HeadFirst设计模式学习之组合模式
- Spring学习(二十一)Spring自动装配Bean的属性