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

Feature request: Add constraint priority with automatic resolution into soft-constraints #151

Open
enzbus opened this issue Apr 23, 2024 · 1 comment
Assignees

Comments

@enzbus
Copy link
Collaborator

enzbus commented Apr 23, 2024

Rationale
Only primal infeasibility benefits from managing the problem formulation. Dual infeasibility (unboundedness) is typically due to bugs in the user syntax. Primal infeasibility instead should have an automatic exception handling procedure.

Idea is simple; use the order of constraints provided by the user as priority, and add an option to SPO/MPO to automatically try to turn each constraint into soft-constraint, starting from the lowest priority one, in case of infeasibility. Option could be the soft-constraint multiplier, by default plus infinity (meaning don't use this procedure).

All pieces should be there, I think the way I factored the compile_to_cvxpy code separate from initialize_estimator should make this really easy and self-contained, as well as how I designed the constraint base classes. It needs a deep look into all pieces to make sure there is no implicit assumption that the method execution order is the default one, but it probably is all fine.

@enzbus enzbus self-assigned this Apr 23, 2024
@enzbus
Copy link
Collaborator Author

enzbus commented Apr 23, 2024

Edit: one complication actually. In MPO, constraints are duplicated for all forward planning steps (in the simplest case), or specified differently for each step. It's not clear how to make constraint priority easily specified in the latter case. The latter case should probably not be supported by this procedure. (I only included it because it was the original 2016 formulation.) Better bookkeeping should be defined in the MPO class for mapping the user syntax into compiled program.

@enzbus enzbus changed the title Add constraint priority with automatic resolution into soft-constraints Feature request: Add constraint priority with automatic resolution into soft-constraints Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant