-
Notifications
You must be signed in to change notification settings - Fork 24
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 access to dual solution (for LP problems) #135
Conversation
- DualStatus, DualObjectiveValue (but only for last/best LP relax.) - ConstraintDual for SAF and SVF
I wouldn't put effort into this. Accessing the dual solutions in SCIP is super buggy. Even if you disable everything. If I remember correctly if you add bounds as constraints SCIP will anyway remove them. Then SCIP tries to rebuild the dual multipliers from the lp solver, but it doesn't realize if there are repeated constraints and so it will assign the same multiplier to different constraints, which is just wrong. |
I looked at PySCIPOpt/#136 and the related changes and thought that the problems are fixed now. In the Python code, there is a check for SCIP's version > 6.0, then use the So, most of the MOI tests about dual values actually pass. But those that fail, do so for different reasons. I think for one of them, the status changes: That is, with default settings, SCIP detects correctly that the problem is unbounded. But with presolve etc disabled, it says that it's optimal or something. I have some interest in this beyond SCIP.jl, because I'd hoped to use this also in LITIC, but I guess we have to continue building an auxiliary LP just for the dual solution... |
yeah Matthias tried to fix it somehow, but I think that if you add constraints like |
So, the proper solution is to extract the LP, and ask the LP solver directly? |
build it with the lp so that scip has nothing to do with it ;) |
@fserra may I ask if this is an issue with scip or their default liner solver soplex? (I apologize if I am asking a question that implied from the conversation already), thank you very much! |
The issue is with SCIP itself. If I understand it correctly, it can't even be fixed easily, because of the design based on generic constraints. |
I think that the problem is that SCIP does some presolving even if presolve is off |
This requires that a lot of SCIP settings be disabled, so we should also provide some utilities around that (setting emphasis etc.).