Choosing Sub-Solvers
The design of the AMP solver requires a variety of programming problems to be solved underneath the surface. For algorithmic performance, it's recommend that dedicated solvers to be used for these operations. The design of AMP takes advantage of MathProgBase to allow a majority of optimization softwares to be utilized easily with simple development. Currently, the following sub-solvers with Julia Interface is supported by AMP:
Solver | Julia Package |
---|---|
CPLEX | CPLEX.jl |
Cbc | Cbc.jl |
Gurobi | Gurobi.jl |
Ipopt | Ipopt.jl |
Bonmin | Bonmin.jl |
Artelys KNITRO | KNITRO.jl |
As the development of AMP contineous, supports fo Mosek, GLPK, NLopt, Xpress is already scheduled for the roadmap.
To use different sub-solvers, here is an example:
using JuMP
using Alpine
using Gurobi, Ipopt
m = Model()
# Here goes the building of your model...
setsolver(m, AlpineSolver(nlp_solver=IpoptSolver(print_level=0), mip_solver=GurobiSolver(OutputFlag=0)))