[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