[Scip] Misusing a SCIP instance as a separation oracle
Ambros Gleixner
gleixner at zib.de
Wed Mar 4 16:51:13 CET 2015
Hi Matthias,
I am not sure whether you already received some feedback. Just a few
comments. Making integer variables continuous is dangerous if they are
contained in constraint handlers that allow only specific types, like
the knapsack constraint handler would only allow binary variables. If
all your constraints are linear, for example, then this should be ok.
Furthermore, if you impose the current solution as lower bounds, the LP
may be infeasible after separation, so you have to be aware of that
possibility.
Also, I am not sure whether you can forbid constraint handlers to
perform propagation during enforcement, so in general you may have to
convert bound changes to singleton cuts.
Adding locks to all variables is probably a good idea to be sure to
avoid anybody performing dual reductions using the artificial objective
function.
I am not sure how you would go about inspecting the new cuts most
efficiently/conveniently.
Good luck,
Ambros
Am 18.02.2015 um 10:49 schrieb Matthias Walter:
> Dear list,
>
> I want to use a given SCIP instance (for a MIP) as a separation oracle
> for the linear relaxation, i.e., given some point x I want to find (if
> it exists) an inequality valid for the LP relaxation but not for x. I
> don't know the SCIP instance very well, except that I assume that all
> constraints can be enforced using linear inequalities. By LP relaxation
> I mean the intersection of all inequalities coming from
> constraints, e.g. for the TSP example the bounds, degree constraints,
> but also all subtour inequalities. I suppose that I can't just call the
> CONSENFOLP callback of every constraint outside of a SCIPsolve call
> since they might require other data to be set up, like a transformed
> problem, or they could even be deactivated, etc.
>
> So my idea was to do the following and I would be happy to get some
> feedback or hints on whether this sounds like a stupid one:
>
> - Turn off presolve, cuts, conflict propagation. and heuristics.
> - Make integer variables continuous.
> - Fix lower bounds to x and change objective to minimize the sum of all
> variables to make x the unique basic solution.
> - Run SCIP and inspect the LP whether x is cut off and which row(s) do it.
>
> Best,
>
> Matthias
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>
--
______________________________________________________________
Ambros M. Gleixner
Zuse Institute Berlin - TU Berlin - Berlin Mathematical School
http://www.zib.de/gleixner
More information about the Scip
mailing list