贪心算法之证明要点----算法导论16.2---5
来源:互联网 发布:nginx 配置http 307 编辑:程序博客网 时间:2024/06/04 00:57
贪心算法之证明要点----算法导论16.2---5
目标:只需证明存在一个最优解是以贪心选择得到的,就ok了。一般先假设一个最优解,用剪切黏贴技术(参考算法导论)
两个性质:
贪心选择性质:一个全局最优解可以通过局部最优得到。即存在一个最优解是以贪心选择开始的。
最优子结构:一个最优解包括期子问题的最优解。即一个n的最优解分解成第一步的贪心选择,和n-1的子问题,这个n-1的子问题也是最优的。
最后要说明,第一步的贪心选择和n-1的子问题可以合并成一个全局最优解。
现以算法导论16.2---5习题做说明
问题如下:给定数轴上的n个点,求最少能够包含给定点的单位闭区间集合。
贪心选择是:设一个当前开始选择的坐标。从坐标最小的点开始,直到最接近的单位闭区间长度的点,这一段,用一个闭区间来覆盖。当前的点=下一个最小的点,重复,直至结束。
现证明这个可以得到最优解。
贪心选择性质:
现假设一最优解A={a1,a2……an}为单位闭区间集合。对m个点以坐标排序,从小到大。
现有一个单位区间ak,从m个点中最小的点开始,长度为单位长度。a1的起始坐标必然<=ak的起始坐标(第一点的坐标),a1覆盖点的数目必然<=ak的数目(因为ak是从第一个点开始的)(A-a1) U ak,(剪切黏贴)也是一个最优解。
最优子问题性质:
做出第一步的贪心ak之后,A-ak是子问题m-1的最优解。
反证法:假设存在有一个更优的解B,B U ak必然是比A更优的解,矛盾。
贪心选择ak和子问题可以合并成一个最优解。
- 贪心算法之证明要点----算法导论16.2---5
- 函数增长之难题证明(算法导论)
- 【算法导论】贪心算法之背包问题
- 算法导论贪心算法之活动选择
- 【算法导论】贪心算法之赫夫曼编码
- 算法导论之贪心算法:哈夫曼编码
- 贪心算法证明问题
- 贪心算法正确性证明
- 算法导论 3.1-1证明
- 算法导论31.7-2 证明
- ACM贪心算法之活动安排以及算法证明
- 算法导论-贪心策略
- 算法导论—贪心算法
- 算法导论-证明强连通分量算法
- 贪心算法证明的回忆
- 《算法导论》之 贪心算法—活动选择问题
- 【算法导论】贪心算法之活动安排问题
- 算法导论第16章 贪心算法之活动选择
- VC6 中编译使用 pjsip 的工程
- Php study1
- 访问内网问题
- Leetcode Populating Next Right Pointers in Each Node II
- sgu 544 Chess Championship
- 贪心算法之证明要点----算法导论16.2---5
- Linux随机数发生器导致Apache进程全部Block的问题
- HDU 1715 大菲波数 大数
- javamail发送邮件的简单实例
- html5介绍
- Java_io体系之概念与整体结构——02
- C语言头文件
- 黑马程序员-----程序员之路_____正则表达式
- SQL安装失败