[Scip] Could a global cut be discarded ?

Tobias Achterberg achterberg at zib.de
Thu Jul 9 11:45:01 MEST 2009


Hi Nikolaj,

nikolaj at crt.umontreal.ca wrote:
> This sounds like a perfect answer to my problem but I can't make it work.
> Maybe I'm doing something wrong somewhere? I've tried both solution (by
> hand by
> calling SCIPgetNCuts() and the automatic version by setting the SEPA_DELAY
> flag to TRUE)
> but none of them seems to work: the global cut is still generated three
> times.
> 
> I've tested each solution separately and together.
> 
> I've taken away all the other separators and added the "faulty" separator
> with SEPA_DELAY flag to FALSE and tested
> how many cuts where in the global cut pool. SCIPgetNCuts() always returns
> 0 at the beginning of the separator.
> 
> SCIPgetNCutsApplied() and SCIPgetNCutsFound() always return exactly the
> same number of cuts and this number is exactly the number of discovered
> cuts
> by the separator. What I understand is that the same cut that was
> generated three times is considered as three different cuts. Is this
> correct ? But it is exactly the same cut discovered by the same separator..

One possibility is that your cut in the global cut pool died due to aging. By default, the
age limit for cut pool cuts is 100. That means, if the global cut pool checked the
feasibility of the cut and it turned out to be feasible 100 times in a row, the cut is
permanently discarded from the pool. So, please try to set the "separating/cutagelimit"
parameter to -1 in order to disable cut aging.

If this does not help, I am at the end of my wisdom. In this case, you should add a line

#define SCIP_DEBUG

at the very top (before the includes) of src/scip/sepastore.c, src/scip/solve.c, and
src/scip/cutpool.c. I also recommend to set the display frequency "display/freq" to 1.

This will give you a lot of output. Maybe you can find out what happens with the cut pool.
If you need help with the analysis of these log files, just send them to me in private
communication, as this is probably too much for the mailing list.


Tobias


More information about the Scip mailing list