基于成功历史记录的参数自适应差分进化算法代码论文
时间: 2023-05-27 13:04:17 浏览: 70
对于流行度不断增长的差分进化算法来说,参数设置对算法最终的性能十分关键。为了解决此问题,本文提出了一种基于成功历史记录的参数自适应差分进化算法。该算法通过记录每个个体的成功情况,并自适应地调整差分进化算法的参数,以实现更好的性能。
具体来说,该算法按照以下步骤进行:
1. 初始化种群:随机初始化种群,并记录每个个体的成功率(即被选中作为目标向量的次数占总次数的比例)。
2. 计算权重:根据每个个体的成功率计算其权重。权重越高的个体在后续进化过程中被选择的概率越大。
3. 参数适应性调整:根据种群中所有个体的成功率,自适应地调整差分进化算法的参数。具体来说,对于交叉率、变异率和缩放因子,分别按照以下公式进行更新:
CR = CR_min + (CR_max - CR_min) * (S - S_min) / (S_max - S_min)
F = F_min + (F_max - F_min) * (S - S_min) / (S_max - S_min)
SF = SF_min + (SF_max - SF_min) * (S - S_min) / (S_max - S_min)
其中,CR、F和SF分别为交叉率、变异率和缩放因子,CR_min、CR_max、F_min、F_max、SF_min和SF_max分别为三个参数的取值范围,S为种群中所有个体的平均成功率,S_min和S_max分别为种群中所有个体成功率的最小和最大值。
4. 差分进化演化:根据权重和参数进行差分进化演化。在每次进化中,从种群中按权重选择两个个体作为父代,然后根据交叉率和缩放因子生成一个子代。如果子代优于其中较差的父代,则将其作为后续进化的候选个体,并更新个体的成功率。
5. 结束:如果满足某个终止条件(如达到最大进化代数或目标函数值已经足够小),则停止进化。
为了验证所提出的算法的有效性,本文将其应用于三个标准测试函数(Sphere、Rosenbrock和Griewank),并与其他具有相似进化策略的算法进行比较。实验结果表明,所提出的算法在所有测试函数上都取得了较好的性能,证明了其有效性和适用性。
总之,本文提出了一种基于成功历史记录的参数自适应差分进化算法,并将其应用于三个标准测试函数上进行验证。实验结果表明,该算法比其他具有相似进化策略的算法表现更好,证明了其有效性和适用性。