最新高性能多目标优化算法:融合高斯扰动与竞争学习的多目标加权平均算法(MOWAA)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码

一、加权平均算法

加权平均算法(Weighted Average Algorithm, WAA)是2024年提出的一种新型元启发式优化算法,其灵感来源于加权平均位置概念。WAA算法通过优化种群的加权平均位置来平衡全局搜索(Exploration)与局部开发(Exploitation),以提高搜索效率、加速收敛,并改善算法的整体性能。

WAA算法的核心思想是利用加权平均位置来指导搜索过程,以平衡全局搜索(Exploration)与局部开发(Exploitation)。这种算法通过在每次迭代中首先建立整个种群的加权平均位置,然后基于这个位置来寻找最优解。WAA算法通过两种移动策略来实现这一目标:一种是通过三种不同的趋势基于加权平均位置和每次迭代获得的最佳解来有效探索可行的搜索空间;另一种是利用第一种趋势快速接近每次迭代中识别出的最佳解,从而缩小搜索空间,同时采用第二种趋势来最小化陷入局部最优的风险。移动策略的确定,无论是专注于探索还是开发,都依赖于与随机常数和迭代次数相关的参数函数。

算法描述

  1. 初始化:随机生成一组候选解作为初始种群。
  2. 加权平均位置:计算每个个体的适应度,并根据适应度对种群进行排序,然后计算加权平均位置。
  3. 定义搜索阶段:根据参数函数确定是进行探索还是开发。如果参数函数值大于等于0.5,则候选解将根据开发能力移动;如果小于0.5,则候选解将根据探索能力移动。
  4. 探索阶段:模拟搜索代理群体如何以高概率向搜索空间移动,以利用新的全局最优值。
  5. 开发阶段:利用Levy飞行等策略寻找全局最优位置,同时调整搜索空间以避免陷入局部最优。

算法步骤

  1. 初始化种群:在搜索空间内随机生成初始种群。
  2. 计算适应度:对种群中的每个个体计算适应度。
  3. 计算加权平均位置:根据个体的适应度计算整个种群的加权平均位置。
  4. 确定搜索策略:根据参数函数值决定是进行探索还是开发。
  5. 探索或开发:根据确定的策略,对种群中的个体进行位置更新。
  6. 更新全局最优:如果找到更好的解,则更新全局最优值。
  7. 迭代:重复步骤2-6,直到满足停止条件(如达到最大迭代次数)。

参考文献:

[1]Cheng, Jun and Wim De Waele. "Weighted average algorithm: A novel meta-heuristic optimization algorithm based on the weighted average position concept." Knowl. Based Syst. 305 (2024): 112564.

二、多目标加权平均算法

针对单目标优化问题,加权平均算法已显示出其有效性。然而,在面对多目标优化问题时,需要一种能够同时处理多个冲突目标的算法。因此,本文提出多目标加权平均算法(Multi-objective Weighted Average Algorithm, MOWAA)。MOWAA是加权平均算法的多目标扩展,并创新性地融合了竞争学习与高斯扰动,它能够有效地解决多目标优化问题。

为了评估MOWAA的性能,我们将其应用于一组标准的基准测试函数,这组函数包括TP1-TP10及工程应用---盘式制动器设计。这些函数在测试多目标优化算法的效率方面被广泛采用。此外,为了全面评估算法的收敛性和解的多样性,我们使用了六种不同的性能度量指标:GD、IGD、HV、Spacing、Spread和Coverage。通过这些指标的综合分析,我们可以有效地评估该算法在处理多目标优化问题时的整体性能。
盘式制动器设计的数学模型如下:

MOWAA算法的执行步骤可以描述如下:

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

  1. GD(Generational Distance)世代距离

    GD指标用于评价获得的帕累托前沿(PF)和最优帕累托前沿之间的距离。对于每个属于PF的解,找到与其最近的最优帕累托前沿中的解,计算其欧式距离,GD为这些最短欧式距离的平均值。GD值越小,代表收敛性越好,找到的PF与最优帕累托前沿越接近。

  2. IGD(Inverted Generational Distance)逆世代距离

    IGD与GD相似,但同时考虑了多样性和收敛性。对于真实的最优帕累托前沿中的每个解,找到与其最近的PF中的解,计算其欧式距离,取平均值而不需开方。如果PF的数量大于最优帕累托前沿的数量,那么IGD就能最完整地表达PF的性能,IGD值越小,代表算法多样性和收敛性越好。

  3. HV(Hypervolume)超体积

    HV也称为S metric,用于评价目标空间被一个近似集覆盖的程度,是最为普遍的一种评价指标。需要用到一个参考点,HV值为PF与参考点之间组成的超立方体的体积。HV的比较不需要先验知识,不需要找到真实的帕累托前沿。如果某个近似集A完全支配另一个近似集B,那么A的超容量HV会大于B,因此HV完全可以用于Pareto比较。

  4. Spacing

    Spacing是衡量算法生成的非支配解集中各个解之间平均距离的指标。Spacing值越小,表示解集内部的解越密集,多样性越高。

  5. Spread

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

  6. Coverage

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

2.2、部分MATLAB代码

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

2.3、部分结果






三、完整MATLAB代码

见下方名片

相关推荐
向哆哆43 分钟前
卷积与动态特征选择:重塑YOLOv8的多尺度目标检测能力
yolo·目标检测·目标跟踪·yolov8
gu201 小时前
c#编程:学习Linq,重几个简单示例开始
开发语言·学习·c#·linq
MZWeiei1 小时前
PTA:运用顺序表实现多项式相加
算法
GISer_Jing1 小时前
Javascript排序算法(冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序)详解
javascript·算法·排序算法
cookies_s_s1 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
小蒜学长2 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
不想编程小谭2 小时前
力扣LeetCode: 2506 统计相似字符串对的数目
c++·算法·leetcode
羊小猪~~2 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
水蓝烟雨2 小时前
[HOT 100] 2187. 完成旅途的最少时间
算法·hot 100
余多多_zZ2 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统