-
Notifications
You must be signed in to change notification settings - Fork 40
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
Working MIGP #1527
Working MIGP #1527
Conversation
I believe you are adding a new binary var for each possible integer solution to do this, so the slowdown is is somewhat expected @bqpd. There are two possible formulations here. Rn you do this (at least from what I can discern). The following is likely faster, since it introduces hierarchy into binary vars. (Just so you know, I rushed this so something might be slightly off about the formulation.) |
oh indeed, that's a much better way to do it! |
unfortunately that didn't make it any faster on a large problem with a single discrete variable with several choices (which takes ~15-20 times longer than without the binary variable, which is obvs less efficient than just solving each case separately...), but it does reduce the number of auxiliary binary variables by 1. |
@bqpd different mixed-integer solvers will use different branching strategies depending on the integer formulation. So even if MOSEK isn't running much faster, it's possible that other solvers will (should any be added in the future). I specifically suspect that simpler (open-source) mixed-integer solvers will do better with the new formulation. |
@bqpd three questions.
(edited by @bqpd to add numbers) |
in re: @1ozturkbe
|
test models please |
test models please |
test models please |
retest this please |
test models please |
Closes #414
potential extensions:
@rileyjmurray @erling-d-andersen, this implements a binary variable technique for discretizing logspace variabes, but it's a bit...slow. Any recommendations? Is this just because solving integer problems has a constant-speed slowdown? (if there's only one "choice" there's no slowdown, but I presume that's the presolver optimizing it away...)