1 贪婪选择性质和最优子结构性质
贪婪选择性质
贪婪选择性质:在所有可选的活动中,选择结束时间最早的活动是最优的。
证明:假设S
是所有可选活动的集合,A
是最优解的子集,即在时间上不冲突的最大集合。a1
是A
中结束最早的活动,a*
是S
中结束最早的活动。如果a1
就是a*
,那么我们已经做出了一个贪婪选择。如果a1
不是a*
,那么我们可以用a*
替换A
中的a1
(因为a*
结束时间更早或相同,不会与A
中其他活动冲突),这样我们得到了另一个最优解的子集,它也包含了同样多的活动。这证明了我们的贪婪选择不会导致次优解。
最优子结构性质
最优子结构性质:一个问题的最优解包含其子问题的最优解。
证明:假设我们已经按照结束时间对活动进行了排序,并选择了第一个活动a*
作为我们的贪婪选择。现在,我们考虑剩下的活动集合S'
,即所有与a*
不冲突的活动。按照贪婪算法,我们从S'
中选择结束最早的活动,重复这一过程。因为在每一步我们都选择了结束最早的活动,剩下的活动集合是一个新的问题实例,具有更少的选择。根据定义,这个剩余问题的最优解和全局最优解是