元动脉学。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