几种M-TSP问题的解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

之差越小(定义为级差)。但是,仅仅考虑级差是不够的,因为级差的大小与各巡视组所走
路程总和(所用总时间)有关,在考虑均衡系数时,应该考虑到各巡视组所走路程总和(所
-2-

用总时间)这一因素,总路程(总时间)越大所允许的级差应该可以大一些,于是在均衡系
数的分母中引入了总路程(总时间)的均值来平衡级差与总路程的关系。可见,均衡系数越
分组 第1组 第2组 第3组
表 1 遗传—蚁群算法得到的最佳巡视路线
巡视路线
乡镇数
村数
O-1-B-34-35-32-31-33-A-R-29-Q-30-2
4
12
8-27-24-23-21-25-M-O
O-2-5-6-7-E-9-F-10-12-H-14-13-G-11-
5
11
8-4-D-3-2-O
O-P-26-N-23-22-K-17-16-I-15-18-J-19-
-4-

基于以上分析,选择个体各个TSP回路路程中的最大值作为返回值,根据其中返回值大 小分配适应度值,返回值小的适应度大。
3.遗传操作 (1)选择 选择时以个体的适应度决定选择那个个体,以转轮法选择,对于适应度大的个 体被选中的可能性也越大。 (2)交叉 按照给定的交叉率,进行交叉操作。交叉时对从种群中选择的2个个体作为母 体进行交叉操作。 (3)变异 为了保持群体的多样性,避免遗传寻优陷人局部最优,可以对种群中的个体以 给定的变异率进行变异操作。变异操作就是对选中的母体上的某个基因的值进行随机改变, 这意味着被改变的基因对应的顶点被划人到另外一个回路中,而原来回路中不再包含该顶 点。设置变异率为0.007。 上面的遗传操作将产生新的个体,为保持每一代种群中个体的规模,在完成一代操作时, 要根据适应度的大小去掉适应度小的个体。这体现了遗传算法的适者生存的思想。 在以上算法的基础上,遗传代数设为 200 代,利用 Matlab 编程实现,得到了总路程尽 可能最短且各组尽可能均衡的巡视路线如表 1 所示。在最优的个体中,寻找最佳巡视路线的 蚁群算法的寻优过程如图 2 所示
-1-

图 1 某县的公路网示意图
3. 问题的几点分析
题目给出的是一个非完全图的多旅行商问题,首先利用任意两点间的最短路长度作为该
两点边的权构造一个完全图。然后在增广的完全图上求解 M-TSP 问题,此时可以将多旅行
商问题转化为单旅行商问题求解。
由上面的分析可知,任给一个简单连通图 G,可构造一个新的以图 G 中顶点间的最短
数规划角度给出了一个只考虑总回路路程最短的 M-TSP 问题模型。对于这样一个规划问题,
每个分组对应着一个 TSP 问题,而 TSP 问题是 NP 难题,现有的 Lingo 和 Matlab 软件不能 求解或不能精确求解,故该模型只有理论意义,不能在现有的软件下实现。下面讨论用一些
简化的方法来求得问题的近似解。
M-TSP(M-Traveling Salesman Problem)是多回路的 TSP 问题。一般多回路的最优解并不 唯一,在本文中仅讨论最平衡的解,即各回路的总路线长度尽可能相等且 M 个回路总的路 线长度之和尽可能短。
本文主要讨论 M-TSP 问题 ,分别从遗传—蚁群算法、模拟退火算法和最小生成树代换 法的角度对 M-TSP 问题的求解进行了分析。
8
12
L-20-25-M-5-2-3-C-O
路线长度 总路程 205.3Km 620.5Km 210.5Km 均衡系数 204.7Km 0.0256
250 245 240 235 230 225 220 215 210 205
0
分组1
最短路长的变化 最短路长均值的变化
5 10 15 20 25 30 35 40 45 50
2.适应度值评价检测 由于M-TSP问题主要是求解3个巡视组访问所有顶点,以使访问的路径尽可能短且各回 路尽可能均衡。注意到任何一个个体都对应着3个TSP问题,通过蚁群算法可求得各个TSP 回路的最短回路路程。显然在一个个体所包含的3个组中,最短TSP回路长度最长的组决定 了巡视的完成时间,故把个体中3个最短TSP回路中最长的作为代价,同时把这个代价作为 该个体的适应度。
n
∑ xij = 1,i = 1, 2,", n
j =1
表示 H 回路只能从各顶点出发一次;
-3-

