[Julia] Gurobi sample 1 with JuMP 0.19

최근 JuMP 0.19 버전에서 Model(with_optimizer(…))에서 향 후 with_optimizer 가 deprecated 될 예정이어서 새로운 사용법이 필요 하여

아래에 예제를 게제 함 (참고 : http://www.juliaopt.org/JuMP.jl/dev/installation/ )

using JuMP, Gurobi
# -------------------
# 기존
# -------------------
# m = Model(with_optimizer(Gurobi.Optimizer, Presolve=0, OutputFlag=0))
# -------------------
# 신규
# -------------------
m = Model(Gurobi.Optimizer)
set_parameters(m, "Presolve" => 0, "OutputFlag" => 0)

@variable(m, 0 <= x1 <= 10)
@variable(m, x2 >= 0)
@variable(m, x3 >= 0)

@objective(m, Max, x1 + 2x2 + 5x3)

@constraint(m, constraint1, -x1 + x2 + 3x3 <= -5)
@constraint(m, constraint2, x1 + 3x2 - 7x3 <= 10)

print(m)

JuMP.optimize!(m)

println("Optimal Solutions:")
println("x1 = ",JuMP.value(x1))
println("x2 = ",JuMP.value(x2))
println("x3 = ",JuMP.value(x3))

println("Dual Variables:")
println("dual1 = ", JuMP.shadow_price(constraint1))
println("dual2 = ", JuMP.shadow_price(constraint2))

결과

Academic license - for non-commercial use only
Max x1 + 2 x2 + 5 x3
Subject to
 constraint1 : -x1 + x2 + 3 x3 ≤ -5.0
 constraint2 : x1 + 3 x2 - 7 x3 ≤ 10.0
 x1 ≥ 0.0
 x2 ≥ 0.0
 x3 ≥ 0.0
 x1 ≤ 10.0
Academic license - for non-commercial use only
Optimal Solutions:
x1 = 10.0
x2 = 2.1875
x3 = 0.9375
Dual Variables:
dual1 = 1.8124999999999998
dual2 = 0.06249999999999989

참조 : http://www.juliaopt.org/JuMP.jl/dev/installation/

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다