Fix PyROS Iteration Logging for Edge Case Involving Discrete Sets #3170
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary/Motivation:
If PyROS is invoked with an instance of
DiscreteScenarioSet
passed through argumentuncertainty_set
, then due to currently implemented algorithmic efficiencies, all separation problems are skipped in the event the iteration number is equal to one less than the number of scenarios in the uncertainty set. In this case, the#CViol
entry in the final line of the iteration log should be0
, rather than0+
, which is what is currently printed.For example, if the
DiscreteScenarioSet
has only a single scenario, and the first PyROS iteration is successfully completed, then the iteration log will currently read:(where the
X
s are placeholders) rather than the desired output:Changes proposed in this PR:
DiscreteScenarioSet
edge case.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: