AOR5 斯坦纳树、旅行商问题
斯坦纳树、旅行商问题
本节轮到我们这组做lecture notes,提交上去的是用latex处理的整理结果。这里我把自己的笔记基本更新成和lecture notes一致了,内容更少一些,个别表达有所不同。
斯坦纳树问题
斯坦纳树问题:给定,其中满足三角不等式。对于点集,求的连通子图,使得中的点彼此联通,并且选中的边权和最小。显然,最优解的必定是一棵树,我们记作斯坦纳树,中的点记作斯坦纳点。
斯坦纳树问题的求解是一个NP-Hard问题。在本节中,我们重点关注该问题的近似算法,同时为了简单起见,我们仅讨论完全图上的斯坦纳树。
欧氏平面上的斯坦纳树
欧氏平面上的斯坦纳树:给定平面上的个点,用总长尽量短的线段把他们连接起来。注意线段可以在平面上的任意点相交。
欧氏平面上的距离关系自然满足三角不等式。
最优解中,线段在平面上除了给定点外的交点就是斯坦纳点。
从上图看出 和 的情况,、 和 是斯坦纳点。 时,斯坦纳点就是三角形的费马点。
满足三角不等式的斯坦纳树:2-近似算法
容易想到,如果不考虑斯坦纳点,对图关于的导出子图直接求最小生成树,就是斯坦纳树问题的一个可行解。在满足三角不等式的前提下,我们可以证得这就是一个-近似的算法,下面给出证明。
算法近似比证明:
记给定点集的最小生成树解,斯坦纳树问题的最优解。可以将中的边复制一遍,得到图。由于图中的所有点的度数都是偶数且联通,那么一定存在经过中所有点的欧拉回路。
从中的一点出发,找到任意一条欧拉回路。易知的长度就是的边权之和。我们这样构造一个可行解:只走中的点,且每个点只走一次,如果遇到了斯坦纳点或者已经走过的点就“跳跃”到下一个点。因为我们是讨论完全图上的斯坦纳树,所以跳跃是允许的,这种跳跃又称为short-cutting。这样依次走完中的点,就得到一个可行解。
举个例子,假定下图是我们对构造的欧拉回路的一部分,红色代表中的点,蓝色则是斯坦纳点。由于之后遇到了斯坦纳点,我们要跳跃到;在走到之后,由于已经走过了,我们要直接跳到。
在满足三角不等式的前提下,直接跳过去不会比沿着欧拉回路走过去的距离长,所以有。又因为也是一棵上的生成树,边权之和不会比最小生成树小,因此。综上所述,有。近似比上界是2。
然后证明近似比下界也是2:如下图所示,构造这样一个例子,令。中的所有点到中心点的边权值为1,其他边权值都为2。
对这个例子使用最小生成树求解,得到的树是是不经过中心点的一条链,边权和为。显然,该问题的最优解是利用中心点作为斯坦纳点,边权和为,从而得到近似比,当时,近似比趋近于2。因此近似比的下界为2。
综上所述,最小生成树是满足三角不等式的斯坦纳树问题的-近似算法。
旅行商问题
背景:
欧拉回路:从s出发,恰好经过每条边最后回到s
欧拉路:恰好经过每条边
哈密尔顿圈:从s出发,恰好经过每个点回到s
哈密尔顿路径:从s出发,恰好经过每个点到达终点t
旅行商问题(TSP):给定完全图,求边权和最小的哈密尔顿圈。即,确定顶点的一个排列顺序,使得最小,其中。
完全图上的旅行商问题也是一个NP-Hard问题。
旅行商问题的近似算法研究
普通完全图上的 TSP 没有很好的近似比。若任意,可以证明,都不存在近似算法。其中是的多项式。
证明:考虑哈密尔顿圈问题,已知判断图是否含哈密尔顿圈是一个NPC问题。构造完全图,对G求TSP问题。其中,中一条边的边权定义如下:
反证法:假设存在TSP的-近似算法,利用算法对求TSP近似解。那么若TSP的最优解,即中存在哈密尔顿圈,TSP近似解满足;否则最优解一定满足,即中不存在哈密尔顿圈,TSP近似解。
这样一来,由这种近似算法求解后,根据近似解与的大小关系,就可以反推的哈密尔顿圈问题。但是,哈密尔顿圈是一个NP问题,不能被归约到多项式时间求解,也就证明了不存在旅行商问题的-近似算法。考虑到问题的编码长度与多项式规约,保证,完全图的输入规模仍然是 的多项式。
推广:同理可以证明装箱问题的近似比不会小于等于,因为判断2个箱子能否装下物品是NP问题,如果存在近似比小于的近似算法,直接用它求解装箱问题,有:如果近似解用了3个箱子,说明最优解2个箱子可以装下;如果近似解用了多于3个箱子,就说明最优解2个箱子装不下。这样一来就解决了判断2个箱子能否装下物品这个NP问题,因此,不存在近似比小于等于的装箱问题近似算法。
满足三角不等式的TSP问题
根据前面的证明,我们知道普通完全图上的旅行商问题难以得到较好的近似算法。因此,我们再给该问题加上一定的限制:在距离函数满足三角不等式的前提下,旅行商问题就有较好的近似算法。接下来讨论此前提下的旅行商问题。
最小生成树松弛算法
记旅行商问题最优解为。求图的最小生成树,显然。最小生成树松弛算法过程如下:
把中的边复制一遍得到图。的所有点度数都为偶数且相互连通,因此一定存在欧拉回路。与斯坦纳树问题同理,任选一条欧拉回路应用short-cutting(此处要保留最后一个点),得到点的排列为TSP的可行解,并生成哈密尔顿圈。由三角不等式,易知。
综上所述,,因此该算法近似比上界为2。
构造例子如下图所示:
完全图共有个顶点,中心点到外围每个点的距离是,外围相邻的两个点距离也是,其他边权都为2(未在图中标出)。容易求得最小生成树为为中心的星图。如果对选择欧拉回路,再去重复点做short-cutting得到:,则有。易知最优解的,从而确定该算法近似比下界为2。
因此,该算法的近似比是2。
MST松弛改进
考虑MST松弛算法的改进空间,所有边复制一遍的操作可能与最优解之间间隙比较大,我们尝试只给生成树中的奇度数点添边。显然生成树中的奇度数点会有偶数个,存在完美匹配,即求一个中奇度数点之间的最小权完美匹配,得到(这里的并是边集的相加,即如果两个集合中都有这条边,那么在并中会有两条一样的边)。在上取任意的欧拉回路,生成一个近似解,有。接下来证明该算法的近似比为。
分析最优解,是一个环。考虑取出其中的生成树中的奇度数点依次连起来,不妨设为个奇度数点,他们之间连有条边。显然,按照次序,和就是两组完美匹配,满足,所以。
综上所述,有,改进后近似比的上界为。
构造例子如下图所示,证明其下界也为:
完全图上面一行有个顶点,下面一行有个顶点。图中画出的边权值为1,其他顶点间的距离由所给边下的最短路长确定。易知,环绕一圈即为最优解。若最小生成树为,有,则有奇度数点的最小完美匹配为,。综上得到近似比,当时,近似比趋近于,得证。
哈密尔顿路径问题
哈密尔顿路径问题指在赋权完全图上求边权和最小的哈密尔顿路,这里我们同样考虑满足三角不等式的情况。类似于旅行商问题,也可以得到类似的MST松弛算法:求的最小生成树,做奇度数点中除去任意两点的最小权完美匹配,得到再做short-cutting。其中,去掉的这两点在中度数仍为奇数,作为哈密尔顿路径的起点和终点。
类似地,把最优解中除去起点、终点外的奇度数点摘出来,可以得到两组匹配,且剩余一条边(因为完美匹配是去掉了两个奇度数点的),因此仍然可以证明算法近似比为。另外,要解决去掉任意两点的最小权完美匹配的求解问题,这里可以引入两个虚拟节点,连接到所有奇度数点并设置边权为0,则在最小权完美匹配中a,b一定会各自匹配到一个奇度数点,就相当于去掉了任意两个点后的完美匹配最优解。
固定起点的哈密尔顿路径问题
如果指定了起点求边权和最小的哈密尔顿路,意味着的度数有可能是偶数,那么就要尝试在图中调整起点的度数为奇数,我们通过给加一条边来解决。在中引入误点的概念,误点包括:
-
中的奇度数点
-
,若是偶度数点
误点的度数是需要加边调整的。这样一来,如果的度数是偶数,我们就会尝试加边改为奇度数点。可以证明误点一定是奇数个:如果为奇度数点,那么奇度数点共有偶数个,去掉为奇数个;如果为偶度数点,那么奇度数点共有偶数个,算上仍为奇数个。
对所有误点求去掉任一点的最小权完美匹配(类似于前面去掉任意两点求解的算法,不多阐述),做,再做short-cutting就可以得到一个解。
对于图,考虑起点的两种情况:
若为奇度数点,则不是误点,和求完美匹配时去掉的点直接分别构成起点和终点;
若为偶度数点,并且没有被匹配的误点是,那么图中全部都是偶度数点,任意选取一个与相连的点,删去他们之间的边,这样图中一定存在着从为起点为终点的欧拉路径,即可构成哈密尔顿路。
可以证明,对于固定起点的哈密尔顿路径求解,以上算法的近似比仍然是:
分析最优解,考虑取出其中的误点依次连起来,不妨设为个误点,他们之间连有条边。显然,按照次序,和就是两组完美匹配,因此仍然满足,也就可以证明MST松弛算法的近似比为。
固定起点、终点的哈密尔顿路径问题
对于固定起点和终点的哈密尔顿路径问题,算法近似比不再是。首先介绍算法过程,仍然是MST松弛算法,同样引入误点的概念:
-
中的奇度数点
-
中的偶度数点
容易知道误点一定有偶数个,在误点中做最小权完美匹配得到。那么在图中,的度数为奇数,其他点的度数为偶数,所有点都是联通的,因此存在从出发到的欧拉路径,任选构造一条从到的欧拉路径就得到了一个点的排列。
注意,在中可能在中间就出现过了,为了保证是终点,在做short-cutting得到哈密尔顿路径的过程中,把中间出现的跳跃掉即可,只保留终点的。这样就可以得到一个为起点,为终点的哈密尔顿路径近似解了。
对于固定起点、终点的哈密尔顿路径求解,算法近似比不再是。下面这个例子可以说明,近似比至少是:
完全图上有如图所示个点,部分边权已经在图上标出,其余边权设置为该图上的最短路径长度。容易知道最优解,但按照以上算法,哈密尔顿路径可以取到。因此得到近似比下界。
下面证明算法近似比上界就是:
同样分析最优解和匹配之间的关系,考虑不等式是否成立,如果成立的话,由于是的下界,就可以得到。
考虑图,由于是一条哈密尔顿路径,因此只有起点和终点的度数奇偶性发生改变,图中仍然有偶数个误点,中除了以外的奇度数点仍然为奇度数点。容易推出,中的奇度数点在中都属于误点(包括)。
由于最优解中包含一组误点的匹配,即从中选出所有中的误点,按序两两选出误点之间的匹配边,称这个匹配为,有。考虑图,得到的图所有点的度数都是偶数,由于,因此,是联通的。综上可以得到是欧拉图,一定存在一条欧拉回路,这条回路包含了两组误点的完美匹配,满足,所以,也就证明了近似算法的近似比上界。
所以对于固定起点和终点的哈密尔顿路径问题,以上算法近似比是。