Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Fix PyROS Treatment of Fixed Model Variables and Initialization of Auxiliary Uncertain Parameters #3461

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

shermanjasonaf
Copy link
Contributor

@shermanjasonaf shermanjasonaf commented Jan 23, 2025

Summary/Motivation:

Fix typos introduced in the PyROS source code (contrib.pyros) in #3341, ensuring that:

  • PyROS treats as (fixed) decision variables (rather than constants) the fixed variables that participate in the active Objective/Constraint components of a model. These variables are, as originally intended in Overhaul PyROS Preprocessor Subroutine and Subproblem Objects #3341, later considered effectively first-stage. The bounds on fixed variables are enforced; hence, second-stage inequality constraints derived from bounds that depend on the uncertain parameters are now subject to separation, rather than overlooked
  • The variables representing the auxiliary uncertain parameters (e.g., of a CardinalitySet or FactorModelSet instance) in a PyROS separation subproblem are initialized according to the values of the "main" uncertain parameters

Changes proposed in this PR:

  • Ensure PyROS considers fixed variables to be within the input model scope
  • Ensure variables representing the auxiliary uncertain parameters are initialized appropriately in the separation problems
  • Unit test contrib.pyros.separation_problem_methods.initialize_separation
  • Add new tests for PyROS solver argument validation methods
  • Add test case in which PyROS solver termination outcome is sensitive to treatment of fixed variables

TODO (after #3439/#3441 merged?)

  • Update version number, changelog

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:

  1. I agree my contributions are submitted under the BSD license.
  2. I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

Copy link
Member

@jsiirola jsiirola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants