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

问题描述:

我发现了JuMP和NLopt例子的组合,当我试图看到Julia实现不同的优化例程时。显示Julia的JuMP和NLopt优化例程的每个迭代结果

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

虽然这可能是简单的问题,OK,对于一些我们需要看到每个迭代如何去

我的问题是(例如它在每次迭代收敛?):如何将下面的代码可以被如此修改以显示每次迭代的次数和错误(我们希望它变得越来越小)?

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

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中使用?

=>无

+3

您应该问一个单独的问题列出算法符号。 – user4235730 2014-11-22 23:49:59

好像这不是一个possible option for NLopt,但它可以可以加入到跳作为一个选项。你应该在JuMP issues page上打开一个问题来询问它。