-
Notifications
You must be signed in to change notification settings - Fork 20
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
Presolve causes infeasibility error? #98
Comments
Thanks for reporting the issue. This is most likely a bug in the presolve. Let me look into it. |
OK, here is what happens:
The good news is that it should not be too hard to fix 😅 Note that if you multiply all the rows by |
Thanks for looking into this issue! I already assumed that it is at least partly caused by floating point issues. So if I understand you correctly, there's nothing that should be changed in our code but this will be addressed in the presolve algorithm at some point? |
That is correct. I "just" 😅 need to take an hour to add numerical tolerances into the presolve code. |
@devmotion I've (finally!) added primal & dual tolerances in Presolve, which fixed the issue you were encountering. |
Great, thanks a lot! |
When I tried to solve a trivial OT problem (10 sources with equal mass and a single target) with
OptimalTransport.emd2
and Tulip, an error was thrown since the termination status wasINFEASIBLE
although the trivial solution is feasible and optimal. The following MWE seems to indicate that it is a problem with presolve: An optimal solution is found if presolve is disabled and otherwise the termination status isINFEASIBLE
.What is the recommended way for dealing with this issue? Should one disable presolve or are there some tolerances that should be adjusted? It seems a bit unfortunate if the default settings in OptimalTransport cause errors in these trivial but possibly numerically challenging cases, so I would be happy about any suggestions.
The text was updated successfully, but these errors were encountered: