tsp问题20城市c语言,用lingo解决10个城市的TSP问题

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

cdsherkl4m

2014.05.08

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:51%    等级:7

已帮助:261人

lingo自带了例子了 但是这个只能在小规模下完全满足 大规模的你最好还是找个近似算法吧 到现在没有找到多项式时间的准确算法

MODEL:

! Traveling Salesman Problem for the cities of

Atlanta, Chicago, Cincinnati, Houston, LA,

Montreal;

SETS:

CITY / 1.. 6/: U; ! U( I) = sequence no. of city;

LINK( CITY, CITY):

DIST, ! The distance matrix;

X; ! X( I, J) = 1 if we use link I, J;

ENDSETS

DATA: !Distance matrix, it need not be symmetric;

DIST = 0 702 454 842 2396 1196

702 0 324 1093 2136 764

454 324 0 1137 2180 798

842 1093 1137 0 1616 1857

2396 2136 2180 1616 0 2900

1196 764 798 1857 2900 0;

ENDDATA

!The model:Ref. Desrochers & Laporte, OR Letters,

Feb. 91;

N = @SIZE( CITY);

MIN = @SUM( LINK: DIST * X);

@FOR( CITY( K):

! It must be entered;

@SUM( CITY( I)| I #NE# K: X( I, K)) = 1;

! It must be departed;

@SUM( CITY( J)| J #NE# K: X( K, J)) = 1;

! Weak form of the subtour breaking constraints;

! These are not very powerful for large problems;

@FOR( CITY( J)| J #GT# 1 #AND# J #NE# K:

U( J) >= U( K) + X ( K, J) -

( N - 2) * ( 1 - X( K, J)) +

( N - 3) * X( J, K)

);

);

! Make the X's 0/1;

@FOR( LINK: @BIN( X));

! For the first and last stop we know...;

@FOR( CITY( K)| K #GT# 1:

U( K) <= N - 1 - ( N - 2) * X( 1, K);

U( K) >= 1 + ( N - 2) * X( K, 1)

);

END

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值