n
∑ xij = 1, j = 1, 2,", n
i =1
表示 H 回路只能到达各顶点出发一次;
xi1i2 + xi2i3 +" + xiki1 ≤ k −1, i1, i2 ,", ik = 1, 2,", n i1 ≠ i2 ≠ " ≠ ik , k = 2,3,", n −1
中图分类号:T18
文献标志码:A
1. 引言
TSP 问题(Traveling Salesman Problem),即图论中的哈密尔顿问题,是一类图上点的遍 历问题,也就是用若干条闭链覆盖图上所有的顶点,且使得某项指标达到最优化。
迄今为止,所提出的求解最佳 TSP 回路的各种算法可以分为两类。第一类是以分枝定 界为基础的精确解法,根据不同的分枝定界方法导出了各种算法,但用这些方法求解时,问 题的规模一般限制在 100 个顶点以下;第二类是一些简便易行且能获得很好近似度的近似算 法,但这样的解不一定是最优的[1]。在一定问题的规模下,首先可以利用第一类算法求出问 题的精确解,然后利用第二类算法求出问题的近似解,最后,通过对两个解的比较可得到在 问题规模的某范围内,近似算法的近似性能比,如果近似度满足问题的实际要求,可以用该 近似算法去解决更复杂的问题。
(a)第 1 组的最佳巡视路线寻优过程
分组2 270
最短路长的变化 最短路长均值的变化
260
250
240
的问题,假设其每一个可行解所对应的目标函数值均不少于一个确定的正数。若一个最优化
问题的最优值为 c* ,求解该问题的一个近似算法求得的近似最优解相应的目标函数值为 c,
则将该近似算法的性能比定义为
η
=
max{
c
c* ,}
c* c
这个定义对于极小化问题和极大化问题都是适用的。对于一个极大化问题,0 < c ≤ c* ,
接近于 0,分组越均衡。 M-TSP 问题是多回路的 TSP 问题,而 TSP 问题属于 NP 完全类,求解没有多项式时间
算法,当规模较大时,要想求得真正的最优解是不现实的,而只能用近似方法得到近似最优
解。对于近似算法的优劣有一种普遍的判别标准,即近似算法的性能比。许多 NP 问题实质 上是最优化问题,即要求使某个目标函数达到最大值或最小值的解。不失一般性,对于确定
其中, max lk ( max tk )为各巡视组所走路程(所用时间)中的最大值; min lk ( min tk )
∑ ∑ 为各巡视组所走路程(所用时间)中的最小值; 1 m
m
lk
k =1

1 m
m
tk
k =1
)为巡视组所走路程(所
用时间)的平均值。显然,分组越均衡,巡视组所走路程(所用时间)中的最大值与最小值
⎨ i=1
⎪ ⎪
xi1i2
+
xi2i3
+"+
xik i1

