⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l01p_ie.m

📁 数学建模的源代码
💻 M
字号:
function [x,f]=L01p_ie(c,A,b,N)
% [x,f]= L01p_ie(c,A,b,N)用隐枚举法求解下列0-1线性规划问题
%       min f=c'*x, s.t. A*x<=b,  x的分量全为整数0或1,
%  其中N表示约束条件 Ax ≤ b中的前N个是等式,N= 0时可以省略。%  程序中用到命令B = de2bi(D),其作用是将10进制数向量D转换
%  为相应二进制数按位构成的以0,1为元素的矩阵B。
%  此命令在toolbox communication中。
%  返回结果x是最优解,f是最优解处的函数值。
%例 max f=3x1+5x2+2x3+4x4+2x5+3x6
%   s.t. 8x1+13x2+6x3+9x4+5x5+7x6<=24, x1,…,x6均为0或1
%求解
%  c=-[3,5,2,4,2,3];a=[8,13,6,9,5,7];b=24;
%  x=1p_ie(c,a,b)

% By X.D. Ding, June 2000

if nargin<4,N=0;end
c=c(:);b=b(:);
A=[-A(1:N,:);A];b=[-b(1:N);b];
[m,n]=size(A);x=[];f=abs(c')*ones(n,1);
A=[c';A];b=[f;b];i=1;
while i<=2^n
   B=de2bi(i-1,n)';
   j=1;t1=A(j,:)*B-b(j);
   while(t1<=0&j<m+1)
      j=j+1;t1=A(j,:)*B-b(j);
      if t1>0,j=1;end
   end
   if j==m+1
      x=B;f=c'*B;
      b(1)=min([b(1),f]);
   end
   i=i+1;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -