AnyMath 文档

GCMAES。jl

该页面正在翻译中。

脧锚脧赂`GCMAES`是一个实现*基于梯度的协方差矩阵适应进化策略*的Julia包,它可以利用梯度信息来加快优化过程。

安装:OptimizationGCMAES.jl

要使用此软件包,请安装OptimizationGCMAES软件包:

import Pkg;
Pkg.add("OptimizationGCMAES");

全局优化器

无约束方程

GCMAES算法由 GCMAESOpt() 并将初始搜索方差设置为关键字自变量 σ0 (默认: σ0 = 0.2)

中的方法https://github.com/AStupidBear/GCMAES.jl[脧锚脧赂`GCMAES`]正在对没有约束方程的问题进行全局优化。 然而,下限和上限约束由 磅/磅ub优化问题 是必需的。

例子:

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