当前位置:文档之家› 多旅行商问题模型

多旅行商问题模型

以点0表示旅行商的出发城市,称为源点,点1,2,
,l 表示m 个旅行商需访问的城市。

MTSP 问题的数学模型可以表示为:
令10ij x ⎧=⎨⎩弧(i,j)在线路上 弧(i,j)不在线路上
模型表示如下:
0000min 10,1,,10,1,,()01,0,1,,R R ij ij
i j R ij i R ij j ij ij z d x x j R x i R X x S
x i j R
====⎧=⎪⎪
⎪==⎪⎪⎨⎪==⎪⎪=∈⎪⎪==⎩∑∑∑∑或 式中:1;ij R m l d =+-为增广费用。

若用(,1,
,)ij c i j l =表示旅行商经过对应弧度(,)i j 所花的费用,如时间、距离、花费等,那么给ij c 增加(1)m -行和(1)m -列,每一新的行或列是ij c 的最后一行或列的复制,增广矩阵的其他元素为无穷大,由此构成了增广费用ij d 。

一般MTSP 中,旅行商访问l 个城市必须满足以下2个条件。

条件1:从指定城市出发,对其他所有城市严格访问一次后返回原出发城市。

条件2:一条有效路径严格由m 条非平凡子路径(Nontrivial Subtours)组成。

所谓非平凡子路径是指该路径中除出发城市外,至少访问一个其他城市。

用遗传算法求解MTSP ,可通过附加虚拟城市的方法把MTSP 转化为TSP 。

将另外(1)m -个旅行商理解为(1)m -个虚拟城市,这(1)m -个虚拟城市标号分别为1,2,,1,l l l m +++-,它们与城市0具有相同的坐标(即相同位置)。

在旅行商访问路径中出现的每一个虚拟城市均表示旅行商返回出发城市,从而组成一个回路。

每个回路表示MTSP 中一个旅行商的旅行路径。

需注意的是,为了避免出现平凡子路径,必须假设(1)m -个虚拟城市到原点的距离为
00(,0,1,,1),ij c M i j l l m M ==++-为一无穷大的正数(即永远不能达到),到其他各点距离与原点一致,这样遗传算法就不会出现0-0-0的途径。

将源点0复制(1)m -个,m 个源点编号为0,1,1,l l m ++-每一个同源点0一样与其他
点相连,而m 个源点互相不连接,这样在结点集{}0,1,,,1,,1l l l m ++-上,可得到TSP 线路,然后各源点合并成一个点。

这样MTSP 线路就分解成m 个分线路。

相关主题