Dualization.jl is an extension package for MathOptInterface.jl that formulates the dual of conic optimization problems.
Dualization.jl has two main features:
Dualization.dualizefunction that computes the dual formulation of either a MathOptInterface.jl or a JuMP model.
Dualization.dual_optimizerfunction that creates a MathOptInterface-compatible optimizer that solves the dual of the problem instead of the primal.
Dualization.jl is licensed under the MIT License.
Install Dualization using
import Pkg Pkg.add("Dualization")
Use with JuMP
To compute the dual formulation of a JuMP model, use
using JuMP, Dualization model = Model() # ... build model ... dual_model = dualize(model)
To solve the dual formulation of a JuMP model, create a
using JuMP, Dualization, SCS model = Model(dual_optimizer(SCS.Optimizer)) # ... build model ... optimize!(model) # Solves the dual instead of the primal
The documentation for Dualization.jl includes a detailed description of the dual reformulation, along with examples and an API reference.