智能优化算法:足球联赛竞争算法

文章目录

  • 智能优化算法:足球联赛竞争算法
    • 1.算法原理
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab

摘要:足球联赛竞争(soccer league competition)算法是N.Moosavian等人于2014年受足球联赛球队和球员间竞争启发而提出的一种新型群体优化算法,该算法将球员(种群个体)分为固定球员和替补球员,并由此组成若干球队,球队之间、球员之间相互竞争,并采取积分排名方式将球队排名最前的球员位置作为待优化问题的最优解 。该算法具有寻优能力强等特点。

1.算法原理

足球联赛竞争算法遵行以下4个准则:
准则1:足球联赛比赛中,第一级足球联赛由各球队在一个赛季内竞争完成,在此环境下,强队的目标是在联赛积分排名中处于靠前的位置,而弱队的计划是在一级联赛中生存,以防止淘汰至第二级联赛 .在一个赛季的比赛中,每队完成主场和客场两场比赛,胜出球队得3分,平局得1分,输球不得分,球队
最终排名由总积分决定。

准则2:球员作为明星球员(SP)或超级明星球员(SSP)可用于模拟解决优化问题,每个球员均希望成为超级明星球员(SSP),即待优化问题解向量的全局最佳位置 . 在联赛中各球队中的明星球员(SSP)对应待优化问题的局部最优解向量,超级明星球员(SP)对应待优化问题的全局最优解向量。

准则3 :每支球队由11个固定球员(EP)和一些替补球员(S)组成,球队的强弱取决于其球员的技术水平 。

准则4 :各球队内部存在竞争.球员之间的竞争是通过提高他们的球技来吸引总教练的关注,这种内部竞争提升了球队素质和技术水平。

SLC算法原理简述如下:

1)假定足球联赛由N支球队组成,其比赛次数计算如下:
TotalMatch=(N(N−1))/2(1)TotalMatch=(N(N-1))/2\tag{1} TotalMatch=(N(N−1))/2(1)
2) 对于最小优化问题,其目标函数值越小说明其竞争者(PP)能力越强,可表示如下:
PP(i,j)=1/C(i,j)(2)PP(i,j)=1/C(i,j)\tag{2} PP(i,j)=1/C(i,j)(2)
式中,i∈team,j∈player,C=objectivefunctioni\in team,j\in player,C=objective functioni∈team,j∈player,C=objectivefunction.

球队总积分被定义为它固定球员的平均积分,下列公式显示了球队积分(TP)是如何计算的:
TP(i)=(1/nFP)∑j=1nFPPP(i,j)(3)TP(i)=(1/nFP)\sum_{j=1}^{nFP}PP(i,j)\tag{3} TP(i)=(1/nFP)j=1∑nFP​PP(i,j)(3)
式中,nFPnFPnFP为固定球员总量 .

每队胜利的概率由下式给出:
pv(k)=TP(k)/(TP(i)+TP(k))(8)p_v(k)=TP(k)/(TP(i)+TP(k)) \tag{8} pv​(k)=TP(k)/(TP(i)+TP(k))(8)

pv(i)=TP(i)/(TP(i)+TP(k))(9)p_v(i)=TP(i)/(TP(i)+TP(k))\tag{9} pv​(i)=TP(i)/(TP(i)+TP(k))(9)

式中,pvp_vpv​表示胜利的概率,且pv(k)p_v(k)pv​(k)和pv(i)p_v(i)pv​(i)总和等于1。

3)模仿操作.获胜球队的固定球员(FP)同时在本球队模仿明星球(SP)和在联赛中模仿超级明星球员(SSP),以提高他们技术水平.在SLC算法,模仿操作由下列公式表示:
FP(i,j)=u1FP(i,j)+t1(SSP−FP(i,j))+t2(SP(i)−FP(i,j))(10)FP(i,j)=u_1FP(i,j) +t_1(SSP-FP(i,j))+t_2(SP(i)-FP(i,j))\tag{10} FP(i,j)=u1​FP(i,j)+t1​(SSP−FP(i,j))+t2​(SP(i)−FP(i,j))(10)

