# Using Dualization

**URL:** https://discourse.julialang.org/t/using-dualization/47036
**Category:** Optimization (Mathematical)
**Tags:** package
**Created:** [September 21, 2020, 7:53pm UTC](https://discourse.julialang.org/t/using-dualization/47036 "2020-09-21T19:53:09Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![RaquelSantos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raquelsantos/32/3668_2.png) [@RaquelSantos](https://discourse.julialang.org/u/RaquelSantos)
#### Post date: [September 21, 2020, 7:53pm UTC](https://discourse.julialang.org/t/using-dualization/47036/1 "2020-09-21T19:53:09Z")

</div>

I would like to pass this model to Dual but I still haven’t got it. Could someone help me?  
Thank you!

```julia
using JuMP, Cbc, Dualization

FabricaBrinquedos = Model(dual_optimizer(Cbc.Optimizer))#When I try to compile using dual the model has an error
#FabricaBrinquedos = Model(with_optimizer(Cbc.Optimizer))

L = [12 ;60]
T = [0.25 0.1 0.1; 0.5 0.75 0.4]
D = [36; 22; 15]

@variable(FabricaBrinquedos, X[i=1:2] >= 0)
@objective(FabricaBrinquedos,Max,sum(L[i]*X[i] for i=1:2))

for j in 1:3
    @constraint(FabricaBrinquedos, sum(X[i]*T[i,j] for i=1:2) <= D[j])
end

print(FabricaBrinquedos)
optimize!(FabricaBrinquedos) #Status model
println("Valor objetivo: ", JuMP.objective_value(FabricaBrinquedos))

status = FabricaBrinquedos# solves the model
println("valor: ", JuMP.value(X[i]) #

dual_model = dualize(FabricaBrinquedos, Cbc.Optimizer)

```

---

<div class="post-metadata">

### Author: ![guilhermebodin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/guilhermebodin/32/6982_2.png) [@guilhermebodin](https://discourse.julialang.org/u/guilhermebodin)
#### Post date: [September 21, 2020, 8:40pm UTC](https://discourse.julialang.org/t/using-dualization/47036/2 "2020-09-21T20:40:54Z")

</div>

If you only want the dual you don`t need to use any solver

```julia
using JuMP, Dualization

FabricaBrinquedos = Model()

L = [12 ;60]
T = [0.25 0.1 0.1; 0.5 0.75 0.4]
D = [36; 22; 15]

@variable(FabricaBrinquedos, X[i=1:2] >= 0)
@objective(FabricaBrinquedos,Max, sum(L[i]*X[i] for i=1:2))
@constraint(FabricaBrinquedos, con[j in 1:3], sum(X[i]*T[i,j] for i=1:2) <= D[j])

print(FabricaBrinquedos)
dual_model = dualize(FabricaBrinquedos, dual_names = DualNames("", ""))
print(dual_model)

```

This code got me this

```julia
julia> print(dual_model)
Min -22 con[2]_1 - 15 con[3]_1 - 36 con[1]_1
Subject to
 X[1] : 0.25 con[1]_1 + 0.1 con[2]_1 + 0.1 con[3]_1 + _1 = -12.0
 X[2] : 0.5 con[1]_1 + 0.75 con[2]_1 + 0.4 con[3]_1 + _1 = -60.0
 _1 ≥ 0.0
 _1 ≥ 0.0
 con[1]_1 ≤ 0.0
 con[2]_1 ≤ 0.0
 con[3]_1 ≤ 0.0

```
