M
文件
function
[intx,intf] = ZeroOneprog(c,A,b,x0)
%
目标函数系数向量?/p>
c
%
不等式约束矩阵,
A
%
不等式约束右端向量,
b
%
初始整数可行解,
x0
%
目标函数取最小值时的自变量值,
intx
%
目标函数的最小值,
intf
sz = size(A);
if
sz(2) < 3
[intx,intf] = Allprog(c,A,b);
%
穷举?/p>
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);
%
十进制转化为二进?/p>
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);