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

SIP Algorithms respects JuMP input and problem class #61

Open
5 tasks
mewilhel opened this issue Feb 4, 2021 · 0 comments
Open
5 tasks

SIP Algorithms respects JuMP input and problem class #61

mewilhel opened this issue Feb 4, 2021 · 0 comments
Milestone

Comments

@mewilhel
Copy link
Member

mewilhel commented Feb 4, 2021

Currently, the high level SIP algorithm requests a objective and constraint in the form f(x,p), g(x,p) were f and g are used defined functions. This limits the number of viable sub-problem optimizers substantially. Also, more specialized routines may outperform the global solver for specialized problem types. Roadmap to fixing this below:

  • Define a SIPModel(nx, nz, np) which attaches an extension to the the JuMP and potentially an SIPOptimizer to be defined. This function should return the model, decision variables, and uncertain variables.
  • Define an optimize hook that checks each constraint (and the objective) for the types of participating variables (decision vs. uncertain) labels each constraint accordingly then calls an SIP solution algorithm.
  • For Mitsos 2009, etc. the constraints containing only decision variables simply participate in the lower and upper bounding problem. The constraints containing only uncertain variables participate only in the lower level problems. The constraints containing a mix label as semi-infinite constraints and treated as such (some check and error for certain equality constraints may be necessary).
  • Add check for convexity based solely on constraint types and dispatch models to more specialized routines.
  • Incorporate parametric DCP techniques to diagnose convexity and dispatch problem to more specialized.

Longer term it'll be interesting to look into InfiniteOpt.jl support. However, most of the use cases for the nonconvex SIPs would require support for nonlinear terms (1-3 years out).

@mewilhel mewilhel added this to the v1.0.0 milestone Feb 4, 2021
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