M文件
function [intx,intf] = ZeroOneprog(c,A,b,x0)
%目标函数系数向量,c
%不等式约束矩阵,A
%不等式约束右端向量,b
%初始整数可行解,x0
%目标函数取最小值时的自变量值,intx
%目标函数的最小值,intf
sz = size(A);
if sz(2) < 3
[intx,intf] = Allprog(c,A,b); %穷举法
else
[intx,intf] = Implicitprog(c,A,b,x0); %隐枚举法end
function [intx,intf] = Allprog(c,A,b);
sz_A = size(A);
rw = sz_A(1);
col = sz_A(2);
minf = inf;
for i=0:(2^(col)-1) %枚举空间
x1 = myDec2Bin(i,col); %十进制转化为二进制
if A*x1 >= b %是否满足约束条件
f_tmp = c*x1;
if f_tmp < minf
minf = f_tmp;
intx = x1;
intf = minf;
else
continue;
end
else
continue;
end
end
function [intx,intf] = Implicitprog(c,A,b,x0)%隐枚举法sz_A = size(A);
rw = sz_A(1);
col = sz_A(2);