Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution is claimed optimal but violates variable bound by 0.000914959 #203

Closed
tosttost opened this issue Sep 2, 2021 · 2 comments
Closed

Comments

@tosttost
Copy link

tosttost commented Sep 2, 2021

I assume that 0.000914959 is larger than the tolerances of Clp.
This only happens with current master (build with --no-third-party), Clp 1.17.6 works fine. So do SCIP/Soplex and Gurobi.

The faulty variable is C0001283 with lower bound 0 and value -0.00091495942.

Problem ClpDefau has 9631 rows, 19265 columns and 48146 elements
Model was imported from /tmp/l1.mps.gz in 0.02905 seconds
Presolve 9631 (0) rows, 19265 (0) columns and 48146 (0) elements
7183  Obj 11122011 Primal inf 32168.399 (3315) Dual inf 8.5341177e+10 (3318)
10848  Obj 24486445 Dual inf 2062793.5 (3)
Optimal - objective value 24301532
Optimal objective 24301532.35 - 11678 iterations time 2.062

Optimal - objective value        24301532
[...]
**    1283 C0001283  -0.00091495942                       2

so if you use command line Clp and -solu you get some warning by the '**' prefix. Of course that is not the case if Clp is used as a library.

l1.mps.gz

@jjhforrest
Copy link
Contributor

jjhforrest commented Sep 2, 2021 via email

@tosttost
Copy link
Author

tosttost commented Sep 2, 2021

Thanks, I can simply check the secondary status and react accordingly - I didn't know that there is a secondary status...
I have solved many problems using cbc/clp and this is the first time the unscaled model was infeasible so it seems to be a rather pathological case.
I can still reproduce this problem including the new message. From my side the problem is solved, numerical issues happen with all solvers that use floating point math.

Inside an empty directory (apart from coinbrew) I run

./coinbrew fetch Clp@master
./coinbrew build Clp@master
dist/bin/Clp l1.mps.gz -solve

platform is linux-gnu-x86_64, the compiler is gcc 11.1 and configure picks up several system-installed libraries (openblas, lapack, linear solver related stuff: metis, suitesparse, cholmod, ...) but afaik those affect mainly the barrier code.

@tosttost tosttost closed this as completed Sep 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants