📄 mybzx.m
字号:
function A=mybzx(p,c,ad,ax,ae)
% 一般型-->标准型
%p=1,min问题,p=2,max问题
%c=[c1,c2,...cn]'--成本向量
%ad、ax、ae分别为:>=、<=、==约束
if p==2
c=-c;
end
ad=-ad; %>=化为<=
[m1 n1]=size(ad);
[m2 n2]=size(ax);
[m3 n3]=size(ae);
if n1==n2
if n2==n3
n=n1-1;
end
end
m=m1+m2+m3;
A=zeros(m+2,n+m+1); %定义A,注意尺寸
Ar=m+2;
Ac=n+m+1;
A(1:m,1:n)=[ad(:,1:n);ax(:,1:n);ae(:,1:n)]; %约束系数
A(1:m,Ac)=[ad(:,n+1);ax(:,n+1);ae(:,n+1)]; %基本解
s=eye(m); %人工变量
A(1:m,n+1:Ac-1)=s;
for i=1:m %确保d非负
if A(i,Ac)<=0
A(i,:)=-A(i,:);
end
end
lc=length(c);
A(Ar-1,1:lc)=c; %原最优化目标行
for i=1:m %辅助最优化目标行
A(Ar,i)=-sum(A(:,i));
end
A(Ar,Ac)=-sum(A(:,Ac));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -