CEC2017(Python):五种算法(SSA、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介

1、麻雀搜索算法SSA

2、红狐优化算法RFO

3、鱼鹰优化算法OOA

4、粒子群优化算法PSO

5、灰狼优化算法GWO

二、CEC2017简介

参考文献:

[1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem definitions and evaluation criteria for the CEC2017 special session and competition on single objective real-parameter numerical optimization,” Technical Report. Nanyang Technological University, Singapore.

三、5种算法求解CEC2017

(1)部分Python代码

import cec2017.functions as functions
import numpy as np
import matplotlib.pyplot as plt
from SSA import SSA
from RFO import RFO
from OOA import OOA
from PSO import PSO
from GWO import GWO


plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#主程序
function_name =12 #CEC2017 测试函数 1-29
SearchAgents_no = 50#种群大小
Max_iter = 100#最大迭代次数
dim=30;#维度只能是 10/30/50/100
lb = -100*np.ones(dim)#下界
ub = 100*np.ones(dim)#上界
fobj= functions.all_functions[function_name-1]


BestX1,BestF1,curve1 = SSA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX2,BestF2,curve2 = RFO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX3,BestF3,curve3 = OOA(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX4,BestF4,curve4 = PSO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
BestX5,BestF5,curve5 = GWO(SearchAgents_no, Max_iter,lb,ub,dim,fobj)#问题求解
#画收敛曲线图
Labelstr=['SSA','RFO','OOA','PSO','GWO']
Colorstr=['r','g','b','k','c']
if BestF1>0:
    plt.semilogy(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])
    plt.semilogy(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])
    plt.semilogy(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])
    plt.semilogy(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])
    plt.semilogy(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])
else:
    plt.plot(curve1,color=Colorstr[0],linewidth=2,label=Labelstr[0])
    plt.plot(curve2,color=Colorstr[1],linewidth=2,label=Labelstr[1])
    plt.plot(curve3,color=Colorstr[2],linewidth=2,label=Labelstr[2])
    plt.plot(curve4,color=Colorstr[3],linewidth=2,label=Labelstr[3])
    plt.plot(curve5,color=Colorstr[4],linewidth=2,label=Labelstr[4])


plt.xlabel("Iteration")
plt.ylabel("Fitness")
plt.xlim(0,Max_iter)
plt.title("CEC2017-F"+str(function_name))
plt.legend()
plt.savefig(str(function_name)+'.png')
plt.show()
#




(2)部分结果

四、完整Python代码

CEC2017(Python):五种算法(SSA、RFO、OOA、PSO、GWO)求解CEC2017

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CEC 2017是指2017年中国电子竞技冠军杯(China E-sports Champion Cup)比赛。这是中国最大的电子竞技赛事之一,也是中国电子竞技领域的重要赛事之一。 CEC 2017的Python赛是比赛中的一个项目,Python是一种高级编程语言,广泛应用于各个领域,包括科学计算、数据分析、人工智能等。Python赛旨在展示选手运用Python编程技术解决实际问题的能力。 在CEC 2017的Python赛中,选手会面对一系列编程题目,这些题目可能涉及到算法设计、数据处理、网络通信等技术方面。选手需要利用Python语言的特点和工具,编写代码解决这些问题。评委会根据选手的代码质量、效率和功能完整性等方面进行评判。 参与CEC 2017的Python赛不仅可以考验选手的编程能力,还能锻炼选手的逻辑思维和解决问题的能力。同时,这也是一个展示选手创造力的舞台,选手可以通过编写各种有创意的程序来展示自己的才华。 此外,CEC 2017的Python赛也是推动Python语言在电子竞技领域应用的一次尝试。通过组织这样的比赛,可以促进Python语言在电子竞技领域的发展,推动更多的人了解和学习使用Python。 总的来说,CEC 2017的Python赛是一个以Python语言为核心的电子竞技比赛项目,旨在考验选手的编程能力和解决问题的能力,同时也推动了Python语言在电子竞技领域的应用和发展。 ### 回答2: CEC 2017 Python是指2017年举办的CEC(国际电气工程师协会)Python编程竞赛。Python是一种高级编程语言,广泛应用于网站开发、数据分析、人工智能等领域。CEC组织每年都会举办Python编程竞赛,旨在评选出在Python编程领域表现出色的参赛者。 CEC 2017 Python竞赛主要包括两个方面的内容:理论考试和编程实践。在理论考试环节中,参赛者需要回答关于Python语言基础、特性和应用的问题,来展示对Python的理解和掌握程度。 而在编程实践环节中,CEC会发布一系列编程题目,要求参赛者使用Python语言解决问题。这些问题可能涉及算法、数据结构、字符串处理、文件操作、网络编程等方面。参赛者需要充分运用所学的Python知识,写出有效且高效的代码来实现问题的解决方案,并提交给CEC评审团队进行评估。 CEC 2017 Python的目的是促进Python编程技能的提升和交流,鼓励参赛者展示他们在Python编程方面的才能和创新。此外,该竞赛也为各个行业培养了一批具备Python编程能力的人才,推动了Python在工业界的普及与应用。 总之,CEC 2017 Python竞赛是为了展示和推广Python编程技能,在理论和实践两个方面对参赛者进行评估,以促进Python在学术和工业领域的应用和发展。 ### 回答3: "cec 2017python" 指的是“中国电子竞技大赛2017-Python编程挑战赛”。这是中国举办的一场面向Python编程爱好者的竞赛。该竞赛旨在促进Python编程技能的发展和推广,并为参赛者提供一个锻炼自己编程技能的机会。 “cec 2017python”竞赛对参赛选手而言是一次重要的机会。参赛者有机会展示自己在Python编程方面的技巧与创新能力。通过参与这样的比赛,他们可以学到更多关于Python编程语言的知识和技术,并且可以与其他同样对Python编程感兴趣的人交流和分享经验。 Python编程语言在近年来越来越受欢迎。它的简洁语法和易读性使其成为许多编程新手学习的首选语言Python在数据科学、人工智能、网络开发等领域也有广泛的应用。因此,参加cec 2017python比赛的选手将有机会了解到Python编程语言在不同领域的应用情况,并且可以通过与其他参赛者的交流,拓宽自己的技术视野和思维方式。 总之,cec 2017python竞赛提供了一个展示和提升自己在Python编程领域能力的机会。不仅可以增加对Python语言的了解,还可以与其他编程爱好者进行交流和学习。对于对编程充满热情的人来说,这是一个很好的机遇。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值