设计郑宗汉郑晓明近似算法

上传人:宝路 文档编号:54413836 上传时间:2018-09-12 格式:PPT 页数:39 大小:336.54KB
返回 下载 相关 举报
设计郑宗汉郑晓明近似算法_第1页
第1页 / 共39页
设计郑宗汉郑晓明近似算法_第2页
第2页 / 共39页
设计郑宗汉郑晓明近似算法_第3页
第3页 / 共39页
设计郑宗汉郑晓明近似算法_第4页
第4页 / 共39页
设计郑宗汉郑晓明近似算法_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《设计郑宗汉郑晓明近似算法》由会员分享,可在线阅读,更多相关《设计郑宗汉郑晓明近似算法(39页珍藏版)》请在金锄头文库上搜索。

1、第15章 近似算法,0/1背包 MM MST TSP就是货郎担问题,第15章 近似算法,很多问题的输入数据是用测量方法取得的, 存在一定的误差, 即输入数据是近似的。 很多问题的最优解允许有一定程度的近似, 只要误差在一个有效范围内即可。 采用近似算法可以在很短时间内得到问题的解 (与指数时间相比较)。,15.1 近似算法的性能比,1. 近似算法的基本要求 算法能在问题规模n的多项式时间内完成; 算法的近似解满足一定的精度要求。,2. 近似算法的近似比 令表示一最小化问题, I是的一个实例, A是求解的一个近似算法, A(I)是近似解值, OPT是求解的最优算法, OPT(I)是最优解值, 则

2、近似算法A的近似比为:A(I)=A(I)/OPT(I) 若是最大化问题, 则A(I)= OPT(I)/A(I),说明: 1) 对最小化问题, 有A(I)OPT(I)对最大化问题, 有A(I)OPT(I) 2) 近似算法的近似比总大于等于1 3) 近似算法的近似比越小, 性能越好,A(I)=A(I)/OPT(I) A(I)= OPT(I)/A(I),3. 近似算法的相对误差 相对误差的定义:,相对误差的界(n):,近似比与相对误差界的关系: (n) A(I)-1, 即A(I) 1+(n),4. 优化问题的近似方案 (approximation scheme) 很多难解问题可通过增加近似算法的计算

3、量来改善其性能; 优化问题的近似方案把满足A(I,)1+(在误差范围内)的一类近似算法A|0称为优化问题的近似方案, 这些算法的性能比率会聚于1。,多项式近似方案若近似方案中的每个算法A均以输入实例规模的多项式时间运行, 则称该近似方案为多项式近似方案(Polynomial Approximation Scheme)多项式近似方案中算法的计算时间不随的减少而增长太快。,完全多项式近似方案若近似方案中每个算法的计算时间是1/和n的多项式, 则称该近似方案为完全多项式近似方案(Fully Poly-nomial Approximation Scheme),满足三角不等式的旅行商问题 欧几里得旅行商

4、问题: 给定赋权无向图G=(V,E), 旅行商问题求图中最短Hamilton回路。若图中顶点是平面上的顶点, 以任意两顶点之间的欧几里德距离作为它们之间的距离, 则为欧几里德旅行商问题。,15.2 欧几里得旅行商问题,算法1. 最近邻算法(NN, 贪心) kruscal 任选一个顶点作为起点, 选取最邻近该起点的一个顶点, 关联于起点和该顶点的边作为初始旅游通路; 令v表示刚加到旅游通路上的新顶点。在不属于该旅游通路上的顶点中选一个最邻近顶点v的顶点v, 将关联于v与v的边加到已有旅游通路上;,重复执行(2), 逐点扩充旅游通路, 直到所有顶点都包含在这条旅游通路上; 将形成的旅游通路的起点和

5、终点用边联结, 形成所求的旅游回路.NN算法: NN=,算法2. 最小生成树算法(MST) 对旅行商问题任意实例对应的赋权图, 调用最小生成树算法, 求其最小生成树; prim O(n2) 或 kruscal O(nlogn) 复制最小生成树的每条边, 即沿每条边来回走两次, 形成欧拉图; 在这个欧拉图中寻找其欧拉回路; 利用“抄近路”方法将欧拉回路变成所求旅游回路 (因满足三角不等式,故采用“抄近路”方法不会增加旅游回路的长度)。,定理1. 对满足三角不等式的旅行商问题的任意实例I, 有MST2 证明: 因最小生成树长度 OPT(I),AMST(I) 2*最小生成树长度,故 AMST(I)

