2014-11-22 47 views
0

我發現了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

回答