在 JuMP 中获取不正确的值
Getting incorrect values in 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))
最终代码为:
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))
以下代码 运行 正确。但是,当我要求结果时,其中一个变量 (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))
最终代码为:
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))