BlackBoxOptim.jl
|
该页面正在翻译中。 |
脧锚脧赂`黑盒子,黑盒子`是实现*(元)启发式/随机算法*的Julia包,不需要可微性。
全局优化器
无约束方程
中的算法https://github.com/robertfeldt/BlackBoxOptim.jl[脧锚脧赂`黑盒子,黑盒子`]正在对没有约束方程的问题进行全局优化。 然而,下限和上限约束由 磅/磅 和 ub 在 优化问题 是必需的。
A 黑盒子,黑盒子 算法由调用 BBO_ 前缀后跟算法名称:
*自然进化策略:
**可分离的NES: BBO_separable_nes()
**指数NES: BBO_xnes()
**距离加权指数NES: BBO_dxnes()
*差分进化优化器,5种不同的:
**自适应DE/rand/1/bin: BBO_adaptive_de_rand_1_bin()
**具有半径限制采样的自适应DE/rand/1/bin: BBO_adaptive_de_rand_1_bin_radiuslimited()
**DE/rand/1/bin: BBO_de_rand_1_bin()
**带半径有限采样的DE/rand/1/bin(一种微不足道的地理): BBO_de_rand_1_bin_radiuslimited()
**DE/rand/2/bin: de_rand_2_bin()
**带半径有限采样的DE/rand/2/bin(一种微不足道的地理): BBO_de_rand_2_bin_radiuslimited()
*直接搜索:
**生成集搜索:
***指南针/坐标搜索: BBO_generating_set_search()
***通过概率下降直接搜索: BBO_probabilistic_descent()
*重新采样模因搜索者:
**重采样模因搜索(RS): BBO_resampling_memetic_search()
**重采样继承模因搜索(RIS): BBO_resampling_inheritance_memetic_search()
*随机近似:
**同时扰动随机近似(SPSA): BBO_simultaneous_perturbation_stochastic_approximation()
*随机搜索(比较): BBO_random_search()
推荐的优化器是 BBO_adaptive_de_rand_1_bin_radiuslimited()
列出了目前可用的算法https://github.com/robertfeldt/BlackBoxOptim.jl#state-of-the-library[这里]
例子:
Rosenbrock函数可以使用 BBO_adaptive_de_rand_1_bin_radiuslimited() 如下:
using Optimization, OptimizationBBO
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, BBO_adaptive_de_rand_1_bin_radiuslimited(), maxiters = 100000,
maxtime = 1000.0)
retcode: Default
u: 2-element Vector{Float64}:
1.0
1.0