斯坦纳树和旅行商问题
一、首先引入斯坦纳树的概念:
满足该条件的斯坦纳树问题称为度量斯坦纳树问题(默认为无向完全图)
定理 3.2 从斯坦纳树问题到度量斯坦纳树问题存在保持近似因子的归约。
由此定理我们可以看到,对度量斯坦纳树问题建立起的任何近似因子都可以延续到整个斯坦纳树问题。
二、基于最小生成树的算法
首先,回顾一下最小生成树的概念
对于上述斯坦纳树问题,最小生成树并不一定总是最优的斯坦纳树,例如下图
即使如此,但最小生成树的费用也不会比最优斯坦纳树的费用大多少。
证明该定理所需要的知识如下:
1.欧拉图(著名的七桥问题):
附上学习链接:https://www.bilibili.com/video/BV1jZ4y1H7ss?from=search&seid=16101594268260852026
2.欧拉环游:
3.哈密顿图:
4.哈密顿圈:
定理3.3的证明参见《近似算法》第26-27页
结论:定理3.3对度量斯坦纳树问题直接给出因子2算法:只需找必需顶点集上的最小生成树。
三、度量旅行商
首先介绍一下问题描述:
定理 3.6 对任意多项式时间可计算函数α(n),旅行商不能被近似到因子α(n)以内,除非P=NP
这个定理的意思就是如果P=NP才能找到一个近似算法来解决旅行商问题,但一般默认P≠NP,所以这个定理的意义就在于说明了旅行商问题不仅找不到最优解,连近似解也无法找到。
该定理的证明被放在了《近似算法》第28页
所以,需要加上三角不等式的限制使得旅行商问题归约为度量旅行商问题,虽然问题仍然是NPC问题,但是它就不再难以近似了
首先给出一个简单的因子2算法:
定理 3.8 算法3.7是度量旅行商的因子2近似算法,该证明与上一个问题的方法类似
然后我们改进因子到3/2
首先,引入图论中匹配和完美匹配的概念:
匹配:在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边都没有公共顶点。例如,图 3、图 4 中红色的边就是图 2 的匹配
我们定义匹配点、匹配边、未匹配点、非匹配边,它们的含义非常显然。例如图 3 中 1、4、5、7 为匹配点,其他顶点为未匹配点;1-5、4-7为匹配边,其他边为非匹配边。
最大匹配:最大匹配:一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。图 4 是一个最大匹配,它包含 4 条匹配边。
完美匹配:如果一个图的某个匹配中,所有的顶点都是匹配点,那么它就是一个完美匹配。图 4 是一个完美匹配。显然,完美匹配一定是最大匹配(完美匹配的任何一个点都已经匹配,添加一条新的匹配边一定会与已有的匹配边冲突)。但并非每个图都存在完美匹配。
下面为改进后的算法:
证明参考《近似算法》第30页