差分进化
组件作者 | 燕青 | 组件ID | 12521 |
---|---|---|---|
功能 | 适用于对某个函数搜索最小值 | ||
输入桩格式 | 组件可以自定义输入类型:json,string,number等,默认json | ||
输出桩格式 | 输出json | ||
其他 | 该组件将输入暴露为inputData1,在函数参数,被调函数,搜索接线,约束条件中可以使用,如果不适用则单纯作为函数寻优的触发条件 |
输入
可支持字符串,Json,数字等类型。
输出_
输出json
例:
{'x': [1., 1., 1., 1., 1.], 'fun': 0.0, 'nfev': 50631, 'nit': 674, 'message': 'Optimization terminated successfully.', 'success': True}
参数配置
- 被优化函数(必填)
是一个可执行函数,需要被命名为func。差分进化将这一目标函数最小化。必须以f(x, *args)的形式,其中x是一维数组形式的参数,args是完全指定函数所需的任何附加固定参数的元组。
- bounds(自变量区间)(必填)
搜索过程中的变量范围。(min, max)对x中的每个元素,定义函数优化参数的有限上界和下界。它需要有len(bounds) == len(x)。len(bounds)用于确定x中的参数数量。
- 被优化函数参数
任何额外的固定参数需要完全指定目标函数。
- 进化策略
不同的进化策略。可以在下拉菜单中选择。
- 最大迭代次数
整个种群进化的最大迭代次数。函数求解的最大次数为:(maxiter + 1) popsize len(x)
- 种群大小
用于设置总种群大小。
- 收敛容忍度
求解器停止的条件。
- 突变常数
突变常数。在文献中,这也被称为微分权重,用f表示。在[0,2]之间。
- 交叉常数
recombination常数,应该在[0,1]范围内。
- seed
如果没有指定则使用随机值。
- 是否打印每次迭代结果
打印每轮的计算结果
- 回调函数
callbackFunc(xk, convergence=val),一个用来跟踪最小化的进程的函数。xk是x0的当前值。val表示种群收敛的分数值。当val大于1时,函数停止。如果回调返回True,那么最小化将停止。
- polish
可以对算法有一定改进。
- 初始化方式
默认值是“latinhypercube”。拉丁超立方体抽样试图最大限度地覆盖可用参数空间。“random”随机地初始化种群——这有一个缺点,即可能发生聚类,从而阻止了整个参数空间被覆盖。
- 收敛绝对容忍度
求解器停止的绝对容忍度条件。
- 更新
如果选择“immediate”,在单一代中最优的向量是连续更新的。这样更快的收敛。使用“deferred”兼容并行化,并行度关键字可以覆盖此选项。
- 并行度
使用进程去做并行化搜索,并行情况下只能使用deferred。
- 约束条件
除去边界值以外的约束条件
参考文档
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html