第六章基本算法设计策略——分治法.pptxVIP

第六章基本算法设计策略——分治法.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VI、基本算法设计策略基本策略分治法贪婪法动态规划法搜索策略§6.1分治法 快速排序算法的设计与分析快速变换:FFT及快速数论变换例:整数相乘N位整数相乘需要 次乘法4837*5261=4837=48*100+37=100*w+x5261=52*100+61=100*y+z?4837*5261=(100*w+x)*(100*y+z)=10000wy+100(wz+xy)+xz(w+x)(y+z)=wy+(wz+xy)+xz从而,仅需3次乘法即可完成?该算法即STARSSEN矩阵乘法的来源 极大极小同时查找数组中的最大最小元用分治法解决上述问题:如果集合中只有1个元素,则它既是最大值也是最小值;如果有2个元素,则一次比较可得到最大和最小;;如果把集合分成两个子集合,由两组最大元比较得到最大元,两组最小元比较得到最小元。递归的应用这个算法!2.FFT卷积:多项式的积: 及 ,并且 ,则DFT定义:序列 的离散傅氏变换为?该变换的逆变换为: 令 ,则上式可写为 :其它的一个重要性质:时域卷积对应于频域积。 多项式的积两个多项式的积:其中此即卷积运算; 序列运算可用蝶形表示: 对于以下的8个的情形, 这一描述复杂并且不直观。 这一变换基于运算中的性质:从算法分析角度:于是:分别考虑对其奇数项和偶数项作傅氏变换:则 从而,可以将对N个量的傅氏变换变成为对两个规模更小的序列(在小为一半)的变换。这样,将变换的量大大减小。 实际计算时,注意到对另外一半 时:复杂度 ,则得令从而快速傅氏变换的复杂性度为应用:大数乘法利用FFT计算积A=1634,B=9827即对A与B进行逐一做积进行反变换:舍入成整数 :数表示成 : 注意到可能的截断误差,使用数论变换更为适合数论变换考虑在模F的域上的变换:其中 , 为在模F域上的逆。一般取F:Mersenne数 或Fermat数这样即可免去误差。缺陷:无直接的物理意义。数论变换取Fermat数F=257, 找到为反数论变换后得贪婪法以当前的信息为基础做出最佳决策 Huffman编码 例:分数分解 给定分数 分解为 其中算法算法:找到最接近的数i=1Label2: If p=1 then k(i)=q stop1/k(i)=largest reciprocal less than p/qp/q=p/q-1/k(i)goto label2;该算法非最优的:但上面算法给出的结果为物品重量价值180202301534014背包问题,值假定有一个包可放N个物品,每个物品重包能够放的重量为W。使在不超重的情况下装物品有最大的价值。例:背包可容纳重量:为W=100;?使用贪婪法,则只能放入一个物品:即物品1,价值20;物品重量价值单价160200.333220100.5340120.3435110.314显然,最优解为物品2和物品3:价值29如果允许分数的,则可以找到最优解。该问题是NP完全问题!使用贪婪法:价值:物品1、3,重量100,价值为32;单价:物品2、1,重量80,价值为30;最优值:物品2、3、4,重量95,价值33?ABCDEA-1091512B10-111311C911-1110D151311-12例:TSP假定旅行商要访问N个城市,每个城市都有到其它城市的路,要找一个最短的路径。算法:在剩下的城市中找最近的点做为下一个目标;使用贪婪法,从A出发得到的最短路径:一个更好的选择:活动安排问题活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi 。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源。若区间[si, fi)与区间[sj, fj)不相交,则称活动i与活动j是相容的。也就是说,当si≥fj或sj≥fi时,活动i与活动j相容。例:待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下:i1234567891011s[i]130535688

文档评论(0)

职教魏老师 + 关注
官方认证
服务提供商

专注于研究生产单招、专升本试卷,可定制

版权声明书
用户编号:8005017062000015
认证主体莲池区远卓互联网技术工作室
IP属地河北
统一社会信用代码/组织机构代码
92130606MA0G1JGM00

1亿VIP精品文档

相关文档