请教,一个问题满足什么样的条件才能保证贪心算法可以得出最优解?

super_chris 2010-01-31 01:15:59
请教,一个问题满足什么样的条件才能保证贪心算法可以得出最优解?
在看书的时候遇到一个“找零钱”问题:目标是找67分,面值有25、10、5、2、1,目标是所用硬币数量最少。此问题用贪心可得最优解,即每次拿出不会导致总面值超过目标面值的最大面值:25+25+10+5+2=67。
但是,如果换成目标面值10分,面值种类有7、5、1,那么贪心法就不好用了,因为7+1+1+1=5+5。
想到这里,就想请教大家,一个问题满足什么样的条件才能保证贪心算法可以得出最优解?
我想应该有比较简洁的结论吧。
谢谢。
...全文
1008 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_chris 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fancymouse 的回复:]
>再请教什么是“拟阵”?
找不到资料的话搜英文matroid

>这些知识应该看什么书才有介绍?算法导论?
当然不可能是算法导论。算法导论只有基础中的基础,再往上得自己想办法,多看书多看材料甚至多看论文。
[/Quote]看来前路漫漫啊,加油吧,谢谢大牛~
FancyMouse 2010-01-31
  • 打赏
  • 举报
回复
>再请教什么是“拟阵”?
找不到资料的话搜英文matroid

>这些知识应该看什么书才有介绍?算法导论?
当然不可能是算法导论。算法导论只有基础中的基础,再往上得自己想办法,多看书多看材料甚至多看论文。
super_chris 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fancymouse 的回复:]
对于一般的问题来说,现在还没研究出通用的模型,不少贪心可以用拟阵套,但不是全部。
至于硬币贪心的话,对于给定的硬币系统,给定一个总价,求最优解是NPC的,但是确认一个给定的硬币系统是否贪心解=最优解存在一个3次方的多项式算法(三四年前国内一个regional考过的论文题)
[/Quote]
哦,谢谢了,再请教什么是“拟阵”?
还有,这些知识应该看什么书才有介绍?算法导论?
FancyMouse 2010-01-31
  • 打赏
  • 举报
回复
对于一般的问题来说,现在还没研究出通用的模型,不少贪心可以用拟阵套,但不是全部。
至于硬币贪心的话,对于给定的硬币系统,给定一个总价,求最优解是NPC的,但是确认一个给定的硬币系统是否贪心解=最优解存在一个3次方的多项式算法(三四年前国内一个regional考过的论文题)

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