智能优化算法:世界杯优化算法

文章目录

  • 智能优化算法:世界杯优化算法
    • 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∑n​Xi​/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 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  10. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

最新文章

  1. 基于深度学习的安卓恶意应用检测----------android manfest.xml + run time opcode, use 深度置信网络(DBN)...
  2. ubuntu18.04 更改apt源
  3. 在进行数据插入数据库操作时,对于id的处理
  4. Storm 疑难杂症。
  5. 农业银行数据库最佳实践和发展规划
  6. 二级VB培训笔记10:知识点串讲
  7. 需要额外端口信息_二端口网络及算例
  8. linux dd命令 配额,第四章 Centos7.5下LVM操作与磁盘配额
  9. ASP.NET中 CheckBox(复选框)的使用
  10. Thingsboard 3.1.0 - UI修改
  11. PostgreSQL在何处处理 sql查询之二十九
  12. 网卡高可用与负载均衡【team】
  13. 安装selenium时报错,Unable to create process using ‘D:\ProgramData\python.exe D:\ProgramData\Scripts\pip-s
  14. 51CTO乌镇行 追求“小轩窗,正梳妆”的宁静
  15. python字符串查找位置_python中怎么返回指定查找字符的位置
  16. 赵神牛的游戏(过程分析与结果分析)
  17. 关于SQLの大题练习
  18. 支持ESMTP身份验证的邮件发送
  19. Redis分布式锁实现秒杀
  20. 海思编译kernel

热门文章

  1. 每天一道剑指offer-调整数组顺序使奇数位于偶数前面
  2. php单引号和双引号的速度,在php中单引号和双引号是否有性能优势?[复制]
  3. 锁失效_分布式锁的解决方案(二)
  4. 单端口和双端口的优势_哪种适合您,三种常见组网方式比较
  5. (day 52 - 二叉搜索树) 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
  6. mybatis-plus删除操作(逻辑与物理删除)
  7. jack插头_防水连接器航空插头特点
  8. python安装netcdf4_Python气象绘图教程(二)
  9. 谷粒商城:13.分布式基础篇总结
  10. .net session超时设置 sessionState的相关属性