[SCIP] Pricer keeps generating single-vertex segments for partitioning problem

Robert Schütz robert.schuetz at stud.uni-heidelberg.de
Thu Jul 13 12:25:54 CEST 2017


Hey all,

I have implemented an image partitioning problem in SCIP, involving a
pricer that generates segments with negative reduced costs.
Each possible segment has a fitting error calculated by the sum of the
fitting errors of each pixel in it and the fitting value of a segment is
given by the color of one "super" node in that segment and therefore
constant when solving the pricing problem.
The pricing problem is of itself a MIP involving constraints on the
connectivity of the generated segment and solved using SCIP.

Now the problem is that after a while, the pricer keeps generating
single-pixel segments consisting only of a  super node (which are
therefore added multiple times, even though they should have positive
reduced costs after adding them once).
This happens shortly after I get the following output:

    (node 1) solution of LP 43 not optimal (pfeas=1, dfeas=0) -- solving again with tighter feasibility tolerance
     34.6s|     1 |     0 |   844 |     - |2444k|   0 |   0 | 215 |  56 | 215 |  56 |   0 |   0 |   0 |      --      | 5.000000e+04 |    Inf 
    r34.6s|     1 |     0 |   844 |     - |2444k|   0 |   0 | 215 |  56 | 215 |  56 |   0 |   0 |   0 |      --      | 1.955779e+04 |    Inf

and after another round of the pricer:

     time | node  | left  |LP iter|LP it/n| mem |mdpt |frac |vars |cons |cols |rows |cuts |confs|strbr|  dualbound   | primalbound  |  gap
     36.6s|     1 |     0 |   877 |     - |2583k|   0 |   0 | 220 |  56 | 220 |  56 |   0 |   0 |   0 |      --      | 1.955779e+04 |    Inf 
    r36.6s|     1 |     0 |   877 |     - |2583k|   0 |   0 | 220 |  56 | 220 |  56 |   0 |   0 |   0 |      --      | 1.912082e+04 |    Inf

After doing some research on the mailing list etc, I tried these two 
- SCIPchgVarUbLazy(scip, var, 1.0)
  but the behaviour does not change regardless of the segment variables
  being binary or contiunous and this setting being set.
- SCIPsetIntParam(scip, "presolving/maxrestarts", 0)
  which did obviously not hinder SCIP from solving again (see SCIP's
  output above) so I guess this does not count as restarting :)

Do you have an idea what the problem could be?

Yours, Robert


More information about the Scip mailing list