Skip to content

Document and Test Dual Sign Convention#3528

Merged
blnicho merged 12 commits intoPyomo:mainfrom
michaelbynum:solvers2
May 6, 2025
Merged

Document and Test Dual Sign Convention#3528
blnicho merged 12 commits intoPyomo:mainfrom
michaelbynum:solvers2

Conversation

@michaelbynum
Copy link
Copy Markdown
Contributor

Fixes #3519.

Summary/Motivation:

This PR adds documentation and tests for the dual sign convention adopted in the new solver interfaces.

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.

@bernalde
Copy link
Copy Markdown
Contributor

I believe this affects MindtPy and GDPOpt as in the implementation of outer-approximation algorithms; we are making assumptions on the directions or the multipliers
@ZedongPeng @emma58

@michaelbynum
Copy link
Copy Markdown
Contributor Author

Are MindtPy and/or GDPOpt using the new solver interfaces in contrib/solver/?

@bernalde
Copy link
Copy Markdown
Contributor

Are MindtPy and/or GDPOpt using the new solver interfaces in contrib/solver/?

Not that I know of, but it might be worth revisiting this

@emma58
Copy link
Copy Markdown
Contributor

emma58 commented Mar 21, 2025

Are MindtPy and/or GDPOpt using the new solver interfaces in contrib/solver/?

Not that I know of, but it might be worth revisiting this

There's nothing to stop someone from using them as subsolvers--we have those as config arguments. And we aren't testing with them currently, so I think it is possible we could be running afoul of the dual sign convention? But of course, it was before too since we let anyone stick any solver in there...

@michaelbynum
Copy link
Copy Markdown
Contributor Author

For what it is worth, I did not have to change any code for this PR. I just added documentation and tests.

@michaelbynum
Copy link
Copy Markdown
Contributor Author

I still need to address maximization problems as mentioned in #3519. I'll convert this to a draft for now.

@michaelbynum michaelbynum marked this pull request as draft March 24, 2025 14:01
Copy link
Copy Markdown
Contributor

@Robbybp Robbybp left a comment

Choose a reason for hiding this comment

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

Can you document the following:

  • What happens for maximization problems?
  • How does this formulation map onto "range inequalities"? (I believe the dual's sign implies one side and the other side is implicitly zero.)

@michaelbynum
Copy link
Copy Markdown
Contributor Author

Great suggestions. Will do.

@michaelbynum michaelbynum marked this pull request as ready for review April 8, 2025 13:12
@michaelbynum michaelbynum marked this pull request as draft April 8, 2025 13:18
@michaelbynum michaelbynum marked this pull request as ready for review April 8, 2025 14:18
@michaelbynum
Copy link
Copy Markdown
Contributor Author

Okay, this should be ready.

@Robbybp - I added documentation and tests for maximization problems and range constraints.

@mrmundt mrmundt requested a review from Robbybp May 6, 2025 18:27
@blnicho blnicho merged commit d82b87f into Pyomo:main May 6, 2025
35 checks passed
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.

PEP: Dual Sign Convention

7 participants