问题描述:
有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用。每个活动ai都有一个开始时间和结束时间,且 0<= si < fi <无穷 。一旦被选择后,活动ai就占据半开时间区间[si,fi)。如果[si,fi)和[sj,fj)互不重叠,则称两个活动是兼容的。该问题就是要找出一个由互相兼容的活动组成的最大子集。
定义子集合Sij = { ak S : f i <= sk < f k <= s j}, 即每个活动都在ai结束之后开始,在aj开始之前结束,