算法设计与分析第四章作业

殃忽 2024-11-24 20:04:43

一、反证法:

  1. 假设最优解不包含贪心选择:我们假设在最优解 S 中,贪心选择 C(即当前可以选择的最大数字)并未被包含。我们称 C 为 x,它是数组中某个位置的数。

  2. 定义新解:由于 C(即 x)没有被包含在 S 中,那么在 S 中一定存在另一个数字 y 作为替代,且 y 是从 S 中选择的一个数字(注意:由于不允许选择相邻的数字,y 必然和 x 不是相邻的)。

  3. 比较和:因为 C 是当前选择的最大数字,那么显然有 x > y。为了构造一个新的解,我们将 S 中的 y 移除,并将 x 加入。

  4. 构造新的解:设 S' 是新构造的解,S' = S - {y} + {x}。由于 x > y,所以我们有:
    sum(S′)=sum(S)−y+x>sum(S)
    这说明 S' 的和大于 S 的和。

  5. 推出矛盾:根据我们的假设,S 是最优解,但现在我们得到了一个更大的和的解 S',这与我们对于 S 为最优解的假设矛盾。

因此,假设不成立,即最优解 S 必须包含贪心选择 C,“删数问题”的贪心算法是有效的,且满足贪心选择性质。

 

二、对贪心法的体会与思考:

      贪心法是一种高效的算法设计思想,通过在每一步做出局部最优选择来构建全局最优解,适用于具有贪心选择性质和最优子结构的问题。然而,并非所有问题都适合贪心算法,因此在应用时需谨慎分析问题性质。贪心法实现通常简单,时间复杂度低,但要求合理选择相应的数据结构。此外,反证法是证明贪心选择性质的重要工具,帮助验证算法的正确性。总体而言,贪心法是一种强大而实用的优化策略,适用于解决许多经典问题。

...全文
40 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

434

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