plasmo-dev / Plasmo.jl

A Platform for Scalable Modeling and Optimization
Other
140 stars 19 forks source link

Does Plasmo.jl decompose solving process? #96

Open ArmanZarrin97 opened 9 months ago

ArmanZarrin97 commented 9 months ago

I have been lucky to meet @odow in a workshop and he introduced Plasmo.jl for my research. I can already see that it will enhance the modeling method and we could differentiate linking constraints from normal constraints. However, I didn't find any documentation regarding the solving process. does it use decomposition in the solving process? if so, which method has been used for this matter? ADMM? Benders cut?

I appreciate your response.

jalving commented 9 months ago

Hi @ArmanZarrin97! Thank you for your interest in the package. Plasmo.jl does not perform decomposition at the solver-level. The optigraph does not really touch the solution process, but it does provide methods you might use to help write your own decomposition solver (if that is something you wanted to do).

At one point there was an effort to build out some standard decomposition algorithms with PlasmoAlgorithms.jl, but it never quite used the optigraph in the intended way (you will also see the docs there refer to ModelGraph which was from before we renamed to OptiGraph). They do have some examples of Lagrange and Benders decomposition you might find useful.

There were also some prototype interfaces to DSPopt.jl and PipsNLP.jl, but we never got to something very stable or usable.

I am currently working on an overhaul of the core codebase (when time permits), but developing a standard decomposition interface in Julia has been something of interest for a few of the plasmo devs (see here). I envision someday having some proper decomposition solvers that you can just use through Plasmo.jl, but it is still likely a ways off.

ArmanZarrin97 commented 9 months ago

Hi @jalving. Thank you very much for your detailed answer. I hope eventually different decomposition methods can be applied to a Plasmo Optigraph. It would be a great contribution. Best of luck!