真的是震惊我妈!用Python进行差分进化全局优化!!!

这篇教程深入介绍了Python中的差分进化算法,一种无梯度全局优化技术。通过实例,展示了如何利用SciPy库的differential_evolution()函数进行优化,并探讨了算法原理、配置选项以及在处理多模态优化问题上的应用。
摘要由CSDN通过智能技术生成

差异进化是一种全局优化算法。

它是一种进化算法,与其他进化算法(例如遗传算法)有关。与遗传算法不同,它是专门设计用于对实值向量(而不是位串)进行运算的。此外,与遗传算法不同的是,它使用向量减法和加法等向量运算来导航搜索空间,而不是遗传学启发的变换。

在本教程中,您将发现差异演化全局优化算法。完成本教程后,您将知道:

  • 差分进化优化是一种进化算法,旨在与实值候选解一起使用。
  • 如何在python中使用差异进化优化算法API。
  • 使用差异演化解决具有多个最优解的全局优化问题的示例。

教程概述

本教程分为三个部分:他们是:

  • 差异进化
  • 差分进化API
  • 差分进化的工作实例

差异进化

差分进化,简称DE,是一种随机的全局搜索优化算法。它是一种进化算法,与其他进化算法(例如遗传算法)有关。与使用位序列表示候选解决方案的遗传算法不同,差分演化被设计为与用于连续目标函数的多维实值候选解决方案一起使用。

该算法在搜索中不使用梯度信息,因此非常适合于非微分非线性目标函数。该算法通过维护代表实值向量的候选解的总体来工作。通过制作现有解决方案的修改版本来创建新的候选解决方案,然后在算法的每次迭代中替换大部分人口。使用“策略”来创建新的候选解决方案,该策略涉及选择要添加突变的基本解决方案,以及从总体中计算出突变的数量和类型的其他候选解决方案,称为差异向量。例如,一种策略可以选择最佳候选解决方案作为突变中差异矢量的基础和随机解决方案。

如果子级具有更好的目标函数评估,则将基础解决方案替换为其子级。

变异计算为候选解决方案对之间的差异,从而产生差异矢量,然后将差异矢量添加到基本解决方案中,并通过设置在[0,2]范围内的变异因子超参数进行加权。

并非基本解决方案的所有元素都发生了突变。这是通过重组超参数控制的,通常将其设置为较大的值(例如80%),这意味着基本解决方案中的大多数(但不是全部)变量都将被替换。通过对概率分布(例如二项式或指数式)进行采样,分别为每个位置确定保留或替换基本解中的值的决策。

使用标准术语来描述以下形式的差异策略&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值