我發現了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中使用?
=>無
您應該問一個單獨的問題列出算法符號。 – user4235730 2014-11-22 23:49:59