当然可以
Matlab的求解线性规划的函数linprog不适应于0-1规划。我们采用穷举法编写了如下程序可以实现0-1规划的求解。
%0-1 program:linprog01.m
%%% min c'x
%%% s.t. Ax<=b
%%% Aeqx=beq
%%% Aieq~=bieq
function [x,fval]=linprog01(c,A,b,Aeq,beq,Aieq,bieq)
iVal=size(c,1);
xVal=zeros(size(c));
x=xVal;
opt_solution=c'*xVal;
for i=1:2^iVal-1
strBin_i=dec2bin(i);
xVal=zeros(size(c));
for k=1:length(strBin_i)
xVal(k)=str2num(strBin_i(k));
end
constrA=A*xVal<=b;
constrAeq=Aeq*xVal==beq;
constrAieq=Aieq*xVal~=bieq;
if all(constrA) & all(constrAeq) & all(constrAieq)
objVal=c'*xVal;
if objVal<=opt_solution
opt_solution=objVal;
x=xVal;
end
end
end
fval=opt_solution;