數學建模 TSP 旅行商問題 Lingo求解

2021-09-19 15:50:04 字數 1439 閱讀 6020

model:

sets:

cities

/1..9

/:level

;link(cities, cities): distance, x; !距離矩陣;

endsets

data:

distance =0

200660

170127

225490

420330

2000

820300

9060

310225

151660

8200

530770

1201110

1050

960170

300530

0280

350600

550450

12790

770280

0110

370310

210225

60120

350110

0280

250120

490310

1110

600370

2800

290190

420225

1050

550310

250290

0160

330151

960450

210120

1901600;

enddatan =

@size

(cities);

!目標函式;

min=

@sum(link:distance *

x);@for

(cities(k):

!進入城市k;

@sum(cities(i) | i #ne# k: x(i,k)) =1;

!離開城市k;

@sum(cities(j) | j #ne# k: x(k,j)) =1;

);!保證不出現子圈;

@for(cities(i) | i #gt# 1

:

@for(cities(j) | j #gt# 1 #and

# i#ne#j:

level(i)-

level(j) + n*x(i,j) <= n-1);

);!限制u的範圍以加速模型的求解,保證所加限制並不排除掉tsp問題的最優解;

@for(cities(i) | i #gt# 1: level(i) <= n-2);

!定義x為

0\1變數;

@for(link:@bin

(x));

end

posted @

2017-04-08 19:14

douzujun 閱讀(

...)

編輯收藏

TSP 旅行商問題 遺傳演算法

問題描述 對於n組城市座標,尋找最短路徑使其經過所有城市並回到起點。問題資料集 tsp.eil51問題1 37 52 2 49 49 3 52 64 4 20 26 5 40 30 6 21 47 7 17 63 8 31 62 9 52 33 10 51 21 11 42 41 12 31 32 ...

TSP 旅行商問題 模擬退火演算法

include include include include include include using namespace std define t0 50000.0 初始溫度 define t end 1e 8 define q 0.98 退火係數 define l 1000 每個溫度時的迭代...

旅行商問題

旅行商問題 乙個商人從城市a出發,訪問bcde等城市各一次最後回到a,問行程如何使得路程或費用最低。這是個np 非多項式可解,但一般驗證容易 問題,假設中間有4個城市,那麼全排列為4!24種,沒有很好的演算法,基本只能窮舉了。class vertex 4 public class lianxi pu...