k
−1, i1, i2 ,", ik
= 1, 2,", n
⎪i1 ≠ i2 ≠ " ≠ ik , k = 2, 3,", n −1
⎪ ⎪⎩
xij
=
0或1
nn
∑ ∑ min
wij xij
i=1 j=1
表示最佳 H 回路的目标函数,即回路总长最短;
分组尽可能均衡且总路程尽可能短的M-TSP遗传—蚁群算法设计[5]。 1.编码与初始种群的生成 为了将53个顶点分为3组,用0、1和2对染色体进行编码,每个编码表示一个顶点,码值 相同的顶点分为一组。这样得到码长为52的染色体,形式为
{a1, a2, a3,", a52}, ai = j;i = 1, 2,",52; j = 1, 2, 3 , 表示第i个顶点属于第j个回路,第j个回路的所有顶点由 ai = j 的顶点和县政府所在地 O 点组成。取种群数为20,初始化种群。
顶点多次。
合理的巡视路线应该是总路程最短且尽可能均衡的路线。其中的均衡理解为:各巡视组
巡视所用的时间尽量相等。这样,我们引入均衡系数来量化均衡的程度,均衡系数定义为

∑ ∑ η
=
max lk 1

m
min lk
或η
=
max tk 1

m
min
tk
,(k
= 1, 2,", m)
m
lk
k =1
m
tk
k =1

几种 M-TSP 问题的求解方法
曾正 1,熊小飞 2,贾喆 3
1 武汉大学电气工程学院,湖北武汉(430072)
2 武汉大学计算机学院,湖北武汉(430072)
3 武汉大学数学与统计学院,湖北武汉(430072)
E-mail:zengerzheng@
4.1 遗传—蚁群算法
参考文献[3]和参考文献[4]分别对单独利用遗传算法或蚁群算法求解 M-TSP 问题进行了 研究,得到了较理想的结果,但是蚁群算法的理论体系缺乏严格的数学解释,遗传算法的效 率通常比其他传统优化方法低,此外对算法的精度、可信度、计算复杂性等方面,还没有有 效的定量分析方法。本文综合利用遗传算法和蚁群算法来求解 M-TSP 问题,以期获得更好 的效果。
摘 要:针对 M-TSP 问题,分别利用遗传—蚁群算法、模拟退火算法和最小生成树代换法 求解该问题。给出了算例和仿真结果,仿真表明:在问题规模不太大的情况下最小生成树代
换法能够得到很优的结果,模拟退火算法在较短的时间内能给出较优的解,遗传—蚁群算法
所用的时间稍长,但也能给出很优的解。
关键词:M-TSP 问题;遗传—蚁群算法;模拟退火算法;最小生成树代换法
2. 问题的提出
98 年全国大学生数学建模竞赛 B 题(参见 )的第 1 问是一个典型的 M—TSP 问题,问题援引如下:98 年夏天某县遭受水灾。为考察灾情、组织自救,县领导 决定,带领有关部门负责人到全县各乡(镇)、村巡视(该县公路网如图 1 所示)。巡视路 线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。若分三组(路) 巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
此时近似算法的性能比,表示最优值 c* 比近似最优值 c 大多少倍。对于一个极小化问题,
0 < c* ≤ c 。此时,近似算法的性能比表示近似最优值 c 比最优值 c* 大多少倍。由于 c / c* < 1
可以推出 c* / c > 1 ,故近似算法的性能比不会小于 1。一个能求得精确最优解的算法的性能
表示不会出现 k 个顶点构成的回路, k = 2,3,", n −1。
在 Lingo 环境下,编程求得完全赋权图(53 个顶点)的最佳 H 回路的总路程为 508.5Km,
此为精确解。利用蚁群算法,适当调节各参数,求解上述完全赋权图中最佳 H 回路的近似 解,大约在 10s 内,得到近似解为 540Km 左右。计算蚁群算法的近似性能比为
η
=
c max{c*
,
c* }
c
=
1.0619
,可见近似度是相当好的,在下面的求解中将利用蚁群算法求解
单回路 TSP 问题的近似解。
最佳的巡视路线是总路程最短且各组尽可能均衡的巡视路线,是一个以分组均衡
m
∑ min η 和总路程最短 min lk , (k = 1, 2,3) 为目标的多目标规划。参考文献[1]从 0-1 整 k=1
比为 1。在通常情况下,近似算法的性能比大于 1。近似算法的性能比越大,它求得的近似 解就越差[2]。
4. 算法及求解
建立 TSP 问题的数学模型[1]
其中
nn
∑ ∑ min
wij xij
i=1 j=1
∑ ⎧

n
xij = 1, i = 1, 2,", n
⎪ j=1
∑ ⎪

n
xij = 1, j = 1, 2,", n
路径为连接边的无向完全图 G′ 。然后调用通用 TSP 问题的求解算法,得到一 TSP 回路,
虽说该回路在图 G′ 中经过图的每个顶点一次且仅一次,但由于构造图 G′ 中的边对应于图
G 中相应顶点间的最短路径,而该最短路径有可能中间经过了其他顶点。因此,虽然在无
向完全图 G′ 中的 TSP 问题只经过了每个顶点一次,但在非完全图 G 中,有可能通过某些
相关文档
最新文档