-
-
Notifications
You must be signed in to change notification settings - Fork 393
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
Sensitivity part II #2251
Sensitivity part II #2251
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2251 +/- ##
==========================================
+ Coverage 91.61% 91.86% +0.24%
==========================================
Files 42 43 +1
Lines 4451 4596 +145
==========================================
+ Hits 4078 4222 +144
- Misses 373 374 +1
Continue to review full report at Codecov.
|
matrix building is really similar to what is done in: Matrix building (from MOI) will also be used in the differentiation GSOC. I think the matrix builder should live in MOIU. Starting with LP, for this use, then do QP (for GSOC) and Conic (also for GSOC, but potentially used in solvers). This could simplify some first version solver wrappers. |
👍 to adding matrix-type support to MOI as a submodule. |
I have seen that Xpress allows you to query rhs and obj sensitivities. |
Yeah some solvers do allow you to query the sensitivity. But I'm not sure how that plays with bridges, etc. |
Indeed, that is a bit of a pain |
Anyone interested in reviewing this? If not, I'll merge in a few days. It's a significant improvement over what we have currently, which is unusable for anything but toy models. |
This functionality is intended as a replacement for the previous lp_xxx_perturbation_range code. The main criticism of the previous implementation was that it created the basis matrix every function call, rather than doing it once and caching the result. Instead of adding complexity by having a field cache the basis, this PR computes the perturbation for every variable and constraint up-front.
Bump. Anyone still want to review this/objections to merging? |
Closes #2244
This PR is a rewrite of the sensitivity summary to avoid a lot of redundant computations and allocations.
I've tried to comment my understanding of the code, and compared against the solutions reported by Gurobi and Excel.
Points of contention are:
Interval
constraint? I have left unimplemented.+/-0.0
, where as Excel reports+/-Inf
. The current behavior is+/-Inf
.I'm not sure I fully understand all of the edge cases, so it will be interesting to see what the coverage is.
cc @geoffleyland: Want to stress-test this?