FP(i,j)=u2FP(i,j)+t1(SSP−FP(i,j))+t2(SP(i)−FP(i,j))(11)FP(i,j)=u_2FP(i,j)+t_1(SSP-FP(i,j))+t_2(SP(i)-FP(i,j))\tag{11} FP(i,j)=u2​FP(i,j)+t1​(SSP−FP(i,j))+t2​(SP(i)−FP(i,j))(11)

式中,FP(i,j)FP(i,j)FP(i,j)表示第iii个球队第jjj个固定球员;SP(i)SP(i)SP(i)表示第iii个球队的明星球员;u1∼U(θ,β),u2∼U(0,β),t1∼U(0.2),t2∼U(0.2)u_1\sim U(\theta,\beta),u_2\sim U(0,\beta),t_1\sim U(0.2),t_2\sim U(0.2)u1​∼U(θ,β),u2​∼U(0,β),t1​∼U(0.2),t2​∼U(0.2)为均匀分布的随机数,其中β∈[1,2],θ∈[0,1]\beta\in[1,2],\theta\in[0,1]β∈[1,2],θ∈[0,1].

4)挑衅操作.优胜球队的替补球员(S)须有等于其所在球队固定球员的平均积分值.其最差球队替补球员解向量朝优胜球队固定球员的重心位置向前移动,若在新位置上产生的解向量优于前次最优解向量,则利用式(12)进行球员更新;否则,最差球队替补球员解向量朝优胜球队固定球员的重心位置向后移动,并利用式(13)进行球员更新 。
S(i,j)=C(i)+x1(C(i)−S(i,j))(12)S(i,j)=C(i)+x_1(C(i)-S(i,j))\tag{12} S(i,j)=C(i)+x1​(C(i)−S(i,j))(12)

