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

Change in highs api and status handling in both cases #682

Merged
merged 6 commits into from
Jan 12, 2024

Conversation

ggsdc
Copy link
Contributor

@ggsdc ggsdc commented Sep 22, 2023

The status while solving with HiGHS was not getting updated properly and It would give back a wrong solution code on time limit but with a solution found.

This PR should fix those issues.

Should close #661 and close #633

@CLAassistant
Copy link

CLAassistant commented Sep 22, 2023

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Collaborator

@pchtsp pchtsp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Guille. I like the mapping dictionary, because it's easy to read. Could it be kept while improving the precision that these changes bring?

@ggsdc
Copy link
Contributor Author

ggsdc commented Sep 25, 2023

Thanks Guille. I like the mapping dictionary, because it's easy to read. Could it be kept while improving the precision that these changes bring?

I've added a status mapping dict with two codes but I still have to leave an exception to the dictionary for the kTimeLimit and kIterationLimit statuses as are the only two where the actual status to give back can either be optimal + integer feasible or not solve + no solution.

@ggsdc
Copy link
Contributor Author

ggsdc commented Sep 25, 2023

The checks seem to be failing due to the issue reported in #683 and #684

@ggsdc ggsdc requested a review from pchtsp September 25, 2023 08:49
@pchtsp
Copy link
Collaborator

pchtsp commented Sep 30, 2023

can you please add a unit test that proves that there was something wrong and it was fixed? thanks

…without solution. Test available for HiGHS and CBC for now
@ggsdc
Copy link
Contributor Author

ggsdc commented Oct 2, 2023

can you please add a unit test that proves that there was something wrong and it was fixed? thanks

I think the new test should take into account the main issue that was solved that the solver as returning status 0 on time limit even if a solution was founded.

The new test should be able to be extended to other solvers to check correct status handling on time limit without a solution.

I will try to add (in a new PR soon) the ability for the checks, on the pulpTestCheck method, to also check for the solution status if given. This should allow to increase the coverage to these statuses as well.

@pchtsp
Copy link
Collaborator

pchtsp commented Oct 2, 2023

also, is this related to #624?

@ggsdc
Copy link
Contributor Author

ggsdc commented Oct 2, 2023

also, is this related to #624?

As far as I can see point 2 of the ones mentioned on the PR should be on par with the changes done here to HiGHS.
Once we modify the tests to take into account the solution status we may find that there are instances in which the solution status that PuLP is giving back may not be the correct one.

@pchtsp pchtsp merged commit b0856c2 into coin-or:master Jan 12, 2024
16 checks passed
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

Successfully merging this pull request may close these issues.

Inconsistent LpStatus with HiGHS New HiGHS (highspy) interface does not set lp status
3 participants