[Scip] SCIP solution handling

Matthias Peinhardt matthias.peinhardt at ovgu.de
Thu Jul 29 17:07:59 MEST 2010


Hi all,

I have a problem with SCIP's solution handling. I catch the 
SCIP_EVENTTYPE_BESTSOLFOUND with an event handler, and try to build another 
possibly better solution from it by doing

SCIPcreateOrigSol (...);
SCIPtrySolFree (...);

However, in debug mode this fails with an assert():
src/scip/event.c:1205: eventfilterDelayUpdates: Assertion 
`!eventfilter->delayupdates' failed.

The backtrace is something like:
SCIPtrySolFree(...)           src/scip/scip.c:12902
SCIPprimalAddSolFree (...)    src/scip/primal.c:663
primalAddSol(...)             src/scip/primal.c:493
SCIPeventProcess(...)         src/scip/event.c:829
SCIPeventFilterPorcess(...)   src/scip/event.c:1276
eventfilterDelayUpdates(...)  src/scip/event.c:1205

It seems SCIP does not like to postpone the event handling for the new 
solution, as it technically still deals with its first solution. It is maybe 
noteworthy that in the optimized mode everything works like expected, so the 
triggered assert() does not seem to protect some essential state of SCIP.

Now I see two options:
- To tell SCIP that it can delay those updates for this event. How to do that?
- To write some heuristic that is called later when the best-solution-event is
   completely processed. This heuristic would then send the new solution.

Or is this assert() that is triggered a bug?

Thanks for your help,
Matthias

-- 
Matthias Peinhardt
Otto-von-Guericke University
Faculty of Mathematics
Institute for Mathematical Optimization (IMO)
Universitätsplatz 2
D-39106 Magdeburg
===================================================
office: building 02 - room 208
mail: Matthias.Peinhardt at ovgu.de
fon: +49 391 67 11601
fax: +49 391 67 11171



More information about the Scip mailing list