[SCIP] About some errors and warnings
Stefan Vigerske
svigerske at gams.com
Wed Mar 6 09:04:44 CET 2024
Hi,
most or all of these seem to be caused by numerical issues. The LP
coefficients don't look so bad, but I suppose it's the accumulation of
cuts that makes the LP difficult to solve at some point, which then
leads to failures in strong branching, small LU pivot elements, and also
the failing assert.
For example, from some LP at some random node, these are the cuts in two
randomly picked variables:
C812 : - x412 + 4.2145740040952895e-02 x413 >= -1.0008882632348959e+00
C1882 : - x412 + 4.6961113916438582e-03 x413 >= -1.0000110267513662e+00
C1769 : - x412 + 2.2024952858895326e-03 x413 >= -1.0000024254937225e+00
C533 : - x412 - 1.0748914541569298e-02 x413 >= -1.0000577701381510e+00
C1228 : - x412 - 1.9382226508460113e-02 x413 >= -1.0001878412332288e+00
C1726 : - x412 - 3.3406902322537699e-03 x413 >= -1.0000055801108036e+00
C724 : - x412 - 3.7968467698161652e-02 x413 >= -1.0007208888997989e+00
C648 : - x412 - 5.9599949465740487e-02 x413 >= -1.0017766032908819e+00
C494 : - x412 - 6.5685296771751070e-02 x413 >= -1.0021580557540912e+00
C1436 : - x412 - 7.5666299999153823e-03 x413 >= -1.0000286270813639e+00
C615 : - x412 - 7.7849842763195204e-02 x413 >= -1.0030318322513312e+00
There may be worse cases.
I could reproduce the failing assert in conflict_general.c:1853 with
SCIP 9.0.0 (using SoPlex 7.0.0). It seems that SoPlex is in status
SINGULAR (documented as "Basis is singular, numerical troubles?") here.
The function conflictAnalyzeLP() is called from
SCIPconflictAnalyzeStrongbranch(). In there, there is a call to
SCIPlpiSolveDual(). If that LP solve doesn't return an error, then
conflictAnalyzeLP() is called. In there,
assert(SCIPlpiIsPrimalInfeasible(lpi) || SCIPlpiIsObjlimExc(lpi) ||
SCIPlpiIsDualFeasible(lpi)) fails.
The thing is that SoPlex status SINGULAR does not count as an LP error,
but one also does not have a primal infeasible or dual feasible LP or an
exceeded objective limit.
I suppose SCIPconflictAnalyzeStrongbranch() should check for more than
LP error before calling conflictAnalyzeLP(). In this case, checking
SCIPlpiIsStable() would do. Or one checks for exactly the conditions
that the assert requires.
You should be able to get around this failing assert by disabling
conflict analysis for strong branching: conflict/usesb = FALSE
But I wouldn't know a setting to avoid numerical issues on this instance
in general. Changing the LP solver to CPLEX 22.1.1.0 seems to improve
the situation for me. After removing the randomization/lpseed setting
(which makes an assert in lpi_cpx fail), your instance ran through until
the node limit without warnings. CPLEX is just more robust than SoPlex
when it comes to ill conditioned LPs.
Stefan
On 05/03/2024 11:18, Bayramoglu, Selin wrote:
> Hello everyone,
>
> I am solving the attached MINLP with SCIP 8.0.0 with the branching rule vanillafullstrong (VFS) and other options as default. I get the following error:
>
> (node 3565) error in strong branching call for variable <t_b44> with solution 0.611183
>
> in the SCIP log, also attached. Because I am collecting strong branching scores, I cannot use the scores (-infinity) provided in this node.
>
> When I run other similar problems in debug mode, I get the following additional errors and warnings:
>
>
> * Warning: LP solution value is above SCIP's infinity value (when relpscost rule is used)
> * LU pivot element is almost zero (< 1e-10) - Basis is numerically singular (when VFS is used)
> * Assertion fail at conflict.c:8252 (when VFS is used). SCIP aborts with this error.
>
> I was wondering if some of these warnings/errors can be fixed by changing parameter values or if they point to some other problem. Because the last three items occurred under different parameter settings, I did not include the instance files for them, but can provide them if needed.
>
> Many thanks for your help in advance!
>
> Best,
>
> Selin
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list