前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >贪心算法

贪心算法

作者头像
刘开心_1266679
发布2019-02-14 15:33:37
9180
发布2019-02-14 15:33:37
举报

贪心算法的基本思想:

------求解最优化问题的算法包含一系列步骤

------每一部都有一组选择

------做出当前看来最好的选择

------希望通过做出局部优化选择达到全局优化选择

------贪心算法不一定总产生优化解

------贪心算法是否产生优化解,需要严格证明

贪心算法产生优化解的条件

------贪心选择性:若一个优化问题的全局优化解可以通过局部优化选择得到,则该问题成为具有贪心选择性

------优化子结构

与动态规划方法的比较

------动态规划方法可用的条件:(1)优化子结构(2)子问题重叠性(3)子问题空间小

------贪心法可用的条件:(1)优化子结构(2)贪心选择性

举例:

(1)最优装载问题。给出n个物体,第i个物体重量为wi.选择尽量多的物体,使得总重量不超过C。

分析:由于只关心物体的数量,所以装重的没有装轻的合算。只需把所有物体按重量从小到大排序,一次选择每个物体,直到装不下为止。这是一种典型的贪心算法,它只顾眼前,但能得到最优解。

(2)部分背包问题。有n个物体,第i个物体的重量为wi,价值为vi,在总重量不超过C的情况下让总价值尽量高。每一个物体都可以只取走一部分,价值和重量按比例计算。

分析:本题在上一题的基础上增加了价值,所以不能简单地像上一题那样先拿轻的,因为轻的可能价值也小,也不能先拿价值大的,可能它特别重,而应该综合考虑两个因素。一种直观的贪心策略是:优先拿“价值除以重量的值”最大的,直到重量和正好为C。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年03月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档