证明贪心算法的正确性(详细总结)

本文详细介绍了证明贪心算法正确性的三个步骤:贪心选择特性、归纳法结构和最优子结构,并通过部分背包问题为例,展示了如何应用这些步骤来证明贪心算法的正确性。
摘要由CSDN通过智能技术生成

目录

证明贪心算法的正确性

证明贪心算法的结构

第一步:符合贪心选择的特性(Greedy Choice Property)

第二步:符合归纳法结构(Inductive Structure)

第三步:最优子结构(Optimal Substructure)

例子:部分背包问题

定义我们的算法:

证明符合贪心选择的特性:

证明符合归纳法结构(Inductive Structure)

证明最优子结构(Optimal Substructure)


证明贪心算法的正确性(详细总结)

证明贪心算法的结构

第一步:符合贪心选择的特性(Greedy Choice Property)

我们需要证明我们的第一个选择(贪心选择 Greedy Choice,First Choice)包含在某些最优解中

第二步:符合归纳法结构(Inductive Structure)

我们需要证明第一个选择(贪心选择)\widehat{c}之后,子问题P'和原问题P还是同一类问题,意味着我们的选择不改变问题的结构,并且子问题P'的解可以和第一个选择(贪心选择)\widehat{c}合并

第三步:最优子结构(Optimal Substructure)

如果我们可以最优的解决子问题P',我们可以将子问题P'的解和贪心选择\widehat{c}得到原问题P的解

例子:部分背包问题

输入:

  • n个物品,每个物品i有自身的重量和价值(w_i, v_i)
  • 1个背包,背包最多可以存放重量为M的物品

前提:每个物品可以只取其中的一部分,比如拿0.5个某物品i

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YifengGuo233

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值