【动态规划-贪心】区间调度问题

每一个贪心算法背后几乎总有一个动态规划算法

从区间调度问题中理解动态规划贪心

摘抄自卜老师的《算法讲义》:
【动态规划-贪心】区间调度问题_第1张图片

使用动态规划求解

  1. 首先该设所有的课程已经按照它们的结束时间排序
  2. 对于这个问题,一下子可能我们无从下手,考虑是否可以被转化成小一点的子问题
  3. 我们把这个求解过程想象成一系列的决策,在每个步骤,我们都要选择一门课。假如我们已经拿到了最优解,我们就问最优解中最后一个决策到底是什么?也就是后一门课你是选了呢还是没选?

假如说选了这么课A9,那么A8 不能选了,因为跟A9 时间有冲突,就把问题规约成了一个七门课的问题(蓝框中)
【动态规划-贪心】区间调度问题_第2张图片
如果A9没有选,则考虑8门课
【动态规划-贪心】区间调度问题_第3张图片
【动态规划-贪心】区间调度问题_第4张图片

使用贪心求解

贪心无法解决上面的带权重的问题(即上面每一个Wi不同的问题)

【动态规划-贪心】区间调度问题_第5张图片
【动态规划-贪心】区间调度问题_第6张图片
【动态规划-贪心】区间调度问题_第7张图片

动态规划和贪心的异同

【动态规划-贪心】区间调度问题_第8张图片

总结

贪心经常指望经验和灵感,但是很多时候灵感是靠不住的

你可能感兴趣的:(算法)