【说人话的算法小课堂】贪心法-活动安排问题(正确性证明)

本文通过贪心法解决活动安排问题,先将活动按结束时间升序排序,然后从最早结束的活动开始选择,确保不冲突。文章提供了详细证明,阐述为何这种策略可得到最优解,采用反证法说明不选择最早结束的活动会导致解非最优。
摘要由CSDN通过智能技术生成

在这里插入图片描述另一证法
a_k 代表第 k 个活动,s_k 和 f_k 代表活动 k 的开始时间和结束时间。
在这里插入图片描述

活动安排问题
设有n个活动,编号分别为1,…,n。每个活动进行期间都始终需要占用某个物品(资源)。
活动k的起始和结束时间分别为b_k,e_k,它们均为非负整数。
一旦活动开始,就不允许被中断,直至活动结束。
要求给出活动安排方案,使得能进行的活动数量最多。如果有多个最优解,输出任意一个。
解法
【1】将各个活动{a_n }按结束时间升序排序。
【2】设E为已选取的最后一个活动的结束时间,其初值为E=0。
【3】从排序后的第一个活动开始,循环如下部分:
对第i个活动:
【3.1】如果该活动的开始时间b_i<E,则其时间与已选活动冲突,不选取。
【3.2】如果该活动的开始时间b_i≥E,则选择该活动,更新E=e_i。
证明
此方法属于贪心。
设未考察的活动为A^’={a_m,a_(m+1),…,a_n },m=1,2,…,n。随着上述算法的运行,将逐渐构造出一个解X。即证:
若要使X为最优解,则下一个选择的活动必为a_k,其中m≤k≤n,a_k代表与其结束时间相同的若干个活动中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值