Hi all,

I’m new to Julia (coming from AMPL), and I’m trying to solve a model using the SDDiP algorithm implemented in SDDiP.jl and CPLEX.

I’m able to implement many of the example models, and the algorithm generally works fine for my model. However, I’ve noticed that occasionally I am getting an error after many iterations (e.g., after 165 iterations).

```
Warning: Not solved to optimality, status: CPX_STAT_OPTIMAL_INFEAS
ERROR: LoadError: AssertionError: JuMP.solve(sp, ignore_solve_hook=true, relaxation=true) == :Optimal
Stacktrace:
[1] #SDDiPsolve!#2(::Bool, ::Int64, ::Array{Any,1}, ::Function, ::JuMP.Model) at C:\Users\ELTUCK\.julia\v0.6\SDDiP\src\solver.jl:73
[2] (::SDDiP.#kw##SDDiPsolve!)(::Array{Any,1}, ::SDDiP.#SDDiPsolve!, ::JuMP.Model) at .\<missing>:0
[3] #solve#133(::Bool, ::Bool, ::Bool, ::Array{Any,1}, ::Function, ::JuMP.Model) at C:\Users\ELTUCK\.julia\v0.6\JuMP\src\solvers.jl:151
[4] (::JuMP.#kw##solve)(::Array{Any,1}, ::JuMP.#solve, ::JuMP.Model) at .\<missing>:0
[5] JuMPsolve at C:\Users\ELTUCK\.julia\v0.6\SDDiP\src\solver.jl:8 [inlined]
[6] solvesubproblem!(::Type{SDDP.BackwardPass}, ::SDDP.SDDPModel{SDDP.DefaultValueFunction{SDDP.DefaultCutOracle}}, ::JuMP.Model, ::Float64) at C:\Users\ELTUCK\.julia\v0.6\SDDP\src\defaultvaluefunction.jl:146
[7] backwardpass!(::SDDP.SDDPModel{SDDP.DefaultValueFunction{SDDP.DefaultCutOracle}}, ::SDDP.Settings) at C:\Users\ELTUCK\.julia\v0.6\SDDP\src\SDDP.jl:239
[8] macro expansion at C:\Users\ELTUCK\.julia\v0.6\SDDP\src\SDDP.jl:278 [inlined]
[9] macro expansion at C:\Users\ELTUCK\.julia\v0.6\TimerOutputs\src\TimerOutput.jl:177 [inlined]
[10] iteration!(::SDDP.SDDPModel{SDDP.DefaultValueFunction{SDDP.DefaultCutOracle}}, ::SDDP.Settings) at C:\Users\ELTUCK\.julia\v0.6\SDDP\src\SDDP.jl:277
[11] macro expansion at C:\Users\ELTUCK\.julia\v0.6\SDDP\src\SDDP.jl:317 [inlined]
etc.
```

I am not exactly sure how to proceed. I am not sure if this indicates an issue with the tolerance parameters or the formulation (or something else entirely).

Does anyone have suggestions on handling this type of error?

Versions (not updated to newest so that they’re consistent with the SDDiP code)

Julia: 0.6.4

JuMP: 0.18.5

CPLEX: 0.4.2

GLPKMathProgInterface: 0.4.4

Thank you,

Emily