电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1926|回复: 0
收起左侧

关于yalmip+cplex 求解混合整数规划问题

[复制链接]

633

主题

1927

帖子

8108

积分

联盟顾问

Rank: 3Rank: 3

积分
8108
发表于 2023-1-4 14:25:19 | 显示全部楼层 |阅读模式
今天用yalmip求解一个混合整数规划的算例,显示有问题。但是我自己也看了一下源代码,我觉得没问题啊。求大佬指点。

关于yalmip+cplex 求解混合整数规划问题-1.jpg

下面是我的算例代码
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;
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表