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