-
Notifications
You must be signed in to change notification settings - Fork 517
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
Overhaul PyROS Preprocessor Subroutine and Subproblem Objects #3341
base: main
Are you sure you want to change the base?
Overhaul PyROS Preprocessor Subroutine and Subproblem Objects #3341
Conversation
…hermanjasonaf/pyomo into new-pyros-preprocessor-and-subproblems
…hermanjasonaf/pyomo into new-pyros-preprocessor-and-subproblems
(baron_available and baron_license_is_valid and baron_version == (24, 5, 8, 0)), | ||
"BARON 24.5.8 not available and licensed.", |
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.
Is this test specific to BARON 24.5.8 or does it need at least 24.5.8? I worry that while that version may not be available in any of the CI systems (I know GHA uses the current release - currently 24.10.10), and therefore will never be run. Would baron_version >= (24, 5, 8)
be acceptable?
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.
On my machine, this test:
- Times out with BARON > 24.5.8
- Passes with SCIP 8.0.3 and 9.1.0 (but, based on prior discussion, appeared to trigger a time out with the SCIP distribution used in the most recent Jenkins tests)
I am considering replacing the nonlinear equality constraint of the model used in this test with a simpler nonlinear equality constraint, as the new preprocessor (correctly) derives from the current equality two nonconvex inequalities that appear to make the current problem difficult to solve. Thoughts?
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.
Yeah - if we can test the same behavior with a simpler problem that is always good.
Fixes #2964.
Summary/Motivation:
Driven by recent algorithmic developments of the PyROS preprocessor, this PR implements sweeping changes to the PyROS preprocessor subroutine and subproblem formulations/object structures.
Changes proposed in this PR:
Update PyROS as follows:
UncertaintySet
class and pre-implemented subclasses to facilitate changes to the subproblemsUncertaintySet.set_as_constraint
to make auxiliary uncertain parameters easier to trackCardinalitySet
andFactorModelSet
classesFactorModelSet
instances to those for whichpsi_mat
is full column rankIntersectionSet
core.expr.compare.assertExpressionsEqual
) for more precise model testingpoint_in_set
,set_as_constraint
TODO
ParameterizedQuadraticRepn
and corresponding expression walker #3324 merged) useParameterizedQuadraticRepnVisitor
in lieu ofgenerate_standard_repn
Legal Acknowledgement
By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution: