链式网络DEA与matlab应用-二阶段附加投入DEA.docxVIP

  • 3
  • 0
  • 约2.57千字
  • 约 5页
  • 2023-11-11 发布于湖北
  • 举报

链式网络DEA与matlab应用-二阶段附加投入DEA.docx

链式网络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)

1亿VIP精品文档

相关文档