|
From: | Darin England |
Subject: | Re: [Help-glpk] [Fwd: Using GLPK for DEA] |
Date: | Tue, 10 Jan 2012 15:23:26 -0600 |
User-agent: | Mutt/1.5.17+20080114 (2008-01-14) |
There are lots of variations on DEA, and I am not an expert, but last year I wrote a small program to solve a basic DEA problem, wherein we solve a series of LP problems, one for each Decision Making Unit. Maybe this could be done entirely in GNU MathProg, but the way I did it was to use the C API to GLPK. The code and a sample problem are attached. The sample problem is the one for automobile dealerships presented in Paul Williams book "Model Building in Mathematical Programming". Maybe this example will be helpful to someone. dea.mod is the model in Mathprog dea.c solves the series of LPs auto.dat is the sample data from Willams' book makefile is to help with compilation Darin On Sun, Jan 08, 2012 at 08:40:45PM +0300, Andrew Makhorin wrote: > -------- Forwarded Message -------- > From: Amogh Tolay <address@hidden> > To: address@hidden > Subject: Using GLPK for DEA > Date: Sun, 8 Jan 2012 20:35:18 +0530 > > Dear Sir/Madam > > > I have been trying to use GLPK to solve a Data Envelopment Problem using > the CCR model. I am a novice and I was unable to find the way to > implement such problems with GLPK. It would be great if you could help > me out! The problem is to find the CCR efficiency of a two-input and > two-output problem which is something as follows: > Labels: A B C D > Input1: 20, 19, 25, 27 > Input2: 151, 131, 160, 168 > > > Output1: 100, 150, 160, 180 > Output2: 90, 50, 55, 72 > > > I need to maximize the efficiency and find the corresponding weights. > That is, I need to apply the CCR model with variable weights to optimize > this problem. Thus, for Label A, the set of equations are: > (where u1, u2 are the weights for inputs of A and v1, v2 are the weights > for outputs of A.) > > > maximize 100v1+90v2; > > > subject to: > 20u1+151u2=1; > 100v1+90v2<=20u1+151u2; > 150v1+50v2<=19u1+131u2; > 160v1+55v2<=25u1+160u2; > 180v1+72v2<=27u1+168u2; > > > where u1, u2, v1 and v2 are all greater than 0. > > > I haven't been able to figure out as to how to implement this problem > using GLPK without converting it to Standard Form. Is it necessary to > convert such equations to Standard Form before using GLPK? If so, can > you please guide me to convert such problems into a format that GLPK can > handle? > I tried searching for documentation for such problems, but unfortunately > I couldnt find anything. If I am missing some online > resources/documentations which specifically deal with such problems, I > would be glad if you could point them out to me. > It would be really kind of you if you could help a novice like me. :) > > Thank You > -------- > Amogh > > > > _______________________________________________ > Help-glpk mailing list > address@hidden > https://lists.gnu.org/mailman/listinfo/help-glpk
auto.dat
Description: MOPAC data
dea.c
Description: Text Data
dea.mod
Description: Text document
makefile
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |