应用MATLAB+yalmip+Gurobi解决TSP问题
应用MATLAB+yalmip+Gurobi求解TSP问题
环境:MATLAB;
附加环境:请确认已安装yalmip和Gurobi;
说明:如果只安装了yalmip也可以,只是需要将程序中的
ops = sdpsettings('solver','gurobi');
sol=solvesdp(F,g,ops);
两句,直接改为
sol=solvesdp(F,g);
这样就是默认求解solver为yalmip。
另外:这个简单的程序里面有三个例子,1--随机例子,2--31个省会城市,3--北京高校联合采购与配送--的配送部分例子。这里默认的是第三个例子,因为是自己博士论文的一小部分。15所高校之间的距离是应用百度地图的直线距离。
本里的数据可以搜索下载’ 北京15所高校的路程数据.xlsx’,
( ),北京15所高校的路程数据 记得放在与本程序相同的路径下,简单地说,同一个文件夹下就行。
%清空环境
clc
clear
N=16;%问题规模
X=binvar(N,N,'full'); %最终路径决定矩阵
U=intvar(N-1,1,'full');%用于子回路约束
%% 例子1:下面是一个随机产生的例子
% a = rand(N,N);
% b = tril(a,-1)+triu(a',0);
% for i=1:N
% for j=1:N
% if i==j
% b(i,j)=0;
% end
% end
% end
% b=100*b;
%% 例子2:31个省会城市的坐标
% A=[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196