首席。jl
|
该页面正在翻译中。 |
PRIMA.jl是fortran库的julia包装器https://github.com/libprima/prima[prima]实现了鲍威尔的导数自由优化方法。
本地优化器
Prima库的五种鲍威尔算法由PRIMA提供。jl套件:
UOBYQA:(Unconstrained Optimization BY Quadratic Approximations)为无约束优化,即Ω=∞。
纽乌阿:也是为了无约束优化。 根据M.J.D.鲍威尔的说法,newuoa优于uobyqa。
|
xl≤x≤xu}。 |
林科亚:(LINearly Constrained Optimization)是针对具有约束约束、线性相等约束和线性不等式约束的约束优化问题。
[医]柯比拉:(Constrained Optimization BY Linear Approximations)是针对具有约束约束、非线性约束、线性相等约束和线性不等式约束的一般约束问题。
using OptimizationBase, OptimizationPRIMA
rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2
x0 = zeros(2)
_p = [1.0, 100.0]
prob = OptimizationProblem(rosenbrock, x0, _p)
sol = solve(prob, UOBYQA(), maxiters = 1000)
sol = solve(prob, NEWUOA(), maxiters = 1000)
sol = solve(prob, BOBYQA(), maxiters = 1000)
sol = solve(prob, LINCOA(), maxiters = 1000)
function con2_c(res, x, p)
res .= [x[1] + x[2], x[2] * sin(x[1]) - x[1]]
end
optprob = OptimizationFunction(rosenbrock, AutoForwardDiff(), cons = con2_c)
prob = OptimizationProblem(optprob, x0, _p, lcons = [1, -100], ucons = [1, 100])
sol = solve(prob, COBYLA(), maxiters = 1000)
retcode: Success
u: 2-element Vector{Float64}:
0.8
0.6399999996879134