优化问题的算法通常会通过一系列的步骤,在每一个步骤通过一系列的选择。一个贪婪算法总是目前看起来最好的选择。也就是说,它做出局部最优选择,希望选择将导致全局最优的解决方案。贪心算法并不总是能得到最优解,但对于许多问题它们都能得到最优解。
活动选择问题
几个相互竞争的活动需要共同的资源,目标是在活动不发生冲突的前提下,选出最多可举办的活动数。假设我们有一个集合提议希望使用资源的活动,例如一次只能由一个活动使用的演讲厅。每个活动ai都有一个开始时间si和一个结束时间fi,
。如果选择,活动ai发生在半开时间间隔[si,fi)的情况下,活动ai和aj是兼容的,间隔[si,fi)和[sj.fj]不重叠的。活动选择问题是选择相互兼容的活动的最大子集。
按开始时间最早的排序;X
按时间间隔最短的排序;X