[Scip] SCIP_DIDNOTRUN in SCIP_DECL_PRICERREDCOST ?
Sandra Ulrich Ngueveu
ngueveu at laas.fr
Fri Mar 20 11:29:11 CET 2015
Dear Gerald,
Thank you for your reply, we were indeed using SCIP 3.1.0. We will
update to 3.1.1 and let you know how it worked.
Regarding the branching, the default branching is sufficient for now,
because we are not branching on variables generated during the column
generation. The variables generated (denoted y) are defined as
continuous and positive (no upper bound).
To achieve that, we modified our original mathematical formulation by
introducing a polynomial number of binary variables x, that we linked to
the variables y with linear constraints, in such a way that at the
optimum, y variables can only take values 0 or 1, and therefore behave
like binary variables, despite the fact that they were defined as
continuous with no upper bound.
Best regards,
Sandra
Le 19/03/2015 11:54, Gerald Gamrath a écrit :
> 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
>
--
Maître de Conférences / Associate Professor
------------------------------------------------
ngueveu at laas.fr
Equipe ROC (anciennement MOGISA)
LAAS-CNRS
7 avenue du Colonel Roche
31077 Toulouse Cedex 4 - France
------------------------------------------------
sandra.ngueveu at enseeiht.fr
Département GEA
INP-ENSEEIHT
2 rue charles Camichel
31071 Toulouse - France
More information about the Scip
mailing list