AnyMath 文档

元动脉学。jl

该页面正在翻译中。

脧锚脧赂`元动脉学`是一个Julia包,实现*元动脉算法*用于全局优化,不需要优化的函数是可微的。

安装:OptimizationMetaheuristics。jl

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

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

全局优化器

无约束方程

A 元动脉学 使用以下方法之一调用单目标算法:

*进化中心算法: 非洲经委会() *差异进化: 德() 有5种不同的策略 ** DE(策略=:rand1) -默认策略 ** DE(策略=:rand2) ** DE(策略=:best1) ** DE(策略=:best2) ** DE(策略=:randToBest1) *粒子群优化: 公共事务主任() *人工蜂群: ABC() *引力搜索算法: CGSA() *模拟退火: 萨() *鲸鱼优化算法: WOA()

元动脉学 也执行https://jmejia8.github.io/Metaheuristics.jl/stable/examples/#Multiobjective-Optimization[脧锚脧赂`多目标优化`],但这还没有得到支持 优化设计.

每个优化器根据优化问题设置默认设置,但可以设置特定参数,如原始所示https://jmejia8.github.io/Metaheuristics.jl/stable/algorithms/[文件]

此外, 元动脉学 将由以下定义的通用设置https://jmejia8.github.io/Metaheuristics.jl/stable/api/#Metaheuristics.Options[脧锚脧赂`元动脉学。选项`]可以简单地作为特殊关键字参数传递给 解决方案 无需使用 元动脉学。选项 结构。

最后,有关优化问题的信息,如真正的最佳设置通过https://jmejia8.github.io/Metaheuristics.jl/stable/api/#Metaheuristics.Information[脧锚脧赂`元动脉学。资料`]并作为优化器结构的一部分传递给 解决方案 例如, solve(prob,ECA(information=Metaheuristics.信息(f_optimum=0.0)))

列出了当前可用的算法及其参数https://jmejia8.github.io/Metaheuristics.jl/stable/algorithms/[这里]。

注意事项

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

例子:

Rosenbrock函数可以使用进化中心算法进行优化 非洲经委会() 如下:

using Optimization, OptimizationMetaheuristics
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, ECA(), maxiters = 100000, maxtime = 1000.0)
retcode: Default
u: 2-element Vector{Float64}:
 1.0
 1.0

每默认值 元动脉学 忽略初始值 x0 设置在 优化问题. 为了 优化设计 要使用 x0 我们必须设置 use_initial=真:

sol = solve(prob, ECA(), use_initial = true, maxiters = 100000, maxtime = 1000.0)
retcode: Default
u: 2-element Vector{Float64}:
 1.0
 1.0

用约束方程

元动脉学。jl 支持这样的约束, 优化。jl 目前不中继这些约束。