|
今天用yalmip求解一个混合整数规划的算例,显示有问题。但是我自己也看了一下源代码,我觉得没问题啊。求大佬指点。
下面是我的算例代码
clear;clear all;clc;close all;
tic;
%案例四
% 数据
d = [0 7 4 5 8 6 12 13 11 187 0 3 10 9 14 5 14 17 174 3 0 5 9 10 21 8 27 125 10 5 0 14 9 10 9 23 168 9 9 14 0 7 8 7 20 196 14 10 9 7 0 13 5 25 1312 5 21 10 8 13 0 23 21 1813 14 8 9 7 5 23 0 18 1211 17 27 23 20 25 21 18 0 1618 17 12 16 19 13 18 12 16 0];
n = size(d,1);
x = binvar(n,n,'full'); % x为0-1
u = sdpvar(1,n);%u为实数
%添加约束
C=[];
for i=1:n
%s=sum(x(i,:))-x(i,i);
C=[C; sum(x(i,:))-x(i,i) == 1];
end
for j=1:n
%s=sum(x(:,j))-x(j,j);
C=[C; sum(x(:,j))-x(j,j) == 1];
end
for i=2:n
for j=2:n
if i~=j
%s=u(i)-u(j)+ n*x(i,j);
C=[C; u(i)-u(j)+ n*x(i,j) <= n-1];
end
end
end
%目标函数
z=sum(sum(d.*x));
ops = sdpsettings('solver','cplex')
%求解
result=optimize(C,z,ops);
if result.problem == 0
xresult = value(x)
zresult = value(z)
else
disp('求解出错')
end
toc; |
|