智能优化算法:世界杯优化算法-附代码
智能优化算法:世界杯优化算法
文章目录
- 智能优化算法:世界杯优化算法
- 1.算法原理
- 1.1 建立国家和团队。
- 1.2团队之间的竞争
- 1.3 更新:为下一次比赛准备团队
- 2.算法结果
- 3.参考文献
- 4.Matlab代码
摘要:世界杯算法(World Cup Optimization(WCO))是于2016年提出的,一种基于国际足联世界杯比赛的数学函数优化方法。该方法具有收敛速度快,寻优能力强等特点。
1.算法原理
1.1 建立国家和团队。
在MMM个大洲中解决NNN维优化问题时,每个大洲设为一个1×Nvar1×Nvar1×Nvar的数组表示当前参赛大洲的参赛队。这个数组的定义如下:
continent=[country1,country2,...,countryNvar](1)continent=[country_1,country_2,...,country_{Nvar}]\tag{1} continent=[country1,country2,...,countryNvar](1)
countryi=[x1,x2,...,xNvar](2)country_i=[x_1,x_2,...,x_{Nvar}]\tag{2} countryi=[x1,x2,...,xNvar](2)
xix_ixi为国家的第iii只队伍,所有的变量(x1,x2,...,xNvar)(x_1,x_2,...,x_{Nvar})(x1,x2,...,xNvar)是浮点数。每个大陆的排名可以通过对变量(x1,x2,...,xNvar)(x_1,x_2,...,x_{Nvar})(x1,x2,...,xNvar)等级函数的适应度值来实现见式(3).
Rank=fr(continent)=fr(x1,x2,...,xNvar),O=N∗M(3)Rank=f_r(continent)=f_r(x_1,x_2,...,x_{Nvar}),O=N*M\tag{3} Rank=fr(continent)=fr(x1,x2,...,xNvar),O=N∗M(3)
其中NNN表示维数,MMM表示大洲的个数。
该算法首先生成一些大小为Npop×NvarNpop×NvarNpop×Nvar的候选大陆矩阵,其中NpopNpopNpop定义了团队的数量,Nvar是问题中的变量数量。一些随机组成的团队被认为是针对这些最初的大陆。在最初的国际足联中,有五大洲,每一大洲包括四支球队。这些值被用来作为团队在不同迭代中对每个大陆的投入的初始限制。
1.2团队之间的竞争
在初始化团队之后,下一步是评估每个大洲的分数。这个分数不是很清楚,因为可能有一个大陆上的球队其中一个得分最高(最低适应度),而其他的球队相对于其他大陆的其他球队得分较低。为了解决这一问题,在该算法中应用了一种特定的技术。见步骤(a)至(d)。
步骤(a):获得各大洲
步骤(b): 计算各大洲的平均值和标准差如下:
Xmean=∑i=1nXi/n(4)Xmean=\sum_{i=1}^{n}X_i/n \tag{4} Xmean=i=1∑nXi/n(4)
σ=∑i=1n(Xi−Xmean)/(n−1)(5)\sigma = \sqrt{\sum_{i=1}^n(X_i-Xmean)/(n-1)}\tag{5} σ=i=1∑n(Xi−Xmean)/(n−1)(5)
步骤(c): 计算各大洲的分数:
Rank=βσ+Xmean2(6)Rank = \frac{\beta \sigma+Xmean}{2}\tag{6} Rank=2βσ+Xmean(6)
步骤(d): 根据排名,在一个向量中对所有大陆进行排序(假设默认有5个大洲和n支球队):
{X1=[X11,...,X1n]TX2=[X21,...,X2n]TX3=[X31,...,X3n]TX4=[X41,...,X4n]TX5=[X51,...,X5n]T(7)\begin{cases} X_1=[X_{11},...,X_{1n}]^T\\ X_2=[X_{21},...,X_{2n}]^T\\ X_3=[X_{31},...,X_{3n}]^T\\ X_4=[X_{41},...,X_{4n}]^T\\ X_5=[X_{51},...,X_{5n}]^T \end{cases}\tag{7} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧X1=[X11,...,X1n]TX2=[X21,...,X2n]TX3=[X31,...,X3n]TX4=[X41,...,X4n]TX5=[X51,...,X5n]T(7)
XTotal=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(8)X_{Total}=[X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T\tag{8} XTotal=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(8)
XRank=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(9)X_{Rank}=[X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T\tag{9} XRank=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(9)
XChampion=min(XTotal)=min([X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T)(10)X_{Champion}=min(X_{Total})=min([X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T)\tag{10} XChampion=min(XTotal)=min([X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T)(10)
1.3 更新:为下一次比赛准备团队
在确定本届杯赛的冠军队伍后,根据上届杯赛和球队排名来定义新的人口(大洲及其球队)。这部分不同于真实的FIFA,将有一个启发式的模式。为此,我们使用如下两部分矢量:
Pop=XTotal=[Xbest,XRand](11)Pop=X_{Total}=[X_{best},X_{Rand}]\tag{11} Pop=XTotal=[Xbest,XRand](11)
其中Pop(XTotal)Pop(X_{Total})Pop(XTotal)为总规模为N∗MN*MN∗M的新种群,为XRandX_{Rand}XRand问题限制区间之间的随机值,XBestX_{Best}XBest为当前最优向量,其特征如下:
{L<Xbest<UU=0.5∗ac∗(Ub+Lb)L=0.5∗ac∗(Ub−Lb)(12)\begin{cases} L<X_{best}<U\\ U=0.5*ac*(Ub+Lb)\\ L = 0.5*ac*(Ub-Lb) \end{cases} \tag{12} ⎩⎪⎨⎪⎧L<Xbest<UU=0.5∗ac∗(Ub+Lb)L=0.5∗ac∗(Ub−Lb)(12)
其中acacac是考虑问题的高低边界限制在LbLbLb和UbUbUb之间的精度系数。
XRandX_{Rand}XRand和XBestX_{Best}XBest的大小可以被分离和改变,因为问题陈述的值是Cross Point (CP),如下所示:
{XRand=Pop(1:CP,M)Xbest=Pop(CP+1:N,M)(13)\begin{cases} X_{Rand}=Pop(1:CP,M)\\ X_{best}=Pop(CP+1:N,M) \end{cases}\tag{13} {XRand=Pop(1:CP,M)Xbest=Pop(CP+1:N,M)(13)
在产生新的种群后,它将被分成n个大陆的m个团队:
Pop=[Xbest,XRand]={X1new=[Pop(1:k)]X2new=[Pop(k+1:l)]X1new=[Pop(1+l:r)]X1new=[Pop(r+1:s)](14)Pop=[X_{best},X_{Rand}] =\begin{cases} X_{1new}=[Pop(1:k)]\\ X_{2new}=[Pop(k+1:l)]\\ X_{1new}=[Pop(1+l:r)]\\ X_{1new}=[Pop(r+1:s)] \end{cases}\tag{14} Pop=[Xbest,XRand]=⎩⎪⎪⎪⎨⎪⎪⎪⎧X1new=[Pop(1:k)]X2new=[Pop(k+1:l)]X1new=[Pop(1+l:r)]X1new=[Pop(r+1:s)](14)
算法步骤:
步骤1:设置算法初始参数种群数量及维度。
步骤2:根据式(1)至(3)建立国家和团队,并评估适应度函数值。
步骤3:根据步骤(a)至(d)即公式(4)至(10)确定团队之间排名。
步骤4:根据式(11)至(12)更新国家和团队分数,确定下一届参加的国家和团队,即更新种群的位置。
步骤5:重新评估适应度函数值,并更新国家和团队分数。
步骤6:判断是否满足迭代条件,若是则输出排名分数及下一届参加的国家和团队,否则返回步骤2重新迭代更新计算。
2.算法结果
3.参考文献
[1] Navid Razmjooy et al., A New Meta-Heuristic Optimization Algorithm Inspired by FIFA World Cup Competitions: Theory and Its Application in PID Designing for AVR System[J]. J. Control Autom. Electr Syst. 2016.
4.Matlab代码
智能优化算法:世界杯优化算法-附代码相关推荐
- 智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
- 相位 unwrap 与 wrap 算法详解(附代码)
相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...
- 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...
- 二分查找算法详解(附代码)
二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...
- 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客blog.csdn.net 2.智能优化算法 ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
最新文章
- 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)...
- ubuntu18.04 更改apt源
- 在进行数据插入数据库操作时,对于id的处理
- Storm 疑难杂症。
- 农业银行数据库最佳实践和发展规划
- 二级VB培训笔记10:知识点串讲
- 需要额外端口信息_二端口网络及算例
- linux dd命令 配额,第四章 Centos7.5下LVM操作与磁盘配额
- ASP.NET中 CheckBox(复选框)的使用
- Thingsboard 3.1.0 - UI修改
- PostgreSQL在何处处理 sql查询之二十九
- 网卡高可用与负载均衡【team】
- 安装selenium时报错,Unable to create process using ‘D:\ProgramData\python.exe D:\ProgramData\Scripts\pip-s
- 51CTO乌镇行 追求“小轩窗,正梳妆”的宁静
- python字符串查找位置_python中怎么返回指定查找字符的位置
- 赵神牛的游戏(过程分析与结果分析)
- 关于SQLの大题练习
- 支持ESMTP身份验证的邮件发送
- Redis分布式锁实现秒杀
- 海思编译kernel
热门文章
- 每天一道剑指offer-调整数组顺序使奇数位于偶数前面
- php单引号和双引号的速度,在php中单引号和双引号是否有性能优势?[复制]
- 锁失效_分布式锁的解决方案(二)
- 单端口和双端口的优势_哪种适合您,三种常见组网方式比较
- (day 52 - 二叉搜索树) 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
- mybatis-plus删除操作(逻辑与物理删除)
- jack插头_防水连接器航空插头特点
- python安装netcdf4_Python气象绘图教程(二)
- 谷粒商城:13.分布式基础篇总结
- .net session超时设置 sessionState的相关属性