在Julia中显示跳跃和NLopt优化例程的每次迭代结果

在Julia中显示跳跃和NLopt优化例程的每次迭代结果,julia,nlopt,julia-jump,Julia,Nlopt,Julia Jump,当我试图了解Julia如何实现不同的优化例程时,我发现了一个结合了跳跃和NLopt的示例 下面的示例(可以在这里找到:)给出了最终的解决方案,中间没有其他步骤 虽然这对于简单的问题来说是可以的,但对于一些问题,我们需要了解每个迭代是如何进行的(例如,它是否会在每个迭代中收敛?) 我的问题是:如何修改下面的代码以显示每次迭代的次数和错误(我们希望它越来越小) 我希望我说清楚(代码如下): 顺便说一下:在这里()我们可以找到所有可能的NLOpt算法。我想尝试一下Nelder Mead,而不是LD_M

当我试图了解Julia如何实现不同的优化例程时,我发现了一个结合了跳跃和NLopt的示例

下面的示例(可以在这里找到:)给出了最终的解决方案,中间没有其他步骤

虽然这对于简单的问题来说是可以的,但对于一些问题,我们需要了解每个迭代是如何进行的(例如,它是否会在每个迭代中收敛?)

我的问题是:如何修改下面的代码以显示每次迭代的次数和错误(我们希望它越来越小)

我希望我说清楚(代码如下):

顺便说一下:在这里()我们可以找到所有可能的NLOpt算法。我想尝试一下Nelder Mead,而不是
LD_MMA
,我输入了
NLOPT\u LN_NELDERMEAD
,但没有效果。有人知道所有这些算法的捷径吗。那可以用在朱莉娅身上吗


=>无

这似乎不是一个选项,但它可以作为一个选项添加到跳转中。您应该在上打开一个问题来询问它。

您可能应该为算法符号列表单独询问一个问题。
using JuMP
using NLopt

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

a1 = 2
b1 = 0
a2 = -1
b2 = 1

@variable(m, x1)
@variable(m, x2 >= 0)

@NLobjective(m, Min, sqrt(x2))
@NLconstraint(m, x2 >= (a1*x1+b1)^3)
@NLconstraint(m, x2 >= (a2*x1+b2)^3)

setvalue(x1, 1.234)
setvalue(x2, 5.678)

status = solve(m)

println("got ", getobjectiveValue(m), " at ", [getvalue(x1),getvalue(x2)])