scipopt / soplex

Sequential object-oriented simPlex
Other
59 stars 18 forks source link

Unspecified error when solving LP exactly #7

Closed sjunges closed 6 months ago

sjunges commented 1 year ago

Dear developers,

with great interest and quite some success, we have investigated SoPlex as a backend for our probabilistic model checker. Many thanks for your continued development of this LP solver.

During one of the tests, we encountered an error message which can be reproduced from the command line using

soplex --readmode=1 --solvemode=1 -f0 -o0 debug.lp

Error while testing for infeasibility.

SoPlex status : error [unspecified] Solving time (sec) : 0.15 Iterations : 3752 Objective value : 0.00000000e+00

I attached the problem description and the full output.

Using another exact LP solver, the objective value should be 3378681/200000000000000 (approx. 1.6893405e-08). I understand that the problem is numerically challenging, which is why using an exact solver is intereting for us.

Please let me know if you need any other information.

Best, Sebastian Junges

P.S. I tried sending a similar message to the mailing list without success... error-soplex.txt debug.lp.txt

ambros-gleixner commented 1 year ago

Very interesting, thanks for reporting this. debug.lp.txt is not an LP format file, is this what you wanted to attach? I am on vacation for the next week, but will look into it as soon as I can.

One question: Have you tried without presolver/simplifier, i.e., -s0 or setIntParam(SIMPLIFIER, SIMPLIFIER_OFF)?

sjunges commented 1 year ago

Oops, sorry I updated the file.

Setting -s0 does not change the error message.

Enjoy your holidays!

sjunges commented 1 year ago

Hi, I gently wanted to ping you on this. Are you able to reproduce the behavior?

ambros-gleixner commented 1 year ago

Yes, perfectly reproducable, but I have not yet found a fix, sorry.

sjunges commented 1 year ago

No worries! Please let me know if you need something from my side!

leoneifler commented 1 year ago

I'm not 100% sure what exactly is happening here, but after looking at the behaviour for a bit I just think it is numerically not really suited to solve this with iterative refinement. I might have a deeper dig if I find the time but SoPlex can get very good but always very slightly infeasible bases.

Just something I noticed: The debug.lp and the smt-file that you sent accidentally on the mailing list don't actually have the same coefficients, so the optimal solution might also be different.

leoneifler commented 1 year ago

Some good news here: We are developing an improvement to SoPlex exact solving mode that involves precision boosting. With that update, we can solve the lp that you provided. While it will still take some time until that feature arrives in the master branch, we will soon provide a mirror of that branch here on GitHub (I will post and update when here, as well)

leoneifler commented 6 months ago

I never closed this issue, but precision boosting feature is now available on master (and will soon be part of the SoPlex 7 release)