贪心选择性质的证明

189 篇文章 0 订阅
162 篇文章 0 订阅

1、贪心选择性质:在求解一个最优化的过程中,使用贪心的方式选择了一组内容之后,不会影响下面的子问题的求解。

 

2、

如果无法使用贪心性质,只需要举出一个反例就可以了

 

 

3、比如0-1背包问题

但是这个问题将1号物品和2号物品放进背包,最终得到的价值是10+12=22,这样一个反例就告诉我们贪心算法不成立

4、

直觉解法就是把比这个数小的最大的完全平方数加进这个数中,比如对于12来说,最大的完全平方数是9,剩下的事情是凑3,那么比3小的最大的完全平方数就是1,最终使用贪心的算法求解出12=9+1+1+1,一共使用了4个完全平方数,可是,12可以使用3个4来表示,那么,这个反例就告诉我们,贪心算法是不成立的。对于这两个问题来说,可以说是不包含贪心选择性质的。

 

5、

如果在算法领域,遇到了需要使用数学证明的问题,通常首先想到的是使用两种方式,这两种方式分别是数学归纳法和反证法。数学归纳法相当于是递推的过程,就像动态规划的过程,将基本的问题解决之后,假设规模为n的问题可以解决,就能推导出规模为n+1这样的问题。对于数学归纳法所适用的领域,通常都是有一个变量n在逐渐增加的过程。对于现在这个问题,显然不是这样的。另外一种在数学领域经常使用的就是反证法,所谓反证法就是假设它不正确,然后看可不可能推导出矛盾。

 

6、

 

 

 

7、

8、

 

  • 11
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
贪心选择性质是指在求解最优化问题时,通过每一步选择当前局部最优解,最终得到全局最优解的性质。要证明一个算法具有贪心选择性质,一般需要使用贪心选择性质证明方法,即贪心选择性质证明模式。 下面以证明Dijkstra算法具有贪心选择性质为例: 假设我们要求解从顶点A到顶点B的最短路径。Dijkstra算法每次选择当前未标记的顶点中,与起点A距离最短的顶点作为下一步的访问节点。我们假设在某一步中,Dijkstra算法选择了顶点C作为下一步访问节点,而不是距离更短的顶点C'。 现在假设C'是从A到B的最短路径上的一个顶点。根据Dijkstra算法的选择规则,我们可以得出以下结论: 1. 在选择C之前,C'已经被标记并确定了最短路径。 2. 在选择C之前,C'的距离已经被计算并更新为最短路径距离。 3. C'的距离必然小于等于C的距离。 根据上述结论,我们可以推出: 1. 如果C'是最短路径上的一个顶点,那么在选择C之前,C'已经被访问并更新为最短路径。 2. 如果C'是最短路径上的一个顶点,那么C'的距离必然小于等于C的距离。 因此,假设Dijkstra算法选择了顶点C而不是C',那么C'必然不是最短路径上的一个顶点,与我们的假设相矛盾。所以Dijkstra算法具有贪心选择性质。 以上是对Dijkstra算法的贪心选择性质进行证明的一个简要过程。在实际证明中,可能需要更详细的推导和分析。对于其他算法的贪心选择性质证明,也需要根据具体情况进行类似的推理和论证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值