您的位置:首页 > 其它

创新实训6-9

2020-07-13 06:12 513 查看

啥也别说了,先上图

讨论了整整四个小时,只讨论了不到两章,我的那章还没讲完,真佩服我们。不过,印证了真理总是越辩越明这句话,通过这一次的讨论,对于我自己的那章,我都收获良多。

下面会写一下听第三章斯坦纳树和旅行商问题的理解和感悟。

首先,斯坦纳树在近似算法中占据了核心地位,其定义为

给定一个带权的无向图G =(V,E),其顶点被划分为required和Steiner两个集合,在G中找到一个包含所有required顶点,和Steiner顶点的任意子集的最小代价树。

也就是说,给了一个加权无向图,里面有一些节点,必须经过,称require节点。有一些节点不需要经过,但是加入这些点也许会形成捷径,这些节点称Steiner节点。然后要求每一个require节点,都必须要经过。经过的路径,就可以形成一棵斯坦纳树。斯坦纳树的奇特之处就在于,给了一些定点,在定点之外可以增加额外的点,使得开销变小。

然后给出了一个度量闭包下的斯坦纳树,这里就是要求构造出来的斯坦纳树,斯坦纳节点和require节点之间要满足三角不等式,即两边之和大于第三边。

斯坦纳树和度量闭包下的斯坦纳树是可以相互规约的。

2.设R是所需顶点的集合,那么下证在R上的最小生成树的耗费是小于2OPT的。(也就是说近似算法和最优解的比值小于2)

首先,原图为完全无向图。根据原图得到一棵斯坦纳树,然后对每条边进行加倍(一条出边一条入边代替原来的无向边)得到欧拉回路。欧拉回路是每条边都能必走一次并且最后回到出发点的回路。替换。然后得到下面这个样子。

根据三角形两边之和大于第三边的原理,进行新边替换。也就是用蓝色的边代替掉红色的两条边。因为原图为完全无向图,任意两点之间都有通路。

算法执行完毕得到的图是这样的。空心点是斯坦纳点,是不需要经过的,实心点是必须要经过的。形成一条哈密顿回路。哈密顿回路是每个点都经过一次且最后回到出发点。

我们知道,最优的情况下是最上面的图,那条最小生成树。那么,欧拉回路是最小生成树的二倍。哈密顿回路是根据欧拉回路构建 的,但是由于采用了三角不等式,又小于欧拉回路。把哈密顿回路减掉一条边,就是一棵度量闭包下的斯坦纳树。那么,根据斯坦纳树经过每个点的算法和最优算法之比不会超过2.如下。

哈密顿回路-1条边<哈密顿回路<欧拉回路=2*最小生成树。

旅行商问题:

旅行商问题是在给出n个必经节点,并且,每对节点之间都存在通路,求旅行商经过每个节点,然后回到出发点的最短路径。

首先,旅行商问题是个np难问题,因为旅行商问题可以规约到哈密顿回路问题,而后者是np难的。

反证,假设旅行商问题是可以在多项式时间内算出来,这个多项式时间含α(n)因子。

核心思想是把哈密顿图规约为旅行商问题。把n个节点的图G转换成n个节点的带权无向图G‘。

 

左图为原图,右图为添加了一条边长为α(n)的边,左图是没有办法构成一条哈密顿回路的,但是右图可以。那么, 如果G中存在哈密顿回路,那么在G’上进行一次最佳TSP旅行的成本是n(注:n-1条边加上一条返回出发点的边); 如果G中不存在哈密顿回路,那么在G’上进行一次最佳TSP旅行的成本大于α(n)·n(注:一定大于添加进去的那条边);

因此,寻找哈密顿回路就可以通过看最佳旅行商问题的结果是不是大于α(n)·n。but,这个图是不满足三角不等式的,两边之和一定会小于第三边。结束。

下面还有一些,但是因为队友这部分不是特别清楚,所以留到下次讲。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: