贪心算法解析:找硬币与活动安排问题
需积分: 12 98 浏览量
更新于2024-07-13
收藏 565KB PPT 举报
"本章作业涉及的是第4讲的贪心算法内容,主要讨论了贪心算法的基本思想、要素和实例分析。作业中提到了教材P142上的习题4-3,4-11,4-16,4-18,4-24。"
贪心算法是一种解决问题的策略,它在每一步决策时都采取当前状态下最佳的选择,以期望最终达到全局最优解。这种算法并不考虑整个问题的全局最优解,而是着眼于当前情况,做出局部最优决策,希望这些局部最优的累积能够导致全局最优。
在第4章中,通过找硬币的例子阐述了贪心算法的应用。例如,找给顾客6角3分时,贪心算法会选择每次都找最大面值的硬币,直到金额满足为止,这种策略在某些情况下确实能得到最少硬币数的解。然而,当问题变为找1角5分时,贪心算法(先选1角1分再选4个1分)就不再是最佳解,因为选取3个5分硬币是更优的选择,这展示了贪心算法并不总是能得到全局最优解。
接着,介绍了活动安排问题作为贪心算法的一个应用实例。在这种问题中,多个活动需要共享同一资源,如会议室,每个活动都有起始和结束时间,目标是选择最多的不冲突活动。贪心算法可以按照结束时间最早的顺序选择活动,这样每次选择的活动都不会与之前已选的活动冲突,从而尽可能多地安排活动。
在活动安排问题的定义中,有n个活动,每个活动都有起始时间si和结束时间fi,如果两个活动的结束时间早于另一个活动的起始时间,那么这两个活动是相容的,可以同时进行。贪心算法的策略是,每次选取结束时间最早的未被选中的活动,以确保选择的活动集合是最大的相容集合。
总结来说,贪心算法是一种基于局部最优解的策略,适用于某些问题,如单源最短路径问题和最小生成树问题,但在某些情况下,如找硬币或活动安排问题,它可能无法保证全局最优解。尽管如此,贪心算法在很多实际问题中仍然是一个高效的解决方案,因为它简单且计算量小,尤其在没有明确的全局最优解时,它可以提供一个接近最优的解。在学习和应用贪心算法时,理解它的局限性和适用范围至关重要。
559 浏览量
566 浏览量
2022-08-03 上传
283 浏览量
2023-05-27 上传
123 浏览量
271 浏览量
2024-12-30 上传
2024-10-28 上传

欧学东
- 粉丝: 1026
最新资源
- DeepFreeze密码移除工具6.x版本使用教程
- MQ2烟雾传感器无线报警器项目解析
- Android实现消息推送技术:WebSocket的运用解析
- 利用jQuery插件自定义制作酷似Flash的广告横幅通栏
- 自定义滚动时间选择器,轻松转换为Jar包
- Python环境下pyuvs-rt模块的使用与应用
- DLL文件导出函数查看器 - 查看DLL函数名称
- Laravel框架深度解析:开发者的创造力与学习资源
- 实现滚动屏幕背景固定,提升网页高端视觉效果
- 遗传算法解决0-1背包问题
- 必备nagios插件压缩包:实现监控的关键
- Asp.Net2.0 Data Tutorial全集深度解析
- Flutter文本分割插件flutter_break_iterator入门与实践
- GD Spi Flash存储器的详细技术手册
- 深入解析MyBatis PageHelper分页插件的使用与原理
- DELPHI实现斗地主游戏设计及半成品源码分析