- 3
- 0
- 约2.57千字
- 约 5页
- 2023-11-11 发布于湖北
- 举报
链式网络DEA与matlab应用:二阶段附加投入的DEA
链式网络DEA包括2阶段、3阶段等多阶段,我们考虑2阶段附加投入的DEA模型。网络 DEA 模型的形式是我们把决策单元分解为 K 个子过程,每个子过程都有相应的投入变量和输出变量,同时还有中间变量,中间变量既是上一子系统输出的变量,又是下一子系统输入的变量,我们把各个过程依照流程的次序排列好,上一子过程的中间产出变量要由下一个过程进行消费,通过相关中间变量,紧密联系决策单元各子过程。对应的一般模型为,
DEA模型如下:
第一阶段CCR模型:
不仅考虑到要求保证第一阶段的效率值小于 1,同时考虑附加约束即第二阶段的效率值阈值为 1,计算第一阶段的最佳效率,记为。所以,第一阶段的效率值 的约束条件为。
根据 Charnes-Cooper 变换,将第一阶段模型转换为线性方程,
整体效率可以看成是函数,
同理根据 Charnes-Cooper 变换,
clear;clc;
M=xlsread(C:\MATLAB74\work\new,Sheet1,A2:G28);
%第一阶段3个投入M的1-2列,产出为M的3列;
%第二阶段的新投入为M的4-5列,产出为M的6-7列
X1=M(:,1:2);%第一阶段初始投入矩阵X1,列数为DMU的个数n,行数为投入种类m
Z=M(:,3:3); %第一阶段产出矩阵Z,列数为DMU的个数n,行数为产出种类D
X2=M(:,4:5);%第二阶段追加投入x2,列数为DMU的个数n,行数为附加投入种类H
Y=M(:,6:7);%第二阶段最终产出矩阵Y,列数为DMU的个数n,行数为最终产出种类s
n=size(X1,1);
m=size(X1,2);
D=size(Z,2);
H=size(X2,2);
s=size(Y,2);
theta1=zeros(n,1);
theta2=zeros(n,1);
w=cell(n,1);
v=w;
Q=w;
u=w;
options=optimset(display,off);
for i=1:n
%% 第一次线性规划
f=-[Z(i,:),zeros(1,(m+H+s))];
A=[Z,-X1,zeros(n,(H+s));
-Z,zeros(n,m),-X2,Y];
b=zeros(2*n,1);
Aeq=[zeros(1,D),X1(i,:),zeros(1,(H+s))];
beq=1;
lb=zeros(1,(D+m+H+s));
ub=inf*ones(1,(D+m+H+s));
[w1,feval]=linprog(f,A,b,Aeq,beq,lb,ub,[],options);
theta1(i)=-feval;
%% 第二次线性规划
theta0=linspace(0,theta1(i));
THETA=zeros(1,100);
for j=1:100
f=-theta0(j)*[zeros(1,m),zeros(1,D),zeros(1,H),Y(i,:)];
A=[-X1,Z,zeros(n,H),zeros(n,s);
zeros(n,m),-Z,-X2,Y];
b=zeros(2*n,1);
Aeq=[zeros(1,m),Z(i,:),X2(i,:),zeros(1,s);
-theta0(j)*X1(i,:),Z(i,:),zeros(1,H),zeros(1,s)];
beq=[1;0];
lb=zeros(1,(m+D+H+s));
ub=inf*ones(1,(m+D+H+s));
[w2,feval]=linprog(f,A,b,Aeq,beq,lb,ub,[],options);
THETA(j)=-feval;
end
%[~,j]=max(THETA);
f=-theta0(j)*[zeros(1,m),zeros(1,D),zeros(1,H),Y(i,:)];
原创力文档

文档评论(0)