-
Notifications
You must be signed in to change notification settings - Fork 43
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
add test for cvrp demo #358
Conversation
Codecov Report
@@ Coverage Diff @@
## master #358 +/- ##
==========================================
+ Coverage 75.87% 75.89% +0.02%
==========================================
Files 51 51
Lines 3751 3755 +4
==========================================
+ Hits 2846 2850 +4
Misses 905 905
Continue to review full report at Codecov.
|
Actually, the demo is not correct, the lower bound becomes larger after cut separation than the optimal solution (784.0) |
At the root node or deeper in the branching tree ? |
Sorry, I messed up 748 and 784. The lower bound seems to be ok. However, it would be good to test a smaller instance and solve it to optimality. The root lower bound depends on the solver used. Also, if I put 785 as initial upper bound, optimal solution 784 is missed. |
I made a smaller instances with 15 clients : Here is the optimal solution for it:
For this smaller instance, the optimal solution is also missed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the message above
It looks like we don't check if the solution returned by the LP restricted master is integer. |
Coluna finds the optimal solution but we never test if the RM solution projected on original variables is integer.
|
I did not see any change to check the projected solution for integrality |
@rrsadykov It was a trash commit. Should we check integrality of the projected solution at each iteration ? |
yes, in Bapcod we check on every iteration. |
test/full_instances_tests.jl
Outdated
@@ -178,7 +178,7 @@ function generalized_assignment_tests() | |||
problem, x, dec = CLD.GeneralizedAssignment.model(data, coluna) | |||
|
|||
JuMP.optimize!(problem) | |||
@test MOI.get(problem.moi_backend.optimizer, MOI.TerminationStatus()) == MOI.INFEASIBLE | |||
@test_broken MOI.get(problem.moi_backend.optimizer, MOI.TerminationStatus()) == MOI.INFEASIBLE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Subproblem infeasibility is broken in column generation. I'll fix it in another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was broken before the merge of cut callback into master
No description provided.