111

! Traveling Salesman Problem for the cities of

Atlanta, Chicago, Cincinnati, Houston, LA, 

Montreal;

SETS:

CITY / 1.. 41/: 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 =[距离矩阵,略];

@text('C:\Users\xdcao\Documents\solution.txt')=x;!输出结果数据,保存在matlab的工作目录下;

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



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值