All Projects → jump-dev → Dualization.jl

jump-dev / Dualization.jl

Licence: other
Automatic dualization feature for MathOptInterface.jl

Programming Languages

julia
2034 projects

Dualization.jl

Documentation Build Status Social
Build Status Codecov branch Gitter

Repository with implementations of the automatic dualization feature for MathOptInterface.jl conic optimization problems

Dualization.jl has two main features.

dual_model = dualize(model)
  • The DualOptimizer that will pass the dual representation of the model to the solver of your choice.
model = Model(dual_optimizer(SOLVER.Optimizer))

Common use cases

Solve problems via dual representation

This is specially useful for conic optimization because some solvers can only represent specific formulation types. Dualizing the problem can leave a problem closer to the form expected by the solver without adding slack variables and constraints.

Solving an optimization problem via its dual representation can be useful because some conic solvers assume the model is in the standard form and others use the geometric form.

Standard form Geometric form
SDPT3 CDCS
SDPNAL SCS
CSDP ECOS
SDPA SeDuMi
Mosek MOI.FileFormats.SDPA

For more informations please read the documentation

Bilevel optimization

One classic method employed to solve bilevel optimization programs is to add the KKT conditions of the second level problem to the upper level problem. This package is used to obtain the dual feasibility constraint of the KKT conditions in BilevelJuMP.jl.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].