我有一個我想與NLopt解決以下幾個簡單的問題:NLopt錯誤的茱莉亞Ipopt替代
using JuMP
using NLopt
"""
min_x = x1 * x4* (x1 + x2 + x3) + x3
s.t.
x1 * x2 * x3 * x4 >= 25
x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40
1 <= x1,x2,x3,x4 <= 5
starting values: vec(x) = (x1 = 1, x2 = 5, x3 = 5, x4 = 1)
"""
tic()
m = Model(solver=NLoptSolver(algorithm=:LD_MMA))
@defVar(m, 1 <= x1 <= 5)
@defVar(m, 1 <= x2 <= 5)
@defVar(m, 1 <= x3 <= 5)
@defVar(m, 1 <= x4 <= 5)
@setNLObjective(m, Min, x1 * x4 * (x1 + x2 + x3) + x3)
@addNLConstraint(m, x1^2 + x2^2 + x3^2 + x4^2 == 40)
@addNLConstraint(m, x1 * x2 * x3 * x4 >= 25)
setValue(x1, 1)
setValue(x2, 5)
setValue(x3, 5)
setValue(x4, 1)
status = solve(m)
println("got ", getObjectiveValue(m), " at ", [getValue(x1),getValue(x2), getValue(x3), getValue(x4)])
toc()
但是我得到的參數錯誤。有沒有什麼辦法可以使這個工作與NLopt,如果不是如何改變這個代碼,以便與其他免費優化器,可以安裝在朱莉婭(也許Ipopt,但不Gurobi)使用它?
能您發佈錯誤消息? – IainDunning 2014-11-23 22:21:07
錯誤:在等式約束中在array.jl:458處推送chk at(NLopt的路徑)中的ArgumentError(「無效的NLopt參數」)! at(NLopt path)while loading(my_file) – Echetlaeus 2014-11-23 22:35:12