Configuring the optimizer
DataEnvelopmentAnalysis.jl will use a default optimizer/solver for each DEA model, as shown in the next table.
Function | Specific Options | Problem type | Default Optimizer |
---|---|---|---|
dea | LP | GLPK | |
deam | LP | GLPK | |
deaboot | LP | GLPK | |
deabigdata | LP | GLPK | |
deaddf | LP | GLPK | |
deaadd | LP | GLPK | |
deagdf | NLP | Ipopt | |
dearussell | :Input or :Output | LP | GLPK |
dearussell | :Graph | NLP | Ipopt |
deaerg | LP | GLPK | |
deamddf | LP | GLPK | |
deaholder | l = 1 | LP | GLPK |
deaholder | l = 2 | QP | |
deaholder | l = Inf | LP | GLPK |
dearddf | :ERG | LP | GLPK |
dearddf | :MDDF | LP | GLPK |
deaenv | LP | GLPK | |
deacost | LP | GLPK | |
dearevenue | LP | GLPK | |
deaprofit | LP | GLPK | |
deaprofitability | NLP | Ipopt | |
malmquist | LP | GLPK | |
malmluen | LP | GLPK |
Where:
- LP = Linear programming.
- NLP = Nonlinear programming.
- QP = Quadratic programming.
Models can be solved using a different optimizer by passing a DEAOptimizer
object to the optimizer
optional argument. See JuMP documentation for a list of all available solvers.
The optimizer must support the problem type of the DEA model.
For example, you cannot solve a Generalized Distance Function DEA model using the GLPK solver because it is a linear programming solver and deagdf
requires a nonlinear programming solver.
The following is an example of solving the radial DEA model using the Ipopt
sovler:
using Ipopt
using DataEnvelopmentAnalysis
X = [5 13; 16 12; 16 26; 17 15; 18 14; 23 6; 25 10; 27 22; 37 14; 42 25; 5 17];
Y = [12; 14; 25; 26; 8; 9; 27; 30; 31; 26; 12];
myoptimizer = DEAOptimizer(Ipopt.Optimizer, time_limit = 10, silent = true);
dea(X, Y, slack = false, optimizer = myoptimizer)
Radial DEA Model
DMUs = 11; Inputs = 2; Outputs = 1
Orientation = Input; Returns to Scale = CRS
──────────────
efficiency
──────────────
1 1.0
2 0.62229
3 0.819856
4 1.0
5 0.310371
6 0.555555
7 1.0
8 0.757669
9 0.820106
10 0.490566
11 1.0
──────────────
Optimizer API
DataEnvelopmentAnalysis.DEAOptimizer
— TypeDEAOptimizer(optimizer; time_limit, silent)
An data structure storing the configuration of a DEA optimizer.
Optimizer specification:
LP
: linear programming default optimizer, GLPK.NLP
: nonlinear programmin default optimizer, Ipopt.- Any JuMP supported solver.
Optional Arguments
time_limit=:60
: time limit in seconds.silent=true
: suppress optimizer output.
DataEnvelopmentAnalysis.newdeamodel
— Functionnewdeamodel(DEAOptimizer)
Generate a new JuMP model for DEA with the specified optimizer.
This function is used internally and for packages that want to extend the functionality of this package.