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

Interface to DSP #10

Open
kibaekkim opened this issue Jun 12, 2020 · 4 comments
Open

Interface to DSP #10

kibaekkim opened this issue Jun 12, 2020 · 4 comments

Comments

@kibaekkim
Copy link

kibaekkim commented Jun 12, 2020

I would like to start threads about implementing the interface to DSP with Plasmo.jl. I have a working interface based on StructJuMP.jl: https://github.com/kibaekkim/DSP.jl

Where do we need to start?

@jalving
Copy link
Member

jalving commented Jun 12, 2020

I think we can put together the interface in much the same way you did for StructJuMP. We could probably add another file to DSP.jl and define the same functions for Plasmo.jl like you did for the StructJump model. I would be happy to fork DSP.jl and take a stab at it.

One caveat is that we have to do a littlle more work to permute an OptiGraph in Plasmo.jl into the DSP model structure you're expecting. For instance, we would have to check that we have a subgraph structure that works for parent-child relationships. Or, we might have linkconstraints that couple OptiNodes in a DW structure.

A good start might be to match OptiGraph traits (linkconstraints, subgraphs) to specific DSP structures. I see you have both a stochastic and a structured problem environment. Do those correspond to different decompositions?

@kibaekkim
Copy link
Author

Thanks @jalving. I guess I will learn more about the caveat part over time.

Regardless of the type of problems (i.e., stochastic vs. non-stochastic), they use the same set of algorithms.

I just sent you an invite to DSP.jl. Please feel free to create a branch there, if you want.

@jalving
Copy link
Member

jalving commented Feb 28, 2021

Hey @kibaekkim, is https://github.com/kibaekkim/DSPopt.jl the latest DSP interface? I can finally start working on a Plasmo.jl integration. I think we can just add another file to DSPopt.jl that translates an optigraph to the DSP environment object.

It looks like src/Model.jl and src/JuMP_Wrapper.jl are where you translate the StructJuMP model to a DSP model. It should be straightforward for me to write something similar.

@kibaekkim
Copy link
Author

Glad to hear that. Yes, the repo is up-to-date. In fact, active development is going on for DSP and DSPopt.jl#master in order to implement QCQP solvers. It would be great if you can start synching Plasmo.jl with DSPopt.jl. Then, hopefully in future we can just work on Plasmo.jl only for DSP.

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

2 participants