GCMAES。jl
|
该页面正在翻译中。 |
脧锚脧赂`GCMAES`是一个实现*基于梯度的协方差矩阵适应进化策略*的Julia包,它可以利用梯度信息来加快优化过程。
安装:OptimizationGCMAES.jl
要使用此软件包,请安装OptimizationGCMAES软件包:
import Pkg;
Pkg.add("OptimizationGCMAES");
例子:
Rosenbrock函数可以使用 GCMAESOpt() 没有利用梯度信息如下:
using Optimization, OptimizationGCMAES
rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2
x0 = zeros(2)
p = [1.0, 100.0]
f = OptimizationFunction(rosenbrock)
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0])
sol = solve(prob, GCMAESOpt())
retcode: Success
u: 2-element Vector{Float64}:
1.0000000318419293
1.0000000664558062
我们还可以利用优化问题的梯度信息来辅助优化,如下所示:
f = OptimizationFunction(rosenbrock, Optimization.AutoForwardDiff())
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0])
sol = solve(prob, GCMAESOpt())
retcode: Success
u: 2-element Vector{Float64}:
0.9999999957063013
0.9999999914982227