6、2*OPT(I)即 MST(I)=AMST(I)/OPT(I)2,MST算法的实现步骤 用Prim或Kruskal算法构造给定赋权图的最小生成树; 用深度优先搜索算法遍历最小生成树, 得到按先序遍历顺序存放的顶点序号(得到序列), 则数组中顺序存放的顶点序号即为欧几里德TSP的近似解。,算法3. MM算法 对旅行商问题任意实例对应的赋权图, 调用最小生成树算法, 求其最小生成树T; 对最小生成树T中顶点的度数为奇数的顶点集V=a1,a2,a2k, 调用最小对集(偶数个顶点的完全图)算法, 在图G中求出V的最小对集M;(度数为奇数的点一定是偶数个)。,在最小生成树T上添加V的最小对集M, 形成欧

7、拉图G;(每个点的度数都是偶数) 在欧拉图G中寻找其欧拉回路(找到定点序列); 利用“抄近路”方法将欧拉回路变成所求的旅游回路。,定理2. 对满足三角不等式的货郎问 题的任意实例I, 有MM3/2证明: (1)最小生成树T的边长之和小于最短旅游回路; d(T)OPT(I) (2)因实例满足三角不等式, 故赋权图G中经过V中顶点的最短旅游回路长度必小于经过图G中所有顶点的最短旅游回路长度。d(ep)=1/2opt(i),在经过V中顶点的最短旅游回路中, 每隔一条边删除一条边, 得到V的对集M, 而步骤(2)找出的是V的最小对集M。它们之间的关系为:最小对集M中边长度之和 对集M中边长度之和 V中

8、最短回路长度的一半 实例I中最短回路长度的一半 因此,步骤(2)中求出的V中最小对集M的边长度之和不会超过实例I中最短回路长度之和的一半;,(3)欧拉图G的所有边长度之和小于实例I中最短回路长度之和的3/2倍; (4)因满足三角不等式, 故采用抄近路方法在欧拉图G中找出的旅游回路长度AMM(I)小于实例I中最短回路长度的3/2倍. 因此, AMM(I)3/2OPT(I), 即MM 2 算法所求解为u1, 最优解为u2 C可能任意大, 故性能比可能无界.对算法做简单修改可使性能比为2.,修改算法的步骤: 对物体按pi/vi降序排序, 并依次装入背包, 得到价值为pr的解; 挑选一个价值最大的物体

9、装入背包, 得到价值为ps; 选择pr和ps中较大者作为输出。,算法 Knapsack-Problem近似算法 输入: U=u1,u2,un,V=v1,v2,vn,P=p1,p2,pn, C 输出: 价值最大的子集SU排序使 p1/v1 p2/v2 pn/vni0; v0; p0; S; /初始化,while in and vC if vi C-v SSui; vv+vi; pp+pi;ii+1;令S=us, 其中us为价值最大物体;If pps return S; else return S.,0/1背包问题的多项式近似方案 算法步骤: n个物体按价值体积比递减排序;k=1/; i=0; f

10、or(i=0;i=k;i+) for(j=1;j= Cni;j+) 2) j=1; 3)从n个物体中选取i个物体放进背包,这种选择共有Cni组, 选择第j组i个物体, 其余物体的选择按贪心算法执行; 令结果背包中物体总价值为vj, 保存背包中物体序号的数组为kpj;,4)若jk, 令Y=u1,u2,uk是X中k个价值最大的物体集合,令Z=uk+1, uk+2, , ur是X中其余物体的集合。,平均数:当ik+1时,平均值一直在减少 假定对满足k+1 i r-1的所有的i, 有,对所有的i, i=k+1, , r, 有,|X|k, 集合Y必是算法第3步中Cni组选择中的某一组选择。 算法所选物体一部分包含在集合Z中, 另一部分不包含在集合Z中。 令不包含在Z中那部分物体为W, 必定存在物体um使得Z中uk+1, uk+2,um-1是算法所选物体。,把最优解的结果写成:,把算法的结果写成:,令C为背包中装入物体u1,u2, um-1之后的剩余容量,则有 分数背包:,令装入C为算法所有物体之后的剩余容量, 即,则有,则对uiW, uiu1, u2, um, 放不下了 根据算法的贪婪选择性质, 有,整理得:,因此, 有,由算法的时间复杂性可看出, 算法的运行时间是1/和n的多项式时间, 故该算法是一个完全多项式近似算法。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号