跳到主要内容

差分进化

组件作者燕青组件ID12521
功能适用于对某个函数搜索最小值
输入桩格式组件可以自定义输入类型: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