码迷,mamicode.com
首页 > 其他好文 > 详细

图论中TSP问题的LINGO求解与应用

时间:2020-02-01 19:29:17      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:info   mode   and   其他   优化   模拟   选择   旅行   ext   

巡回旅行商问题(Traveling Salesman Problem,TSP),也称为货郎担问题。该问题可简单描述为走遍n个城市的最短路。几十年来,出现了很多近似优化算法。如近邻法、贪心算法、最近插入法、最远插入法、模拟退火算法以及遗传算法。

问题1 设有一个售货员从10个城市中的某一个城市的出发,去其他9个城市推销产品。10个城市的距离已经给出。10个城市相互距离如下表。要求每个城市到达一次仅以此后,回到原出发城市。问:他如何选择旅行路线,使总路程最短。

技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 

model:
sets:
city/1..10/:u;
link(city,city):d,x;
endsets
data:
d=0  7  4  5  8  6  12 13 11 18
  7  0  3  10 9  14 5  14 17 17
  4  3  0  5  9  10 21 8  27 12
  5  10 5  0  14 9  10 9  23 16
  8  9  9  14 0  7  8  7  20 19
  6  14 10 9  7  0  13 5  25 13
  12 5  21 10 8  13 0  23 21 18
  13 14 8  9  7  5  23 0  18 12
  11 17 27 23 20 25 21 18 0  16
  18 17 12 16 19 13 18 12 16 0;
@text()=@writefor(link(i,j)|x(i,j)#GT#0:‘x(‘,i,‘,‘,j,‘)=‘,x(i,j));
enddata
min=@sum(link:d*x);
@for(city(j):@sum(city(i)|j#ne#i:x(i,j))=1);
@for(city(i):@sum(city(j)|j#ne#i:x(i,j))=1);
@for(link(i,j)|i#ne#j#and#i#gt#1:u(i)-u(j)+10*x(i,j)<=9);
@for(link:@BIN(x));
end

  

x(1,4)=1 x(2,7)=1 x(3,2)=1 x(4,3)=1 x(5,6)=1 x(6,8)=1 x(7,5)=1 x(8,10)=1 x(9,1)=1 x(10,9)=1

1 4 3 2 7 5 6 8 10 9 1

图论中TSP问题的LINGO求解与应用

标签:info   mode   and   其他   优化   模拟   选择   旅行   ext   

原文地址:https://www.cnblogs.com/kmxojer/p/12249493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!