[Scip] SCIP_DIDNOTRUN in SCIP_DECL_PRICERREDCOST ?
Gerald Gamrath
gamrath at zib.de
Thu Mar 19 11:54:10 CET 2015
Dear Sandra,
it looks like you are still using SCIP 3.1. The issue should have been
fixed with the latest bugfix release 3.1.1, please check if this is the
case.
A general remark: When doing branch-and-price, you should also implement
your own branching rule, since the default rules branching on variables
aren't well suited for a branch-and-price algorithm. Just have a look at
Coloring or Binpacking example and some discussions on the mailing list
in the last months.
Best,
Gerald
> Hello,
>
> I am doing a Branch-and-Price with SCIP, where the subproblem (pricer)
> consists in solving a MIP with IloConcert (Cplex), with a predefined
> time limit DeltaT. DeltaT = "total time allowed for the entire
> branch-and-price" minus "time elapsed since the beginning of the
> branch-and-price".
>
> If cplex finds the optimal solution, we set *result=SCIP_SUCCESS, then
> add the columns found, if there are any. Otherwise (if cplex stops
> because of the time limit DeltaT), we set *result=SCIP_DIDNOTRUN.
>
> For some instances, the following assertion fails:
> rc/scip/branch_relpscost.c:928: execRelpscost: Assertion
> `SCIPisLT(scip, provedbound, SCIPgetCutoffbound(scip))' failed.
>
> It seems to happen only when DeltaT was unsufficient to solve a
> subproblem, therefore when *result was set to SCIP_DIDNOTRUN.
>
> In the LOP example, the lower bound pointer is set just after setting
> *result=SCIP_DIDNOTRUN (line 503 of pricer_coloring.c). Is it
> mandatory for the code to be correct ? Is the absence of this
> instruction the raison of the failed assertion ? Is it possible to set
> *lowerbound = -SCIP(infinity) or *lowerbound=0 ?
>
> Thank you for your help,
>
> Best regards,
>
> Sandra
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list