算法设计与分析——贪心算法——具有贪心性的证明——局部最优可以得到全局最优

本文探讨了贪心算法的基础知识,包括最优子结构和贪心选择性质,并通过活动安排和最优装载问题的实例详细解释了如何证明问题具有贪心选择性质。每个例子都展示了如何通过贪心选择逐步简化问题,最终得出整体最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本知识回顾
  • 贪心算法的基本要素
    • 最优子结构性质:一个问题的最优解包含其子问题的最优解时,称这个问题具有最优子结构性质
    • 贪心选择性质:所求问题的整体最优解可以通过一系列的局部最优解选择,也就是贪心选择来得到。
      • 这也是贪心算法对于最优解问题可行的基本要素,是贪心算法区别于动态规划算法的主要区别
      • 如果要使用贪心算法,一定要证明由算法所得到的解是最优的,通过局部最优可以得到整体最优
如何证明问题具有贪心选择性质
  • 对于一个具体的问题,确定是否具有贪心选择的性质,必须证明每一步所作的贪心选择最终导致问题的整体的最优解
样例一:活动安排问题
  • 分为两步:
    • 证明总存在一个以贪心选择开始的最优活动安排方案
    • 再证明每一步所作的贪心选择都将问题简化为一个更小的与原问题具有相同形式的子问题
问题描述

在这里插入图片描述

总有一个以贪心选择为开始的最优解

在这里插入图片描述

  • 每一步所作的贪心选择都将问题简化为一个更小的与原问题具有相同形式的子问题

在这里插入图片描述

样例二、最优装载的贪心性证明
  • 对于一个具体的问题,要确定她是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解
问题描述

在这里插入图片描述

证明过程
  • 证明贪心性分两步
    • 首先证明最佳装载问题有一个最优解以贪心选择开始的,即该最优解包含最轻的物体
    • 然后证明每一个所作的贪心选择都将问题简化为一个更小的与原问题具有相同形式的子问题
  • 该问题有一个最优解是贪心选择开始的
    在这里插入图片描述
  • 每一个所作的贪心选择,都将问题转化为与更小的与原问题相同形式的子问题

在这里插入图片描述

分析与总结
  • 但愿考到
  • 照葫芦画瓢,理解起来都好办
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值