Skip to content
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

Implementation of POEM 096: Minimization of Constraint Violation #3161

Open
robfalck opened this issue Mar 25, 2024 · 3 comments
Open

Implementation of POEM 096: Minimization of Constraint Violation #3161

robfalck opened this issue Mar 25, 2024 · 3 comments
Assignees

Comments

@robfalck
Copy link
Contributor

Desired capability or behavior.

POEM 096 proposes the ability to minimize the constraint violation from some starting point of driver. This would allow users to find a feasible starting point given the current design variable values.

SNOPT supports the option to find a feasible starting point, but this capability isn't available in other optimizers.
Adding it to OpenMDAO would be a valuable addition.

The POEM proposes a capability, but not an implementation, and that needs to be developed.

In this case, we're asking the optimizer to find the feasible starting point, so it seems like it should be associated with the driver.

Proposal for initial implementation:

Calling prob.run_driver(find_feasible=True) will replace the user-defined objective with a new objective that is the norm of the constraint violations.

This new objective is not the output of an OpenMDAO component itself, so we will have to implement the reverse mode derivatives more manually.

Associated POEM

096

@robfalck robfalck assigned robfalck and unassigned robfalck Mar 25, 2024
@jsrogan
Copy link
Collaborator

jsrogan commented Apr 8, 2024

is it possible to 'claim' (ie., be assigned) this issue? A partner and I are working on attempting to make a contribution to an open source project for one of our classes and want to take a stab at this problem.

@robfalck
Copy link
Contributor Author

By all means, we'd be happy to accept this if you'd like to undertake it. Post an issue on github and then assign it to yourself. (If you find yourself unable to self-assign it let me know and I'll work it out).

@jsrogan
Copy link
Collaborator

jsrogan commented Apr 14, 2024

Thank you! We recognize that this problem is complex and our solution may not be accepted, but we thought it would be interesting to make an attempt at this problem because of it's complexities

@robfalck robfalck assigned robfalck, jsrogan and coleyoung5 and unassigned robfalck Apr 17, 2024
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

No branches or pull requests

3 participants