首页 > 解决方案 > 在 JuMP 中获取不正确的值

问题描述

以下代码运行正常。但是,当我调用结果时,其中一个变量(utilizado)返回了不正确的值,只有零。我知道我做错了什么,但我不知道在哪里。

using JuMP, Clp
m = Model(solver = ClpSolver())
@variable(m, utilizado[i=1:3] >= 0)
@variable(m, resultado[j=1:2] >= 0)
custo = [90, 120]
disponivel = [8, 6, 5]
matriz= [0.20 0.30;
     0.20 0.25;
     0.15 0.10]
@objective(m, Min, dot(custo, resultado))
@constraint(m,  [i=1:3], sum(matriz[i,j] * resultado[j] for j=1:2) >= 
disponivel[i])
print(m)

status = solve(m)
println("Objective value: ", getobjectivevalue(m))
println("Resultado: ", getvalue(resultado))
println("Resultado: ", getvalue(utilizado))   

标签: juliagetvaluejulia-jump

解决方案


最终代码是:

using JuMP, Clp
m = Model(solver = ClpSolver())

custo = [90, 120]
disponivel = [8, 6, 5]
matriz= [0.20 0.30;
     0.20 0.25;
     0.15 0.10]

@variable(m, utilizado[i=1:3] >= disponivel[i])
@variable(m, resultado[j=1:2] >= 0)

@objective(m, Min, dot(custo, resultado))
@constraint(m,  [i=1:3], sum(matriz[i,j] * resultado[j] for j=1:2) == utilizado[i])
print(m)
status = solve(m)
println("Objective value: ", getobjectivevalue(m))
println("Resultado: ", getvalue(resultado))
println("Utilizado: ", getvalue(utilizado))

推荐阅读