Why give the same performance of all units

68 views
Skip to first unread message

Vafa Mousavi

unread,
Apr 26, 2016, 8:38:56 AM4/26/16
to gamsworld
I wrote DEA model but offers the same performance of all units and not error. When inputs or outputs change, I change and efficiency of all units with the same error again not.
The model gives a performance of all units and not error as follows:
sets
i   "inputs"   /i1  "doctors",i2  "nurses"/
r   "outputs"  /o1  "outpatients",o2 "inpatients"/
j   "units"    /dmu01*dmu12/
is(j) "selected units"
scalar epsilon  "non-archimedean value"  /0.005/;
parameters
*let dmu01  be under evaluation
   xo(i)   "inputs of under evaluation dmu"  /i1 20,i2  151/
   yo(r)   "outputs of under evaluation dmu" /o1 100,o2 90/;

table x(i,j)
    dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1   20    19    25    27    22     55    33    31    30    50    53    38
i2   151  131  160  168  158    255   235  206  244  268  306   284;
table y(r,j)
    dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1   100   150   160   180   94    230   220   152   190   250   260   250
o2   90     50     55     72    66    90     88     80    100   100   147   120;
variables
v(i) "output weights"
u(r) "input weights"
z    "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective..z=e=(sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));
const(j)..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model   fractionalccr_model /all/;
solve    fractionalccr_model using nlp maximizing z;
set jj(j) set of units to analyze /dmu01*dmu12/;
parameters efficiency summary report;
loop(jj,is(jj)=yes;
solve fractionalccr_model using nlp max z;
 efficiency(jj)=z.l;
is(jj)=no;);
option decimals=4;
display efficiency ;


The inputs include 12 unit, 21 doctor and 100 nurses put all their performance against 0.7875 has and not error.
The problem is that everyone gives the same performance and not give errors?

Vafa Mousavi

unread,
Apr 26, 2016, 9:04:29 AM4/26/16
to gamsworld
I wrote DEA model but offers the same performance of all units and not error. When inputs or outputs change, I change the performance of all units are identical and not error again.
All units gives a performance model that does not error as follows:

Renger van Nieuwkoop

unread,
Apr 26, 2016, 9:47:57 AM4/26/16
to gams...@googlegroups.com

Hi Vafa

This will not work properly as in the model equations you use j and in your loop you use jj. You should remove the index j from your model.

In the loop you assign for the parameters without j the value from your table and you solve the model. Here is the code (note that in your model equations there is no j left and I replace x(i,j) and y(r,j) by xl(i) and y(r).

Cheers

Renger

 

parameter yl(r) 'Loop value for y(j,r)',

          xl(i) 'Loop value for x(j,x)';

 

equations

    objective

    const;

 

objective..

    z=e= (sum(r,u(r)*yo(r)))/sum(i,v(i)*xo(i));

 

const..

    sum(r,u(r)*yl(r))/sum(i,v(i)*xl(i))=l=1;

 

model   fractionalccr_model /all/;

 

parameters efficiency summary report;

 

loop(j,

    xl(i) = x(i,j);

    yl(r) = y(r,j);

    solve fractionalccr_model using nlp max z;

    efficiency(j)=z.l;

    );

option decimals=4;

display efficiency ;

 

--
You received this message because you are subscribed to the Google Groups "gamsworld" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+...@googlegroups.com.
To post to this group, send email to gams...@googlegroups.com.
Visit this group at https://groups.google.com/group/gamsworld.
For more options, visit https://groups.google.com/d/optout.

Ali Reza Bahari

unread,
Apr 29, 2016, 2:48:24 AM4/29/16
to gams...@googlegroups.com
Hi Vafa

Your model just compute efficiency of DMU1 many times. here is the corrected code

Sets
i   "inputs"   /i1  "doctors",i2  "nurses"/
r   "outputs"  /o1  "outpatients",o2 "inpatients"/
j   "units"    /dmu01*dmu12/
is(j) "selected units";
is(j)=yes;
Alias(j,jj);

scalar epsilon  "non-archimedean value"  /0.005/;

table x(i,j)
    dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
i1   20    19    25    27    22     55    33    31    30    50    53    38
i2  151    131   160   168   158    255   235   206   244   268   306   284;
table y(r,j)
    dmu01 dmu02 dmu03 dmu04 dmu05 dmu06 dmu07 dmu08 dmu09 dmu10 dmu11 dmu12
o1   100   150   160   180   94    230   220   152   190   250   260   250
o2   90    50    55    72    66    90     88   80    100   100   147   120;
variables
v(i) "output weights"
u(r) "input weights"
z    "efficiency";
positive variables
v
u;
v.lo(i)=epsilon;
u.lo(r)=epsilon;
equations
objective
const(j);
objective(is) ..z=e=sum(r,u(r)*y(r,is))/sum(i,v(i)*x(i,is));
const(j)      ..sum(r,u(r)*y(r,j))/sum(i,v(i)*x(i,j))=l=1;
model   fractionalccr_model /all/;
solve    fractionalccr_model using nlp maximizing z;
parameters efficiency summary report;

is(j)=no;

loop(jj,
  is(jj)=yes;

solve fractionalccr_model using nlp max z;
 efficiency(jj)=z.l;

is(jj)=no);

option decimals=4;
display efficiency ;


Reply all
Reply to author
Forward
0 new messages