近似算法设计.ppt

  1. 1、本文档共142页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
近似算法设计

Approximation Algorithms 近似算法设计 TSP问题 最大割问题 P || Cmax问题 模拟退火算法介绍 预备 性能保证(performance guarantee) 一个最大/最小化问题的近似算法保证可以得到解至少/至多是最优解的α倍 α-近似算法(α-approximation algorithm) 一个多项式算法,具有α的性能保证 旅行售货商(TSP)问题 TSP问题 加权的完全无向图上寻找一条权和最小的Hamilton回路 附加约束:加权图满足三角形不等式 d(i,j) + d(j,k) = d(i,k) 1.5-近似算法 计算G=(V,E)的最小生成树T 令O是生成树T中度为奇数的点集 可以证明|O|是偶数 计算O子图的最小费用完美匹配M 将M中的边加入T中,所有点的度数是偶数 计算T的欧拉回路,并转化为H-回路: 若一个点两次经过:a ? … ? b ? a ? c 转化为:a ? … ? b ? c 性能分析 ZC:上述算法的解;ZTSP:最优解 分析思路 ZT:最小生成树的费用 ZM:匹配费用 最大割问题 无向图G=(V, E),选择一个点集S D(S)为只有一个端点在S中的边的集合 令d(S) = |D(S)|尽量大 α=0.5的随机算法 更好的算法 0.878-近似算法 在Rn中选择n个单位长度向量:|vi| = 1 在Rn中选择一个单位向量|r| = 1 Sn:一个n维单位球 令 则 引理 证明思路 这相当于一个随机的过原点的超平面将vi和vj分开的概率 P:vi和vj所在的二维平面 P∩Sn:一个圆 随机超平面与圆交于s和t s,t在圆上对称随机的分布 Q.E.D. 0.878-近似算法 zMC:最大割 设最大割集为T,令 可以证明 问题转化为等式的右边 0.878-近似算法 设函数f:[-1,1]?[0,1], f(-1)=1, f(1)=0 考虑优化问题P:选择一些单位向量,求 zP = 令 可以证明 算法流程 解决(P)问题得到一组向量{vi*} 随机选择一个Rn中的单位向量r 令 为求得的割 性能分析 定理 设 则 证明 (P)问题 [关键]选择一个适当的满足要求的f,使得(P)问题可解,同时ɑ较大 回顾 设函数f:[-1,1]?[0,1], f(-1)=1, f(1)=0 令 则 计算ɑ (P)问题 选择一组单位向量 求 令 ,其中 任意向量x: 知Y半正定 半定规划问题 P问题转化为 其中Y半正定,且yii = 1 半定规划问题,多项式时间内可解 “内点法” P || Cmax问题 n个工作,处理时间为p1, p2, …, pn 分配在m台机器上I1, I2, …, Im 要求 最小 Bin Packing问题 n个工作,处理时间为p1, p2, …, pn 分配在m台机器上I1, I2, …, Im 每台机器的完成时间不超过T 要求m最小 pas和fpas pas (polynomial approximation scheme) 一组算法Aeps:eps0 Aeps是一个(1+eps)-近似算法 Aeps关于确定的eps是一个多项式算法 fpas (fully polynomial approximation scheme) 一组算法Aeps是pas Aeps关于输入和1/eps是一个多项式算法 讨论 Bin Packing问题有pas吗? 普通背包问题的近似算法? 介绍一个P || Cmax问题的pas (1+eps)-判定算法 关于输入数据, eps和一个最终期限T 算法返回: NO: 不存在一个任务分配方案,每一台机器都在T时间以内完成自己的任务 YES:存在一个任务分配方案,每一台机器都在(1+eps)T时间以内完成自己的任务 此时算法同时返回分配方案 注意在某些情况下两种返回情况都可能存在 由此算法二分最终期限T 二分算法 令 则有 L = Cmax = 2L, Cmax为最优解 [证明] 易证 Cmax = L 设pk是最后一个 完成的工作 确定了二分范围 [L, 2L] 二分算法 设二分上下界为T1, T2 二分过程 调用判定算法判断中点 关于(1+eps/2)是否有解 停止条件 ,即 停止 二分次数O(log2(1/eps)) (1+eps)-判定算法:细节 删去所有的pj = eps*T 判断余下的任务是否可以在(1+eps)T时间内完成

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档