Skip to content

Learning the dual and automatic DLL completion #31

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

Open
klamike opened this issue Mar 25, 2025 · 0 comments
Open

Learning the dual and automatic DLL completion #31

klamike opened this issue Mar 25, 2025 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@klamike
Copy link
Collaborator

klamike commented Mar 25, 2025

We should be able to automate DLL for conic problems by using the projections in https://github.com/matbesancon/MathOptSetDistances.jl/blob/master/src/projections.jl. Hopefully we can differentiate through those functions 🤞

There may be some complexity with detecting the variable decomposition (which variables do we predict then project (y) vs solve for (z)) in general. Probably a good default is to use z for variable-in-set constraints and y for the rest.

Also relevant:
https://github.com/jump-dev/Dualization.jl -- formulate the dual MOI/JuMP model
https://github.com/matbesancon/MathOptSetDistances.jl -- project predicted y onto its cone
https://github.com/jump-dev/ParametricOptInterface.jl -- formulate z completion problem with y as parameters
https://github.com/jump-dev/DiffOpt.jl -- differentiate through z completion (compute dobj/dy jump-dev/DiffOpt.jl#282)

Would also be super cool to detect special cases (e.g. examples 1, 2, 3 in DLL) to handle those efficiently.

@klamike klamike self-assigned this Mar 25, 2025
@klamike klamike changed the title Automatic dualization and DLL completion Learning the dual and automatic DLL completion Mar 25, 2025
@klamike klamike added the enhancement New feature or request label Mar 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant