一、教育竞争优化算法介绍

教育竞争优化算法(Educational Competition Optimizer,ECO)是一种模拟教育竞争过程的元启发式算法,用于解决复杂的优化问题。ECO算法的设计理念是模仿学生在教育体系中的竞争,通过这种竞争机制来搜索和优化解决方案。以下是ECO算法的详细介绍:

1. 算法灵感

ECO算法的灵感来源于教育领域中的竞争现象,尤其是在教育资源分配中的竞争。这种竞争可以类比于优化问题中的搜索过程,其中“学生”(解决方案)竞争以获得“学校”(最优解)的录取。

2. 算法阶段

ECO算法将搜索过程分为三个阶段,分别对应于教育体系中的小学、中学和高中阶段。每个阶段都有不同的搜索策略:

  • 小学阶段:在这个阶段,学校(解决方案)根据种群的平均位置来确定其教学位置,而学生(其他解决方案)则根据与最近学校的距离来设定目标。

  • 在这里插入图片描述

  • 中学阶段:在这个阶段,学校在选择教学位置时会考虑种群的平均位置和最优位置。学生则根据邻近学校的距离来设定个人目标。

在这里插入图片描述

  • 高中阶段:在这个阶段,学校在选择教学位置时会考虑种群的平均、最优和最差位置。学生则都朝着当前最优的学校位置努力。
    在这里插入图片描述

3. 种群初始化

ECO算法使用逻辑混沌映射来初始化种群,这是一种模拟社会现象的数学方法,用于生成初始解决方案的随机分布。

4. 数学模型

ECO算法的数学模型包括以下几个关键部分:

  • 位置更新:在每个阶段,学校和学生的位置会根据特定的数学公式进行更新,以模拟它们在教育竞争中的行为。

  • Levy飞行:在更新位置时,ECO算法使用Levy飞行来模拟自然界中的随机搜索行为,这是一种有效的全局搜索策略。

  • 适应性步长:ECO算法中的步长是适应性的,会根据当前的迭代次数和种群的最优解来动态调整。

5. 搜索策略

ECO算法在每个阶段都采用了不同的搜索策略,以平衡探索(全局搜索)和利用(局部搜索):

  • 探索:通过模拟学生的随机移动来探索新的解决方案空间。

  • 利用:通过模拟学校对最优位置的调整来细化当前的解决方案。

6.算法流程

这篇文章中提出的教育竞争优化器(ECO)算法的流程可以概括为以下几个主要步骤:
在这里插入图片描述

在这里插入图片描述

1. 初始化参数

  • 设置ECO算法的控制参数,包括种群大小、最大迭代次数等。
  • 使用逻辑混沌映射对解决方案的位置进行随机初始化。

2. 迭代过程

对于每次迭代,执行以下步骤:

2.1 计算适应度函数
  • 对当前种群中的每个解决方案计算其适应度值。
2.2 确定最佳和最差位置
  • 在当前种群中找出最佳(最优)和最差(最劣)的解决方案。
2.3 计算中间变量
  • 计算用于更新位置的中间变量,如随机数、耐心值等。
2.4 阶段性竞争更新
  • 根据当前迭代次数,确定处于哪个教育阶段(小学、中学或高中),并执行相应的更新策略。
2.4.1 小学阶段
  • 更新学校(前20%的种群)和学生(剩余80%的种群)的位置。
2.4.2 中学阶段
  • 更新学校(前10%的种群)和学生(剩余90%的种群)的位置,考虑平均和最优位置。
2.4.3 高中阶段
  • 更新学校(前10%的种群)的位置,考虑平均、最优和最差位置。所有学生都朝着当前最佳位置努力。

3. 选择最优解

  • 使用正向贪婪选择机制从当前迭代中选择最优解。

4. 终止条件

  • 检查是否达到最大迭代次数或其他终止条件。如果满足,则停止迭代;否则,返回步骤2继续迭代。

5. 输出结果

  • 返回找到的最佳解决方案。

参考文献
[1]Lian, Junbo, Ting Zhu, Ling Ma, Xincan Wu, Ali Asghar Heidari, Yi Chen, Huiling Chen, and Guohua Hui. 2024. “The Educational Competition Optimizer.” International Journal of Systems Science 55 (15): 3185–3222. doi:10.1080/00207721.2024.2367079.

二、多目标教育竞争优化算法

由于教育竞争优化算法(ECO)仅能求解单目标优化问题,为了求解多目标优化问题,本文提出多目标教育竞争优化算法(Multi-objective Educational Competition Optimizer,MOECO)。MOECO是教育竞争优化算法(ECO)的多目标变体,能够有效求解多目标优化问题,为了检验本文所提算法的性能,将其应用于基准函数ZDT1、ZDT2、ZDT3、ZDT4、ZDT6的求解,并采用六种性能评价指标(GD、IGD、HV、Spacing、Spread、Coverage)对所提算法的收敛性和多样性进行有效评估。
在这里插入图片描述
MOECO首先对种群进行初始化,采取随机初始化方式。其次,算法对初始化的种群进行筛选并利用筛选的后代交配产生子代个体。接着,利用环境选择算子对子代进行筛选以便进行下一轮迭代。直到满足算法的终止条件,最后一次环境选择出来的所有个体即为最终的近似 Pareto 解集。环境选择算子的作用主要用于子代个体的选择,被选择的个体能够支配种群中的其他个体或者互相不支配,称其为精英个体。通过算法的迭代运算,每次均选出精英个体,反复如此即可求得问题的解。

2.1、六种性能评价指标介绍

  1. Generational Distance (GD)

    • GD指标衡量算法生成的非支配解集与真实Pareto前沿之间的平均距离。它通过计算真实Pareto前沿上每个点到最近非支配解的欧氏距离,然后取这些距离的平均值来实现。GD值越小,表示算法生成的解集越接近真实Pareto前沿,反映了算法的收敛性。
  2. Inverted Generational Distance (IGD)

    • IGD指标衡量算法生成的非支配解集与真实Pareto前沿之间的距离,但与GD不同的是,IGD是从真实Pareto前沿向算法生成的解集计算距离。它计算每个真实Pareto前沿上的点到最近非支配解的欧氏距离的平均值。IGD值越小,表示算法生成的解集越接近真实Pareto前沿。
  3. Hypervolume (HV)

    • HV指标衡量算法生成的非支配解集在目标空间中覆盖的体积。通常,这个体积是在目标函数的最小值和最大值之间定义的。HV值越大,表示算法生成的解集在目标函数空间中覆盖的范围越广,反映了算法的收敛性和多样性。
  4. Spacing

    • Spacing指标衡量算法生成的非支配解集中各个解之间的平均距离。它通过计算解集中每个解到其他解的最小距离的标准差来实现。Spacing值越小,表示解集内部的解越密集,多样性越高。
  5. Spread

    • Spread指标衡量算法生成的非支配解集在Pareto前沿上的分散程度。高的Spread值意味着解集在前沿上分布得更均匀,没有聚集在某个区域,反映了算法的多样性。
  6. Coverage

    • Coverage指标衡量一个算法生成的Pareto前沿覆盖另一个算法生成的Pareto前沿的比例。如果算法A的Coverage指标高于算法B,那么意味着算法A生成的Pareto前沿在某种程度上包含了算法B生成的Pareto前沿,反映了算法的广泛性。

2.2、部分MATLAB代码

%% 参数说明
%testProblem 测试问题序号
%Name 测试问题名称
%dim 测试问题维度
%numObj测试问题目标函数个数
%lb测试问题下界
%ub测试问题上界
%SearchAgents_no 种群大小
%Max_iter最大迭代次数
%Fbest 算法求得的POF
%Xbest 算法求得的POS
%TurePF 测试问题的真实pareto前沿
%Result 评价指标随迭代次数的变化值
testProblem=5;
[Name,dim,numObj,lb,ub]=GetProblemInfoZDT(testProblem);%获取测试问题的相关信息
SearchAgents_no=200;%种群大小 
Max_iter=200;%最大迭代次数
[Fbest,Xbest,TurePF,Result] = MOECO(Max_iter,SearchAgents_no,Name,dim,numObj,lb,ub);%算法求解

2.3、部分结果

ZDT1:
在这里插入图片描述
在这里插入图片描述
ZDT3:
在这里插入图片描述
在这里插入图片描述
ZDT6:
在这里插入图片描述
在这里插入图片描述

三、完整MATLAB代码

见下方名片

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部