- 25
- 0
- 约 20页
- 2016-08-05 发布于湖北
- 举报
第24讲 TSP问题近似算法
杨 明
指挥信息系统学院软件工程教研中心
yangming@lgdx.mtn
算法设计与分析
2017-4-10
内容
TSP问题
满足三角不等式的TSP问题近似算法
TSP问题的启发式算法
旅行售货员问题—TSP
问题描述
给定一个完全无向图G=(V,E),其每一边(u,v)∈E有一非负整数费用c(u,v),要找出G的最小费用哈密顿回路。
TSP问题是NP完全问题。
TSP问题的近似算法
悲观的结论
不存在具有常数性能比的解TSP问题的多项式时间近似算法,除非P=NP。
换句话说,若P≠NP,则对任意常数ρ1,不存在性能比为ρ的解TSP问题的多项式时间近似算法。
证明方法
用算法A解哈密顿回路问题
反证法
假设若有一个解TSP问题的近似算法A,其性能比为a。
不失一般性,可a设为一整数,在这个假设下,可利用算法A设计一个解哈密顿回路问题的多项式时间算法。
用算法A解哈密顿回路问题
特殊的TSP问题
费用满足三角不等式的TSP
费用函数c具有三角不等式性质
对任意的3个顶点u,v,w∈V,有:c(u,w)≤c(u,v)+c(v,w)。
例
欧氏距离
最短路径
即使费用函数具有三角不等式性质,TSP问题仍为NP完全问题。
对于给定的无向图G,可以利用找图G的最小生成树的算法设计找近似最优的旅行售货员回路的算法。
void approxTSP (Graph G)
{
(1)选择G的任一顶点r;
(2)用Prim算法找出带权图g的一棵以r为根的最小生成树T;
(3)前序遍历树T得到的顶点表L;
(4)将r加到表L的末尾,按表L中顶点次序组成回路H;
(5)return L;
}
TSP问题近似算法
TSP问题近似算法
approxTSP的性能比
approxTSP是求解费用满足三角不等式TSP问题的2-近似算法
证明
设T是算法approxTSP计算出的图G的最小生成树,H*为图的最小费用旅行售货员回路。
从H*中任意删去一条边后,可得图G的一颗生成树。由于T是最小生成树,故有c(T)=c(H*)。
设W是对T依前序所做的完全遍历,而W对T所做的遍历经过T中的每条边恰好两次,所以有c(W)=2c(T)=2c(H*)
approxTSP的性能比
证明(续)
利用三角不等式将W改造成一条哈密顿回路H。
由于费用满足三角不等式,可以在W的基础上,从中删去已访问过的顶点而不会增加旅行费用。
若在中删去顶点u和v间的一个顶点w,就用边(u,v)代替原来从u到v的一条路。
反复利用这个办法删去W中的重复访问的顶点可得到一条旅行售货者回路。
由费用满足三角不等式,有c(H)=2c(T)=2c(H*)
3/2-近似算法
Christofids (G=(V, E,W))
{
用Prim算法找出带权图(V, E)的最小生成树T1;
找出T1中度为奇数的顶点集合S;
找出由S导出图的最小费用完全匹配M;
构造图T1+M的欧拉路径T2;
利用费用三角不等式将T2调整为哈密顿回路T;
}
Christofids 近似算法
TSP问题的启发式算法
最近邻居策略
NearestTSP (G)
R←s
u←s
while R!=V do
在与u相连边中选择权值最小的边(u,v),且u不在R中
C←C+(u,v)
u←v
end while
C←C+(v,s)
return C
end
TSP问题的启发式算法
最短链路策略
ShortestLinkTSP (G)
R←E
C←
while R!= do
在R选择权值最小的边(u,v)
R←R-(u,v)
If (边(u,v)不会在C中形成环且不会使C中顶点度大于2) then C←C+(u, v)
end while
将 C中的路径中的首尾连接起来形成环路并返回该环路;
end
算法性能比较
算法运行时间比较
拓展研究
局部优化
对构建的TSP近似解进行迭代局部优化
基本技术
2-opt
3-opt
Lin-Kernighan
算法性能比较
算法运行时间比较
原创力文档

文档评论(0)