S(i,j)=C(i)+x2((S(i,j)−C(i))(13)S(i,j)=C(i)+x_2((S(i,j)-C(i))\tag{13} S(i,j)=C(i)+x2​((S(i,j)−C(i))(13)

式中,C(i)C(i)C(i)表示第iii个球队固定球员解向量积分平均值;S(i,j)S(i,j)S(i,j)表示第iii个球队第 jjj个替补球员; x1∼U(0.9,1)x_1\sim U(0.9,1)x1​∼U(0.9,1)和x2∼U(0.4,0.6)x_2\sim U(0.4,0.6)x2​∼U(0.4,0.6)为均匀分布的随机数 。

  1. 变异算子。类似遗传算法(GA)变异处理方法,SLC算法利用变异算子随机改变一些球员位置,以获得多样化的解向量。

  2. 替补算子。SLC算法中替补算子利用下式表示:
    SNEW(i,j)=α∗S(i,j)+(1−α)∗S(i,k)(14)S_{NEW}(i,j) = \alpha*S(i,j)+(1-\alpha)*S(i,k)\tag{14} SNEW​(i,j)=α∗S(i,j)+(1−α)∗S(i,k)(14)

SNEW(i,k)=α∗S(i,k)+(1−α)∗S(i,j)(14)S_{NEW}(i,k)=\alpha*S(i,k)+(1-\alpha)*S(i,j)\tag{14} SNEW​(i,k)=α∗S(i,k)+(1−α)∗S(i,j)(14)

式中,α∼U(0,1)\alpha \sim U(0,1)α∼U(0,1)为均匀分布的随机向量。

SLC算法中,模仿操作加快了算法的搜索能力;挑衅操作可以获得复杂优化问题的最佳解向量位置;而突变算法和替补算子有助于SL 算法跳出局部极值并最终获得全局最优解向量 .

算法步骤:

step1:初始化算法参数 . 设置最大迭代次数TTT 、球员数量(种群数)MMM 、联赛球队数、固定球员数、替补球员数和变异概率等算法参数。

step2:生成球员(种群) 。

step3:适应度函数值计算。并按照积分对球队进行排名,找到并保存
当前超级明星球员(SSP)位置。

step4:开始联赛进行模仿、挑衅、变异和替补操作 。

step5:降级和提升.该步骤中最差的球队(降级点)从第一级联赛中淘汰,而新的团队(提升点)引入到第一级联赛 。

step6:检查停止准则。重复步骤3-5直至满足终止准则。

2.实验结果

3.参考文献

[1]Naser Moosavian,Babak Kasaee Roodsari. Soccer league competition algorithm: A novel meta-heuristic algorithm for optimal design of water distribution networks[J]. Swarm and Evolutionary Computation,2014,17{5}:

[1]崔东文,金波.足球联赛竞争算法-投影寻踪模型在区域水资源承载力评价中的应用[J].三峡大学学报(自然科学版),2018,40(01):5-11.

4.Matlab

上述代码见个人资料介绍

智能优化算法:足球联赛竞争算法-附代码相关推荐

  1. 单目标应用:足球联赛竞争算法(Soccer league competition algorithm,SLC)求解多仓库多旅行商问题MD-MTSP(可更改旅行商个数及起点)

    一.足球联赛竞争算法 足球联赛竞争算法(Soccer league competition algorithm,SLC)由Naser Moosavian和Babak Kasaee Roodsari于2 ...

  2. 智能优化算法:帝国主义竞争算法-附代码

    智能优化算法:帝国主义竞争算法-附代码 文章目录 智能优化算法:帝国主义竞争算法-附代码 1.算法原理 1.1 帝国集团的初始化 1.2 帝国集团内部调整 1.3 交换帝国和殖民地的位置 1.4 帝国 ...

  3. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  4. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  5. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  6. 基于海鸥算法优化的Elman神经网络数据预测-附代码

    基于海鸥算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于海鸥算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  7. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  8. 【AI超级美发师】深度学习算法打造染发特效(附代码)

    [新智元导读]如今,在类似天天P图.美图秀秀等手机APP中,给指定照片或视频中的人物更换头发颜色已经是再正常不过的事情了.那么本文便介绍了该功能背后如AI头发分割模块.头发换色.颜色增强与修正模块等技 ...

  9. 基于遗传算法优化的Elman神经网络数据预测-附代码

    基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  10. 基于蜣螂优化的Elman神经网络数据预测-附代码

    基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蜣螂算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

最新文章

  1. org.hibernate.HibernateException: connnection proxy not usable after transaction
  2. c++re什么意思_玩转英语词汇--词汇积累策略之前缀re
  3. 处理时间_7_60个Mysql日期时间函数汇总
  4. 无法嵌入互操作类型“SHDocVw.ShellWindowsClass”。请改用适用的接口
  5. python中e-r图_E-R图基本步骤
  6. /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15 not found
  7. SQL语言基础:触发器相关知识介绍​
  8. 解决idea 中web项目无法正常显示的问题
  9. 制造业数字化经营新思路:管理平台架构及三大落地方法论
  10. 网站“设为首页”代码,“加入收藏”代码
  11. java中用Executor代替Thread的四大理由
  12. navicat for mysql 亲测好用的 中文破解版
  13. “快易需求”第一次迭代总结
  14. libtorrent源码分析(三)BT下载相关知识总结
  15. K3CLOUD成本管理参数解释
  16. 一天搞懂机器学习PPT笔记-1
  17. 程序员高效办公利器整理
  18. Echarts 双柱状图+折线图合并---实现效果详解(vue+Echarts实现)
  19. logic原理图板框制作
  20. 网络安全工程师需具备的5个重要技能

热门文章

  1. MapReduce job任务源码提交流程
  2. everedit选择_【EverEdit怎么用】EverEdit好不好_使用技巧-ZOL软件百科
  3. 让部署到服务器上的springboot项目持续运行(nohup)
  4. 如何做爬虫python在线观看_Python爬虫实战:利用scrapy,短短50行代码下载整站短视频...
  5. c语言 数组指针函数,C语言:数组 指针 函数
  6. Java进阶:Maven高级
  7. Java编程:java判断两个区间交差重叠
  8. Javascript特效:简易留言板
  9. 调用登录_微信小程序登录那些事
  10. Java集合框架的概念以及常用接口的介绍