$Title Chapter 3 (Fig. 3.16) $Title The Mathematical Formulation Of The Input DEA Congestion Using Slack Variables With The Corresponding GAMS Formulation $onText If using this code, please cite: --------------------------------------------------------------------------------- Emrouznejad, A., P. Petridis, and V. Charles (2023). Data Envelopment Analysis with GAMS: A Handbook on Productivity Analysis, and Performance Measurement, Springer, ISBN: 978-3-031-30700-3. --------------------------------------------------------------------------------- Website: https://dataenvelopment.com/GAMS/ $offText Sets j DMUs /DMU1*DMU10/ g Inputs and Outputs /ProdCost, TrnCost, HoldInv, SatDem, Rev, CO2/ i(g) Inputs under managerial control /ProdCost, TrnCost, HoldInv/ r(g) Desirable outputs /SatDem, Rev/; alias(jj,j); alias(kk,jj); Table Data(j,g) Data for inputs and outputs ProdCost TrnCost HoldInv SatDem Rev DMU1 0.255 0.161 0.373 20 2.64 DMU2 0.98 0.248 0.606 6 5.29 DMU3 0.507 0.937 0.749 17 2.43 DMU4 0.305 0.249 0.841 2 8.99 DMU5 0.659 0.248 0.979 19 2.94 DMU6 0.568 0.508 0.919 17 0.75 DMU7 0.583 0.628 0.732 17 6.36 DMU8 0.627 0.675 0.738 10 7.2 DMU9 0.772 0.657 0.486 9 2.16 DMU10 0.917 0.639 0.234 8 7.3; Variables efficiency objective function for model 1 efficiency1 objective function for model 2 Theta Strong disposability efficiency Theta_tilde Weak disposability efficiency zeta(i) Congestion with slack measures Lambda(j) dual weights (Lambda values) Nonnegative Variables Lambda(j) dual weights (Lambda values) sminus(i) slack variable assigned to input splus(r) slack variable assigned to output; Parameters DMU_data(g) slice of data eff_Theta(j) Strong disposability efficiency values res_eff_2(j) results for sum of zeta variables res_zeta(j,i) Results for zeta variable Lamres_s(j,j) peers for each DMU for strong disposability model slice_Theta slice of efficiency slice_xproj(i) slice for input projection slice_yproj(r) slice for output projection slice_sminus(i) slice for input slack slack_in(j,i) results for input slack variables slack_out(j,r) results for output slack variables xproj(j,i) projected values for inputs for each DMU yproj(j,r) projected values for outputs for each DMU; Equations OBJ_s objective function for strong disposability CON1_s(i) input constraint for strong disposability CON2_s(r) output constraint for strong disposability OBJ_w objective function for weak disposability CON1_w(i) input constraint for weak disposability CON2_w(r) output constraint for weak disposability CON3_w(i) slack constraint VRS VRS constraint; OBJ_s.. efficiency=E=Theta-1E-3*(SUM(i,sminus(i))+SUM(r,splus(r))); CON1_s(i).. SUM(j, Lambda(j)*Data(j,i))=L=Theta*DMU_data(i); CON2_s(r).. SUM(j, Lambda(j)*Data(j,r))=G=DMU_data(r); OBJ_w.. efficiency1=E=SUM(i,zeta(i)); CON1_w(i).. SUM(j, Lambda(j)*Data(j,i))- zeta(i)=E=slice_xproj(i); CON2_w(r).. SUM(j, Lambda(j)*Data(j,r))=E=slice_yproj(r); VRS.. SUM(j, Lambda(j))=E=1; model Input_DEA_strong_disposability Input oriented DEA model for strong disposability /OBJ_s, CON1_s, CON2_s, VRS/; model Input_DEA_weak_disposability_slack Input oriented DEA model for weak disposability with slack measures /OBJ_w, CON1_w, CON2_w, CON3_w, VRS/; loop(jj, DMU_data(g) = Data(jj,g); solve Input_DEA_strong_disposability using LP minimizing Theta; eff_Theta(jj)=Theta.l; slack_in(jj,i)=sminus.l(i); slack_out(jj,r)=splus.l(r); xproj(jj,i)=eff_theta(jj)*Data(jj,i)- slack_in(jj,i); yproj(jj,r)=Data(jj,r)+slack_out(jj,r); slice_xproj(i)=xproj(jj,i); slice_yproj(r)=yproj(jj,r); slice_Theta=eff_Theta(jj); slice_sminus(i)=slack_in(jj,i); solve Input_DEA_strong_disposability using LP minimizing Theta; eff_Theta(jj)=Theta.l; slack_in(jj,i)=sminus.l(i); slack_out(jj,r)=splus.l(r); xproj(jj,i)=eff_theta(jj)*Data(jj,i)-slack_in(jj,i); yproj(jj,r)=Data(jj,r)+slack_out(jj,r); slice_xproj(i)=xproj(jj,i); slice_yproj(r)=yproj(jj,r); slice_Theta=eff_Theta(jj); slice_sminus(i)=slack_in(jj,i); solve Input_DEA_weak_disposability_slack using LP maximizing efficiency1; res_zeta(jj,i)=zeta.l(i); res_eff_2(jj)=SUM(i,zeta.l(i)); ); Display eff_Theta, res_zeta, res_eff_2;