[Scip] Assertion failed: !lpCutoffDisabled(set)

Gerald Gamrath gamrath at zib.de
Fri Apr 25 00:15:59 CEST 2014


Dear Shahin,

> Thank you for your reply.
> Well answer to your first question:
> lp_disablecutoff = 2
>  and
> lpiuobjlim =1e+20
> it detects that nactivepricers = 1 in lpCutoffDisabled.
ok, all this is as it should be.

>
> I use the following lines:
>            SCIP_CALL( SCIPincludeObjPricer(scip, hrp_pricer_ptr, true) );
>
>            /* activate pricer */
>            SCIP_CALL( SCIPactivatePricer(scip, SCIPfindPricer(scip, 
> HRP_PRICER_NAME)) );
>
>    /*************
>     *  Solve    *
>     *************/
>     SCIP_CALL( SCIPsetCharParam(scip, "lp/initalgorithm", 'b') );
>     SCIP_CALL( SCIPsolve(scip) );
>
>
> when you say "objective limit" what is this and where is going this to 
> be used? why we need this? I could not find anywhere in documentation 
> about it (perhaps I missed it).
>
> So, it seems to me like the pricer is activated at the correct place, no?
Yes, this is also correct. The objective limit (or cutoff) is used in 
the LP solver to stop LP solving earlier in case it is already sure that 
the current node can be cut off. It is typically set to the value of the 
best primal solution SCIP found so far. When doing branch-and-price, 
however, we want to always solve the LP to optimality, so that this is 
automatically disabled.

> Just a question for myself, how is that possible to "during the 
> solving process after the first LP was solved" ??  that means you 
> activate pricing from inside an instance of e.g. constraint or ...?
Yes, you could enable it in a constraint hander, heuristic, ... which 
might cause problems.

Could it be that your problem has a really huge optimal value larger 
than 1e+100? This might also have caused the problem. Can you please 
enable LP solver output in SCIP and send me the output you get (in 
particular from the last solve before the assert comes up)?
In order to do this, please add
SCIP_CALL( SCIPsetBoolParam(scip, "display/lpinfo", TRUE) );
before the SCIPsolve().

Best,
Gerald


More information about the Scip mailing list