AnyMath 文档

MultiStartOptimization。jl

该页面正在翻译中。

脧锚脧赂`多路优化`是一个实现全局优化multistart方法的Julia包,它在选择多个起点后进行局部优化。

多路优化 需要定义全局和局部方法。 全局multistart方法从本地方法开始的地方选择一组初始起点。

目前,只有一个全局方法(提克塔克)由 MultistartOptimization。提克塔克(n) 哪里 n 为初始Sobol点的个数。

安装:OptimizationMultistartOptimization。jl

要使用此包,请安装OptimizationMultistartOptimization包:

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

注意您还需要为您选择的本地方法加载相关子包,例如,如果您计划使用NLopt之一。jl的优化器,您可以安装和加载OptimizationNLopt,如 NLopt.jl的部分。

全局优化器

无约束方程

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

例子:

Rosenbrock函数可以使用以下方法进行优化 MultistartOptimization。蒂克塔克() 用100个初始点和本地方法 NLopt。LD_LBFGS() 如下:

using Optimization, OptimizationMultistartOptimization, OptimizationNLopt
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, Optimization.AutoForwardDiff())
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0])
sol = solve(prob, MultistartOptimization.TikTak(100), NLopt.LD_LBFGS())

您可以使用任何 优化设计 你喜欢的优化器。 的全局方法 多路优化 是一个位置参数,后跟局部方法。 例如,我们可以使用以下任一项以LBFGS为优化器执行multistartoptimization NLopt。jl奥普蒂姆。jl 实施如下。 此外,此界面允许您像通常那样访问和调整所有优化器设置:

using OptimizationOptimJL
f = OptimizationFunction(rosenbrock, Optimization.AutoForwardDiff())
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0, -1.0], ub = [1.0, 1.0])
sol = solve(prob, MultistartOptimization.TikTak(100), LBFGS(), maxiters = 5)