📅  最后修改于: 2020-12-10 06:39:55             🧑  作者: Mango
活动选择问题是数学优化问题。我们的第一个例子是在几个挑战活动之间安排资源的问题。我们发现,贪心算法为选择最大规模的手动兼容活动提供了一种精心设计且简单的方法。
假设S = {1,2 …. n}是n个提议活动的集合。该活动分享这只能由一个活动同时使用的资源,例如,网球场,演讲厅等。每个活动,“我”开始时间s i和结束时间F i,其中的I≤f我。如果选择的活动“ i”同时发生在半开放时间间隔[s i ,f i )。活动i和j是兼容如果间隔(S I,F i)和[S I,F I)不重叠(即,i和j是兼容如果s我≥fi或的I≥fi)中。活动选择问题选择了相互一致活动的最大大小集。
示例:给定10个活动及其开始时间和结束时间
计算一个计划,其中进行最大数量的活动。
解决方案:使用贪婪策略解决上述活动计划问题的方法如下所示:
以结束时间的升序安排活动
现在,计划A 1
作为A 1和A 3的下一个时间表A 3是无干扰的。
接下来,跳过A 2,因为它正在干扰。
接下来,作为A 1 A 3和A 4的调度表A 4不干扰,然后,作为A 1 A 3 A 4和A 6的调度表A 6不干扰。
跳过A 5即可。
接下来,时间表A 7为A 1 A 3 A 4 A 6和A 7中的非干扰。
接下来,时间表A 9为A 1 A 3 A 4 A 6 A 7和A 9互不干扰。
跳过A 8,因为它会干扰。
接下来,时间表10为A 1 A 3 A 4 A 6 A 7 A 9和A 10是无干扰的。
因此,最终的活动计划为: