<运筹学习记录>TSP旅行商问题简述及代码

问题描述

给定一系列城市和每对城市之间的路费,求解访问每座城市一次,并回到起始城市的最短回路。
本篇记录学习用matlab+yalmip求解TSP问题的过程。

线性规划(张干宗著)中描述:

在这里插入图片描述

模型建立

Obj=sum x*d
st:
sum x ( : , j ) = 1
sum x ( i , : ) = 1
ui - uj + (N-1) * xij <= N - 2 where: i != j i,j>=2 防止子环

d为费用矩阵,ui,uj 松弛变量,大于0 即可,N为城市数量:1,2,…N

Matlab 代码

注意,x=binvar(2,2),默认是x是对称变量,即x(2,1)=x(1,2)!!! ,改为x=binvar(2,2,‘full’)即可。(吐血,这个报错改了一天才发现是变量定义错误)
yalmip基本语法
下面给出城市为:2座,3座,4座时的代码(费用矩阵为对称矩阵)

clear
clc
n=4;
if n==4
        d=[ 0 1 5 4;
            1 0 2 6;
            5 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值