贪心算法解决活动安排问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设有n个活动的集合E={1,2,……,n},其中每个 活动都要求使用同一资源,如演讲会场等,而在同 一时间内只有一个活动能使用这一资源。每个活动i 都有一个要求使用该资源的起始时间si和一个结束 时间fi,且si<fi。如果选择了活动i,则它在时间区 间[si,fi]内占用资源。若区间[si,fi]与区间[sj,fj]不 相交,则称活动i与活动j是相容的。也就是说,当 si>=fj或者sj>=fi时,活动i与活动j相容。活动安 排问题就是要在所给的活动集合中选出最大的相容 活动子集合。
-
若被检查的活
动小算i于的法最开思近始想选时及择间分的S析i
活动j的结束时间 fi,则不选择活 动i,否则选择活 动i加入集合A中 。
实验及其结果
实验仿真过程 在VC 6.0环境下测试贪心算法的性能 。实验过程如下:
表-2 实验输入输出参数设置
图-2 运行结果
-
实验结果分析
算法名称
比较项
末减序排列算法
贪心算法并不总能求得问题的整体最优解。但对于活动 安排问题,贪心算法却总能求得的整体最优解,即它最 终所确定的相容活动集合A的规模最大。这个结论可以用 数学归纳法证明。
-
贪心算法实现
算法思想及分析
由于贪心算法解决安排问题要考虑么个活动的结束时间, 所以先将活动按照结束时间长短进行递增排序。本贪心算 法在处理非减序排列活动队列时可以达到极高的效率。
运用贪心算法解决活动安排问题
Using the greedy algorithm to solve the problem of activity arrangement
组长:李文治 组员: 陈平 谢华欣 韩月梅
内容提要
1 问题描述 2 算法思想及分析 3 实验及结果 4 实验总结
-
问题描述
问题描述
返回
-
贪心算法
算法思想及分析
活动安排运用贪心算法的思路为,尽可能多的使更多的 事件得到资源的安排。按这种方法选择相容活动为未安 排活动留下尽可能多的时间。也就是说,该算法的贪心 选择的意义是使剩余的可安排时间段极大化,以便安排 尽可能多的相容活动。实现方法是在满足相容的条件下, 使结束时间靠前的活动得到资源,这样就为后续时间留 下更多的安排时间,以使更多的活动得到安排。
待安排的11个活动的开始时间和结束时间按结束时间的 非减序排列如下:
表1 安排活动非减序时间表
-
5
贪心算法实现
贪心算法的计算过 程如下图所示。图 中每行相应于算法 的一次迭代。阴影 长条表示的活动是 已选入集合A的活动 ,而空白长条表示 的活动是当前正在 检查相容性的活动 。源自图-1 贪心算法的计算过程图
减序算法
贪心算法
时间复杂度 O(n2)
O(nlogn) O(n)
-
8
小组任务分工
1. 算法: 2. 李文治 3. 2. PPT: 4. 制作:陈平,谢华欣,韩月梅 5. 3.文档: 6. 制作:陈平,谢华欣,韩月梅
-
-
相关文档
最新文档