https://github.com/jump-dev/dualization.jl
Automatic dualization feature for MathOptInterface.jl and JuMP
https://github.com/jump-dev/dualization.jl
Last synced: about 1 month ago
JSON representation
Automatic dualization feature for MathOptInterface.jl and JuMP
- Host: GitHub
- URL: https://github.com/jump-dev/dualization.jl
- Owner: jump-dev
- License: other
- Created: 2019-04-22T19:34:25.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2026-04-08T13:28:11.000Z (about 2 months ago)
- Last Synced: 2026-04-08T14:19:04.078Z (about 2 months ago)
- Language: Julia
- Homepage: https://jump.dev/Dualization.jl/
- Size: 1.68 MB
- Stars: 101
- Watchers: 8
- Forks: 7
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Dualization.jl
[](https://github.com/jump-dev/Dualization.jl/actions?query=workflow%3ACI)
[](https://codecov.io/gh/jump-dev/Dualization.jl)
[](https://zenodo.org/badge/latestdoi/182854997)
[Dualization.jl](https://github.com/jump-dev/Dualization.jl) is an extension
package for [MathOptInterface.jl](https://github.com/jump-dev/MathOptInterface.jl)
that formulates the dual of conic optimization problems.
Dualization.jl has two main features:
* The `Dualization.dualize` function that computes the dual formulation of either
a [MathOptInterface.jl](https://github.com/jump-dev/MathOptInterface.jl) or a
[JuMP](https://github.com/jump-dev/JuMP.jl) model.
* The `Dualization.dual_optimizer` function that creates a MathOptInterface-compatible
optimizer that solves the dual of the problem instead of the primal.
## License
`Dualization.jl` is licensed under the
[MIT License](https://github.com/jump-dev/Dualization.jl/blob/master/LICENSE.md).
## Installation
Install Dualization using `Pkg.add`:
```julia
import Pkg
Pkg.add("Dualization")
```
## Use with JuMP
To compute the dual formulation of a JuMP model, use `dualize`:
```julia
using JuMP, Dualization
model = Model()
# ... build model ...
dual_model = dualize(model)
```
To solve the dual formulation of a JuMP model, create a `dual_optimizer`:
```julia
using JuMP, Dualization, SCS
model = Model(dual_optimizer(SCS.Optimizer))
# ... build model ...
optimize!(model) # Solves the dual instead of the primal
```
## Documentation
The [documentation for Dualization.jl](https://jump.dev/Dualization.jl/stable/)
includes a detailed description of the dual reformulation, along with examples
and an API reference.