coin-or / Cgl

Cut Generator Library
Other
24 stars 14 forks source link

Assertion/crash in CglProbing #81

Closed christoph-cullmann closed 3 months ago

christoph-cullmann commented 1 year ago

Using the attached LP file (here attached as .txt), I get with the current master branch (on Linux 64-bit):

cbc test/value_13929249.lp Welcome to the CBC MILP Solver Version: trunk Build Date: Aug 16 2022 command line - test/value_13929249.lp (default strategy 1) CoinLpIO::readLp(): Maximization problem reformulated as minimization Coin0009I Switching back to maximization to get correct duals etc Continuous objective value is 1.39292e+07 - 0.182589 seconds cbc: /local/ssd/cullmann/build/lpsolve.clpsolve/libcbc/src/Cgl/src/CglProbing/CglProbing.cpp:5702: int CglProbing::probe(const OsiSolverInterface &, const OsiRowCutDebugger , OsiCuts &, double , double , CoinPackedMatrix , CoinPackedMatrix , const CoinBigIndex , const int , const double , const double , const char , double , double , int , CglTreeInfo ): Assertion `newLo[icol]==COIN_DBL_MAX' failed. zsh: IOT instruction (core dumped) ../usr/bin/cbc test/value_13929249.lp

ilp.txt

jjhforrest commented 1 year ago

Will fix - for now take out

define FIXED_BOTH_WAYS 1

at line 30 of CglProbing.cpp

christoph-cullmann commented 1 year ago

Cool, thanks.

Yes, that helps!

I had more issues with the new versions like wrong results, they vanished with that, too.

jjhforrest commented 1 year ago

An array was not long enough - and probing on your problems is more active than on my test set. I think I have fixed, but have not yet put in master.

The "improvement" is generated when FIXED_BOTH_WAYS is defined as 1.Is the general opinion that I should take out #define and allow curious users to use -DFIXED_BOTH_WAYS=1 in build?

christoph-cullmann commented 1 year ago

If you think the code is still that unstable, that might make sense. Otherwise, I have an extensive set of ILPs (> 100k of them) that I can test for you with a new master version if wanted.

jjhforrest commented 1 year ago

Code put in master - switched off unless -DFIXED.... in build. May ask you to test some dubious improvements

christoph-cullmann commented 3 months ago

Current master seems to work for me. Or did I misunderstand that I need to activate still some define?

master already has

#ifndef FIXED_BOTH_WAYS
#define FIXED_BOTH_WAYS 1
#endif
jjhforrest commented 3 months ago

Looks like the bug was fixed sometime in last 18 months!

christoph-cullmann commented 3 months ago

Yeah, sorry that I did not follow up here earlier.