显示Julia中JuMP和NLopt优化例程的每个迭代结果

时间:2014-11-22 22:06:28

标签: julia nlopt julia-jump

我找到了JuMP和NLopt示例的组合,而我正试图看看Julia实现不同的优化例程。

以下示例(可在此处找到:https://github.com/JuliaOpt/NLopt.jl)为您提供最终解决方案,而无需其他步骤。

虽然这对于简单问题可能没问题,但对于一些人来说,我们需要看看每次迭代的进展情况(例如它是否与每次迭代收敛?)

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

我希望自己明确(代码如下):

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)])

顺便说一句:在这里(http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms#Nelder-Mead_Simplex)我们可以找到NLOpt的所有可能算法。我想尝试使用Nelder-Mead而不是LD_MMA我输入了NLOPT_LN_NELDERMEAD,但无济于事。有谁知道所有这些算法的捷径。可以在Julia中使用吗?

=>没有

1 个答案:

答案 0 :(得分:2)

似乎这不是possible option for NLopt,但可能会将其作为选项添加到JuMP中。您应该在JuMP issues page上打开一个问题来询问它。