'invalid NLopt arguments' 在 JuMP 中有一个基本的例子。

'invalid NLopt arguments' in JuMP with a basic example.

Julia,我是 JuMP 的新手。我是 运行 一个非常基本的例子,但我得到了一个奇怪的错误。

using JuMP 
using NLopt

m1 = Model(solver=NLoptSolver(algorithm=:LD_MMA))

@variable(m1, x, start = 0.0) 
@variable(m1, y, start = 0.0)
@NLobjective(m1, Min, (1-x)^2 + 100(y-x^2)^2)
solve(m1)
println("x = ", getvalue(x), " y = ", getvalue(y))

#adding a (linear) constraint
@constraint(m1, x + y == 10) 
solve(m1) 
println("x = ", getvalue(x), " y = ", getvalue(y))

您使用的求解器不支持等式约束。将您的模型设置更改为例如:

m1 = Model(solver=NLoptSolver(algorithm=:LD_AUGLAG))

一切正常。

在这里https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/您回顾了 NLopt 中可用的算法。