贪心算法
2016-04-21 23:04
246 查看
贪心算法的概念:
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。
贪心算法的基本要素:
1.最优子结构性质
2.贪心选择性质:指所求问题的最优解可以通过一系列的局部最优解,及贪心选择来达到。
3.贪心算法和动态规划的区别:可以用贪心算法解决的都可以用动态规划来解决,用动态规划能解决的不一定能用贪心算法解决(必须满足贪心选择性质才可以)。
⒈建立数学模型来描述问题。
⒉把求解的问题分成若干个子问题。
⒊对每一子问题求解,得到子问题的局部最优解。
⒋把子问题的解局部最优解合成原来解问题的一个解。
实现该算法的过程:
从问题的某一初始解出发;
while 能朝给定总目标前进一步 do
求出可行解的一个解元素;
由所有解元素组合成问题的一个可行解。
这是360百科对贪心算法的总结:http://baike.so.com/doc/5722655-5935386.html#5722655-5935386-3
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。
贪心算法的基本要素:
1.最优子结构性质
2.贪心选择性质:指所求问题的最优解可以通过一系列的局部最优解,及贪心选择来达到。
3.贪心算法和动态规划的区别:可以用贪心算法解决的都可以用动态规划来解决,用动态规划能解决的不一定能用贪心算法解决(必须满足贪心选择性质才可以)。
基本思路
⒈建立数学模型来描述问题。⒉把求解的问题分成若干个子问题。
⒊对每一子问题求解,得到子问题的局部最优解。
⒋把子问题的解局部最优解合成原来解问题的一个解。
实现该算法的过程:
从问题的某一初始解出发;
while 能朝给定总目标前进一步 do
求出可行解的一个解元素;
由所有解元素组合成问题的一个可行解。
这是360百科对贪心算法的总结:http://baike.so.com/doc/5722655-5935386.html#5722655-5935386-3
相关文章推荐
- 测试作业
- ElasticSearch2.2.1之IK分词器的安装
- Oracle安装问题: 输入的ADMIN 口令不符合Oracle建议的标准
- StackOverflow程序员推荐:每个程序员都应读的30本书
- GridLayout 计算器
- 1-分布式架构
- 【Android】内存泄漏调试
- MarkDown学习笔记
- ASP.NET MVC之从控制器传递数据到视图四种方式
- C语言问卷调查
- 贪心-背包问题
- 特征提取相关网址
- [HTTP:101170]The servlet DelServletContextAttr is referenced in servlet-mapping /servlet/DelServlet
- postfix 配置之 开启SASL认证遇到的问题
- 链表相关操作
- [Contiki系列论文之3]Protothread:简化内存受限系统上的事件驱动编程
- Spark-spark streaming
- android 横竖屏切换
- 周记
- VS2008切换时卡死解决方法