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

Fully Modularize InfiniteModel Transformation Schemes #105

Open
pulsipher opened this issue Mar 3, 2021 · 0 comments
Open

Fully Modularize InfiniteModel Transformation Schemes #105

pulsipher opened this issue Mar 3, 2021 · 0 comments
Assignees
Labels
breaking This will introduce breaking changes to the API enhancement New feature or request transformations Something to do with model transformations

Comments

@pulsipher
Copy link
Collaborator

We currently do allow different optimizer models to be used instead of TranscriptionModels which use a support scheme to solve the InfiniteModel. However, we should fully decouple the attributes associated with transcription from InfiniteModels (e.g., not have it hardcoded to always store parameter supports). Thus, InfiniteModels should be restructured to incorporate only the information needed to represent the infinite-dimensional optimization problem and information needed to reformulate/solve it should be stored in a backend. This will enhance the modularity of InfiniteOpt and greatly enhance the usability of alternative solution approaches.

Such a backend could take inspiration from the way MathOptInterface and JuMP interact. Reformulation/solution schemes like
TranscriptionOpt could ultimately be hosted in their own packages and help break up the size of InfiniteOpt. We also should consider the use case of being able to perform different reformulation schemes over the domains (e.g., transcribe over time and use PCE on the uncertainty).

This will denote a large undertaking that will fundamentally change the structure of InfiniteOpt and will likely parallel the restructuring effort that occurred between v0.1 and v0.2. We can take this on incrementally such that the reformulation schemes become increasingly modular and TranscriptionOpt and all its support-based attributes reside in a fully independent submodule. Once this is achieved, we can move TranscriptionOpt to an external package and finalize our modularized reformulation API.

The fulfillment of this restructuring will make InfiniteOpt a general framework for modeling infinite-dimensional optimization problems and enable the development of diverse solution methodologies.

@pulsipher pulsipher added enhancement New feature or request breaking This will introduce breaking changes to the API labels Mar 3, 2021
@pulsipher pulsipher added the transformations Something to do with model transformations label Jan 6, 2022
@pulsipher pulsipher added this to the v0.6 milestone Feb 9, 2022
This was referenced Feb 26, 2022
@pulsipher pulsipher changed the title Fully Modularize InfiniteModel Reformulation Schemes Fully Modularize InfiniteModel Transformation Schemes Mar 4, 2022
@pulsipher pulsipher self-assigned this Mar 18, 2022
@pulsipher pulsipher removed this from the v0.6 milestone Jul 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking This will introduce breaking changes to the API enhancement New feature or request transformations Something to do with model transformations
Projects
None yet
Development

No branches or pull requests

1 participant