[Scip] Misusing a SCIP instance as a separation oracle

Matthias Walter matthias.walter at ovgu.de
Wed Feb 18 10:49:58 CET 2015


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


More information about the Scip mailing list