JuliaOpt / CoinOptServices.jl

Julia interface to COIN-OR Optimization Services https://projects.coin-or.org/OS
Other
16 stars 4 forks source link

Access to undefined reference (calling from JuMP) #13

Closed madeleineudell closed 8 years ago

madeleineudell commented 8 years ago

When running the following simple example, I get a LoadError:

using JuMP, AmplNLWriter, CoinOptServices, MathProgBase
nvar = 10
solver=OsilSolver(solver = "couenne")
m = Model(solver=solver)
@defVar(m, -10 <= x[i=1:nvar] <= 10)
@setNLObjective(m, Min, sum{1/(1+exp(-x[i])), i=1:nvar})
@addConstraint(m, sum{x[i], i=1:nvar} <= .4*nvar)
@assert(solve(m) == :Optimal)

which looks like this:

ERROR: LoadError: UndefRefError: access to undefined reference
 in getreducedcosts at /Users/madeleine/.julia/v0.4/CoinOptServices/src/probmod.jl:409
 in solvenlp at /Users/madeleine/.julia/v0.4/JuMP/src/nlp.jl:564
 in solve at /Users/madeleine/.julia/v0.4/JuMP/src/solvers.jl:135
mlubin commented 8 years ago

Solvers should return a vector of NaNs if duals aren't available. Does AmplNLWriter work here?

madeleineudell commented 8 years ago

Yes, AmplNLWriter does work here. For posterity, here's code:

using JuMP, AmplNLWriter, MathProgBase

srand(4)
nvar = 10

solver=AmplNLSolver("couenne")
m = Model(solver=solver)
@defVar(m, -10 <= x[i=1:nvar] <= 10)
@setNLObjective(m, Min, sum{1/(1+exp(-x[i])), i=1:nvar})
@addConstraint(m, sum{x[i], i=1:nvar} <= .4*nvar)
@assert(solve(m) == :Optimal)