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

Yun839I 2024-11-25 14:57:13

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

1. 请用反证法证明“删数问题”的算法满足贪心选择性质(即设最优解不包含贪心选择,则可以通过转换找出一个更小的数,推出矛盾)

反证法证明“删数问题”的算法满足贪心选择性质(即设最优解不包含贪心选择,则可以通过转换找出一个更小的数,推出矛盾)

  • 假设存在一个最优解 O不包含贪心选择。

  • 我们的目标是通过这个假设推导出一个矛盾,从而证明贪心选择性质成立。

  • 在“删数问题”中,贪心选择通常指的是每次删除当前能够删除的最大数字,以期最终得到最小的剩余数。

  • 假设我们有一个序列 S={a1,a2,...,an}S={a1,a2,...,an},其中 ai是第 i个数字。

  • 根据贪心策略,我们应该先删除最大的数字。如果最优解 O不包含这种选择,那么它必然选择了某个非最大数字进行删除。

  • 假设最优解 O首先删除了数字 x,而根据贪心策略应该删除的是数字 y(且 y>x)。

  • 删除 x后,剩下的序列为 S′。

  • 现在我们考虑删除 y而不是 x,得到的新序列为 S′′。

  • 因为 y>x,删除更大的数字 y后,剩余的数字总和会小于或等于删除 x后的剩余数字总和。

  • 如果删除 y后得到的序列 S′′ 的总和比删除 x后得到的序列 S′ 的总和更小,这就说明我们找到了一个比最优解 O更优的解。

  • 这与 O是最优解的假设相矛盾。

  • 因此,假设最优解不包含贪心选择是错误的。

  • 所以,最优解必须包含贪心选择,即每次删除当前能够删除的最大数字。

由此,我们证明了“删数问题”的算法满足贪心选择性质。

 

2.结合本章的学习,总结你对贪心法的体会和思考

贪心法的核心在于每一步都做出当前看似最优的选择,期望这些局部最优选择能导致全局最优解,关键在于证明每一步的贪心选择不会错过全局最优解。算法具有“无后效性”(即某一步决策后,后续决策不再受此影响)和“贪心选择性质”。

  • 优点:贪心法通常简单高效,时间复杂度较低,适合大规模数据。

  • 缺点:并非所有问题都能用贪心法解决,有时贪心选择会导致无法达到全局最优解。例如,区间调度问题在某些情况下不能使用贪心法直接求解。

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

434

社区成员

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

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