Gurobi local cuts


#1

HI everyone!

I am tryin to add local cut with Gurobi (Julia v0.6). Although it works with CPLEX is seems that Gurobi wrapper does not support local cuts.

> LoadError: e[91mMethodError: no method matching cbaddcutlocal!(::Gurobi.GurobiCallbackData, ::Array{Int32,1}, ::Array{Float64,1}, ::Char, ::Float64)e[0m
> Closest candidates are:
> cbaddcutlocal!(e[91m::MathProgBase.SolverInterface.LPQPWrapperCallbackDatae[39m, ::Any, ::Any, ::Any, ::Any) at C:\Users\Lefteris Manousakis.julia\v0.6\MathProgBase\src\SolverInterface\lpqp_to_conic.jl:335
> cbaddcutlocal!(e[91m::CPLEX.CplexCallbackDatae[39m, ::Any, ::Any, ::Any, ::Any) at C:\Users\Lefteris Manousakis.julia\v0.6\CPLEX\src\CplexSolverInterface.jl:446e[39m

How can I fix this? IS Gurobi supporting local cuts in general (so can I write a function in the wrapper?
Should I change the MPB or Gurobi pkg?

Thank you


#2

I’m not sure if Gurobi supports local cuts. The first step would be to check that it is supported via the C API, and as a second step, implement the required changes in the Gurobi.jl wrapper.


#3

Gurobi doesn’t support local cuts, unfortunately.


#4

Thank you both for the immediate replies. I modified the wrapper and I also discovered that tha C API does not support local cuts. Does that mean that in Gurobi we cannot add for example local cuts for routing problems ( Subtour separation, capacity cuts, etc). Is there a workaround for this?

I am PhD student working on optimization problems in the field of transportation and logistics, and in my current problem I have found Gurobi to be a lot faster than CPLEX. So, I wouldn’t like to go back to using CPLEX. For the time being I perform the separation and adding cuts only at the root node, where the cuts are global, so no problem occurs.


#5

Is there a workaround for this?

Unfortunately, no.