基于差分进化算法的函数寻优算法
文章目录
- 一、差分进化算法
- 1、差分变异操作
- 2、杂交操作
- 3、选择操作
- 二、实验测试
- 三、参考文献
一、差分进化算法
在DE算法中,首先随机初始化一个种群Xi,G=(X1,X2,⋯,XNP)T\boldsymbol X_{i,G}=(\boldsymbol X_1,\boldsymbol X_2,\cdots,\boldsymbol X_{NP})^TXi,G=(X1,X2,⋯,XNP)T,并计算其适应度值f(X)f(\boldsymbol X)f(X)。其中,Xi=xi1,xi2,⋯,xiD,i=1,2,⋯,NP,D\boldsymbol X_i={x_{i1},x_{i2},\cdots,x_{iD}},i=1,2,\cdots,NP,DXi=xi1,xi2,⋯,xiD,i=1,2,⋯,NP,D是向量维数,NPNPNP为种群规模。之后,算法根据差分变异、杂交和选择操作产生下一代。具体操作如下。
1、差分变异操作
在差分变异操作中,种群中每一个父代个体Xi,G=(xi,1,G,xi,2,G,⋯,xi,D,G)\boldsymbol X_{i,G}=(x_{i,1,G},x_{i,2,G},\cdots,x_{i,D,G})Xi,G=(xi,1,G,xi,2,G,⋯,xi,D,G)都产生一个变异个体Vi,G=(vi,1,G,vi,2,G,⋯,vi,D,G)\boldsymbol V_{i,G}=(v_{i,1,G},v_{i,2,G},\cdots,v_{i,D,G})Vi,G=(vi,1,G,vi,2,G,⋯,vi,D,G)。DE算法中常用的差分变异策略如下:
- DE/rand/1:Vi,G=Xr1,G+F⋅(Xr2,G−Xr3,G)(1)\boldsymbol V_{i,G}=\boldsymbol X_{r_1,G}+F\cdot(\boldsymbol X_{r_2,G}-\boldsymbol X_{r_3,G})\tag{1}Vi,G=Xr1,G+F⋅(Xr2,G−Xr3,G)(1)
- DE/best/1:Vi,G=Xbest,G+F⋅(Xr1,G−Xr2,G)(2)\boldsymbol V_{i,G}=\boldsymbol X_{best,G}+F\cdot(\boldsymbol X_{r_1,G}-\boldsymbol X_{r_2,G})\tag{2}Vi,G=Xbest,G+F⋅(Xr1,G−Xr2,G)(2)
- DE/current/1:Vi,G=Xi,G+F⋅(Xr1,G−Xr2,G)(3)\boldsymbol V_{i,G}=\boldsymbol X_{i,G}+F\cdot(\boldsymbol X_{r_1,G}-\boldsymbol X_{r_2,G})\tag{3}Vi,G=Xi,G+F⋅(Xr1,G−Xr2,G)(3)
- DE/current-to-best/1:Vi,G=Xi,G+F⋅(Xbest,G−Xi,G)+F⋅(Xr1,G−Xr2,G)(4)\boldsymbol V_{i,G}=\boldsymbol X_{i,G}+F\cdot(\boldsymbol X_{best,G}-\boldsymbol X_{i,G})+F\cdot(\boldsymbol X_{r_1,G}-\boldsymbol X_{r_2,G})\tag{4}Vi,G=Xi,G+F⋅(Xbest,G−Xi,G)+F⋅(Xr1,G−Xr2,G)(4)
- DE/rand-to-best/1:Vi,G=Xr1,G+F⋅(Xbest,G−Xr1,G)+F⋅(Xr2,G−Xr3,G)(5)\boldsymbol V_{i,G}=\boldsymbol X_{r_1,G}+F\cdot(\boldsymbol X_{best,G}-\boldsymbol X_{r_1,G})+F\cdot(\boldsymbol X_{r_2,G}-\boldsymbol X_{r_3,G})\tag{5}Vi,G=Xr1,G+F⋅(Xbest,G−Xr1,G)+F⋅(Xr2,G−Xr3,G)(5)
式(1)~(5)中:GGG为进化代数;Xbest,G\boldsymbol X_{best,G}Xbest,G是当前种群的最优个体;Xi,G\boldsymbol X_{i,G}Xi,G是父个体;r1,r2,r3,i∈{1,2,⋯,NP}r_1,r_2,r_3,i∈\{1,2,\cdots,NP\}r1,r2,r3,i∈{1,2,⋯,NP},且两两互不相等;Xr1,G−Xr2,G\boldsymbol X_{r_1,G}-\boldsymbol X_{r_2,G}Xr1,G−Xr2,G和Xr2,G−Xr3,G\boldsymbol X_{r_2,G}-\boldsymbol X_{r_3,G}Xr2,G−Xr3,G为差分向量;FFF为缩放因子,用于控制差分扰动的程度,通常情况下F=0.5F=0.5F=0.5能够获得更好的效果。
2、杂交操作
杂交操作也称之为交叉操作,是利用差分变异操作中产生的变异个体Vi,G\boldsymbol V_{i,G}Vi,G与父个体Xi,G\boldsymbol X_{i,G}Xi,G进行二项杂交,产生试验个体Ui,G=(ui,1,G,ui,2,G,⋯,ui,D,G)\boldsymbol U_{i,G}=(u_{i,1,G},u_{i,2,G},\cdots,u_{i,D,G})Ui,G=(ui,1,G,ui,2,G,⋯,ui,D,G)。该过程如下:ui,j,G={vi,j,G,rand(0,1)≤CRorj==jrandxi,1,G,otherwise(6)u_{i,j,G}=\begin{dcases}v_{i,j,G},\quad rand(0,1)≤CR\,\,or\,\, j==j_{rand}\\x_{i,1,G},\quad otherwise\end{dcases}\tag{6}ui,j,G={vi,j,G,rand(0,1)≤CRorj==jrandxi,1,G,otherwise(6)式中,j=1,2,⋯,Dj=1,2,\cdots,Dj=1,2,⋯,D,jrandj_{rand}jrand为[1,D][1,D][1,D]之间的一个随机整数,CRCRCR为杂交概率。
3、选择操作
选择操作是根据适应值从父个体和试验个体中选择更好的个体成为下一代个体,该过程如下:Xi,G+1={Ui,G,f(Ui,G)≤f(Xi,G)Xi,G,f(Ui,G)>f(Xi,G)(7)\boldsymbol X_{i,G+1}=\begin{dcases}\boldsymbol U_{i,G},\quad f(\boldsymbol U_{i,G})≤f(\boldsymbol X_{i,G})\\\boldsymbol X_{i,G},\quad f(\boldsymbol U_{i,G})>f(\boldsymbol X_{i,G})\end{dcases}\tag{7}Xi,G+1={Ui,G,f(Ui,G)≤f(Xi,G)Xi,G,f(Ui,G)>f(Xi,G)(7)式中,Xi,G+1\boldsymbol X_{i,G+1}Xi,G+1为下一代个体。
二、实验测试
以经典的Sphere函数为例,对20维取值在[−100,200][-100,200][−100,200]的自变量进行仿真实验,种群规模N=30N=30N=30,最大迭代次数MaxIt=500MaxIt=500MaxIt=500,采用DE/rand/1变异策略。
下图是迭代进化曲线。
最优位置及最优解显示如下:
Best position:1.6312e-05 -2.6041e-05 -4.4357e-05 1.4011e-05 -3.8454e-05 -6.9642e-07 3.5074e-05 2.6117e-05 6.921e-06 2.9509e-05 -8.4558e-06 -1.2684e-05 5.6268e-05 4.6493e-05 -6.8618e-06 7.0934e-05 -3.1023e-05 3.1736e-05 1.6565e-05 -7.4063e-05
Best fitness:2.5786e-08
三、参考文献
[1] Storn R, Price K. Differential evolution—A simple and efficient heuristic for global optimization over continuous spaces[J]. Journal of Global Optimization, 1997, 11(4): 341–359.
[2] 熊小峰, 刘啸婵, 郭肇禄, 等. 余弦适应性骨架差分进化算法[J]. 工程科学与技术, 2020, 52(2): 180-191.
基于差分进化算法的函数寻优算法相关推荐
- 《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法
<MATLAB智能算法30个案例>:第2章 基于遗传算法和非线性规划的函数寻优算法 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. MATLAB 仿真示例 ...
- 基于蚁群算法的函数寻优算法
文章目录 一.理论基础 二.案例背景 1.问题描述 2.解题思路及步骤 三.MATLAB程序实现 1.清空环境变量 2.初始化参数 3.构建解空间和目标函数 4.迭代寻优 5.结果显示 6.绘图 四. ...
- 基于藤壶交配优化算法的函数寻优算法
文章目录 一.理论基础 1.藤壶交配优化算法 1.1 哈迪-温伯格(Hardy-Weinberg)法则 1.2 BMO 1.2.1 初始化 1.2.2 选择过程 1.2.3 繁殖 2.BMO算法伪代码 ...
- 基于改进正弦余弦算法的函数寻优算法
文章目录 一.理论基础 1.基本正弦余弦算法 2.改进正弦余弦算法 (1)基于双曲正弦调节因子和动态余弦波权重的位置更新 (2)基于拉普拉斯分布和高斯分布的动态混合变异 二.算法流程图 三.仿真实验与 ...
- 基于蜉蝣优化算法的函数寻优算法
文章目录 一.理论基础 1.蜉蝣优化算法 (1)雄性蜉蝣的更新 (2)雌性蜉蝣的更新 (3)蜉蝣的交配过程 2.MA算法伪代码 二.仿真实验与结果分析 1.函数测试与数值分析 2.WSN三维覆盖优化 ...
- 基于蜂鸟优化算法的函数寻优算法
文章目录 一.理论基础 1.自搜索阶段 2.引导搜索阶段 3.HOA伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 蜂鸟优化算法(Hummingbirds optimization algor ...
- 基于入侵杂草算法的函数寻优算法
文章目录 一.理论基础 1.算法简介 2.杂草特性 二.案例背景 1.问题描述 2.解题思路及步骤 (1) 初始化种群 (2) 繁殖 (3) 空间分布 (4) 竞争性排斥规则 3.算法流程 三.MAT ...
- 基于沙猫群优化算法的函数寻优算法
文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...
- 基于堆优化算法的函数寻优算法
文章目录 一.理论基础 1.堆优化算法(HBO) 2.HBO算法伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 堆优化算法(Heap-based optimizer, HBO)模拟公司层次结构 ...
- 基于金豺优化算法的函数寻优算法
文章目录 一.理论基础 1.金豺优化算法 (1)搜索空间公式 (2)探索阶段或搜索猎物 (3)开发阶段或围捕和突袭猎物 (4)从探索转向开发 2.GJO伪代码 二.仿真实验与结果分析 三.参考文献 一 ...
最新文章
- wordpress关闭博客评论的两种方法
- word设置不同页脚
- object-c html,object.html
- python正则表达式——re模块
- Documentum常见问题4—如何通过vlink方式直接查看文档内容
- 学习记录-windows,开发板互通上网
- LinuxC-运算符
- 凉茶里偷掺消炎药 广东两名凉茶铺经营者领刑
- jQuery-1.9.1源码分析系列(二)jQuery选择器续2——筛选
- u-net语义分割_使用U-Net的语义分割
- php智能代码,php智能分页类代码原创
- android 卷帘动画,Android卷帘门动画实践
- c++ static静态变量、静态函数
- NPAPI插件开发记录(一)----- .rc文件 支持Chrome和FireFox
- CSDN博客 不登录不能复制粘贴
- 5脚耳机插座原理图_拆解报告:JLab Go Air 真无线运动耳机
- android 小米申请root权限,小米root权限获取教程
- 从5.56*45mm NATO弹看塔科夫的数据严谨性
- MuJoCo的机器人建模
- layout_marginTop=-3dp导致内容被遮挡的问题处理
热门文章
- android双击回到顶部,Android之双击回到顶部
- linux系统如何使用qq,Linux系统中怎么使用QQ
- java电信面试问题及答案_大唐电信java笔试题及答案
- JAVA制作简单的查询身份证号信息小程序
- OpenGL三维小球碰撞实现方法(glm、glfw)
- 龙之谷冰龙linux手工服务端,【网游】【龙之谷】v300冰龙巢穴一键服务端+客户端+GM工具+视频教程...
- matlab数字图像处理实验一:图像的读取显示存储、平移镜像放大缩小及旋转
- 【效率提高10倍项目原创发布!】深度学习数据自动标注器开源 目标检测和图像分类(高精度高效率)
- htc328d屏幕排线怎么换_详细的HTC T328D一键解锁教程(图文)
- 驾驶证/行驶证信息提取与识别