Skip to content

Add PyROS Uncertain Parameter Reduction#3503

Merged
jsiirola merged 21 commits intoPyomo:mainfrom
shermanjasonaf:pyros-effective-uncertain-params
Mar 13, 2025
Merged

Add PyROS Uncertain Parameter Reduction#3503
jsiirola merged 21 commits intoPyomo:mainfrom
shermanjasonaf:pyros-effective-uncertain-params

Conversation

@shermanjasonaf
Copy link
Copy Markdown
Contributor

@shermanjasonaf shermanjasonaf commented Mar 5, 2025

Summary/Motivation:

This PR adds to PyROS the careful treatment of uncertain parameters that are constrained to a single value. Such uncertain parameters are now effectively treated as constants in all preprocessing steps and the separation problems. RO problems with uncertain parameters that are constrained to a single value can now be more expeditiously (and, in some cases, accurately) solved.

Changes proposed in this PR:

  • Add uncertain parameter reduction
  • Update testing

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.

@shermanjasonaf
Copy link
Copy Markdown
Contributor Author

@jas-yao @natalieisenberg

@natalieisenberg
Copy link
Copy Markdown
Contributor

Out of curiosity, what is an example of a case where an uncertain parameter from a singleton set was not handled correctly prior to this commit?

@shermanjasonaf
Copy link
Copy Markdown
Contributor Author

Out of curiosity, what is an example of a case where an uncertain parameter from a singleton set was not handled correctly prior to this commit?

For uncertainty set $Q \subset \mathbb{R}$, consider the RO problem

$$\min_{(x_1, x_2) \in [1, 2] \times [1, 2]} \{ x_1 + x_2 \mid q x_1 - x_2 = 0\,\forall\, q \in Q \}.$$

Prior to this PR, PyROS reports this problem as robust infeasible for any valid uncertainty set $Q$, as the preprocessor's coefficient matching step casts the equality constraint $qx_1 - x_2 = 0$ to the constraints $x_1 = 0$ and $-x_2 = 0$, which render the initial master problem infeasible. However, when $Q$ is the singleton set $\{ 1 \}$, for example, the problem is robust feasible, since in this case, the solution $(x_1, x_2) = (1, 1)$ is robust feasible.

@blnicho blnicho requested a review from jsiirola March 11, 2025 19:22
Copy link
Copy Markdown
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.

This ended up being significantly more complex than I expected, but the implementation looks good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants