he Excel plug-in allows only for one model. Data Envelopment Analysis models however consist of a number of small LP models: one for each DMU (Decision-Making Unit). However the individual LP models are very small. So it is reasonable to combine all small LP’s into one bigger LP. Basically we form:
max | +c1'x1 | +c2'x2 | ... | +cK'xK |
A1x1=b1 | ||||
A2x2=b2 | ||||
... | ||||
AKxK=bK |
A basic CCR model can look like:
// DEA: combine all LPs into bigger LP
Model[
Parameters[Sets,DMU,Inp,Outp],
Parameters[Reals,x[DMU,Inp],y[DMU,Outp]],
Decisions[Reals[0,Infinity],v[DMU,Inp],u[DMU,Outp]],
Decisions[Reals,efficiency[DMU]],
Constraints[
// objectives:
Foreach[{j0,DMU},efficiency[j0]==Sum[{o,Outp},u[j0,o]*y[j0,o]]],
// normalize:
Foreach[{j0,DMU},Sum[{in,Inp}, v[j0,in]*x[j0,in]] == 1],
// limit:
Foreach[{i,DMU},{j0,DMU},Sum[{o,Outp}, u[j0,o]*y[i,o]] <= Sum[{in,Inp}, v[j0,in]*x[i,in]]]
],
Goals[Maximize[totaleff -> Sum[{j0,DMU},efficiency[j0]]]]
]
See also http://www.amsterdamoptimization.com/models/msf/oml.pdf. A similar trick was used in http://yetanothermathprogrammingconsultant.blogspot.com/2009/03/efficient-portfolio-frontier-in-msf.html.
Of course if you prefer to work at the API level there is no problem in solving a series of LP’s.
The Excel interface makes it easy to sort the results. In this case that is done with the Filter facility in Excel.(click to enlarge)
No comments:
Post a Comment