目录
第一步:符合贪心选择的特性(Greedy Choice Property)
第二步:符合归纳法结构(Inductive Structure)
第三步:最优子结构(Optimal Substructure)
证明符合归纳法结构(Inductive Structure)
证明贪心算法的正确性(详细总结)
证明贪心算法的结构
第一步:符合贪心选择的特性(Greedy Choice Property)
我们需要证明我们的第一个选择(贪心选择 Greedy Choice,First Choice)包含在某些最优解中
第二步:符合归纳法结构(Inductive Structure)
我们需要证明第一个选择(贪心选择)
之后,子问题
和原问题
还是同一类问题,意味着我们的选择不改变问题的结构,并且子问题
的解可以和第一个选择(贪心选择)
合并
第三步:最优子结构(Optimal Substructure)
如果我们可以最优的解决子问题
,我们可以将子问题
的解和贪心选择
得到原问题
的解
例子:部分背包问题
输入:
个物品,每个物品
有自身的重量和价值
- 1个背包,背包最多可以存放重量为
的物品
前提:每个物品可以只取其中的一部分,比如拿0.5个某物品
输出:
- 在每个物品可以只取其中的一部分的前提下,使得背包内物品价值最大