考虑活动选择问题的一个变形:每个活动ai除了开始和结束时间外,还有一个值vi。目标不再是求规模最大的兼容活动子集,而是求值之和最大的兼容活动子集。也就是说,选择一个兼容活动子集A,使得
最大化。设计一个多项式时间算法求解此问题。
活动选择问题描述:
假定有一个n个活动的集合S = {a1, a2, ...., an}, 这些活动使用同一个资源,而这个资源在某一刻只能供一个活动使用。每个活动ai有一个开始时间si和结束时间fi, 0 ≤ si < fi < +∞.
如果被选中,任务ai发生在半开时间区间[si, fi)。 如果两个活动ai, aj满足[si, fi), [sj, fj)不重叠,则他们是兼容的。即若si ≥ fj 或 sj ≤ fi,则ai, aj是兼容的。
假定活动已按结束时间的单调递增顺序排序:f1 ≤ f2 ≤ f3 ≤....≤ fn-1 ≤ fn
假定有一个n个活动的集合S = {a1, a2, ...., an}, 这些活动使用同一个资源,而这个资源在某一刻只能供一个活动使用。每个活动ai有一个开始时间si和结束时间fi, 0 ≤ si < fi < +∞.
如果被选中,任务ai发生在半开时间区间[si, fi)。 如果两个活动ai, aj满足[si, fi), [sj, fj)不重叠,则他们是兼容的。即若si ≥ fj 或 sj ≤ fi,则ai, aj是兼容的。
假定活动已按结束时间的单调递增顺序排序:f1 ≤ f2 ≤ f3 ≤....≤ fn-1 ≤ fn
