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

ops/2025/1/1 19:13:00/

一、加权平均算法

加权平均算法(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代码

%% 参数说明
%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代码

见下方名片


http://www.ppmy.cn/ops/146070.html

相关文章

Linux-Ubuntu之串口通信

Linux-Ubuntu之串口通信 一,串口通信1.串口通信寄存器配置2.串口通信软件实现①手动波特率②自动波特率③主函数 二,printf和scanf实现串口的输入显示 一,串口通信 1.串口通信寄存器配置 串口通信利用接口是这个TTL,下载程序用的…

深度学习笔记1:神经网络与模型训练过程

参考博客:PyTorch深度学习实战(1)——神经网络与模型训练过程详解_pytorch 实战-CSDN博客 人工神经网络 ANN:张量及数学运算的集合,排列方式近似于松散的人脑神经元排列 组成 1)输入层 2)隐…

golang,多个proxy拉包的处理逻辑

在Go语言中,当你设置了多个代理(GOPROXY)时,Go工具链会按照你设置的顺序尝试每个代理。如果第一个代理失败,它会尝试下一个代理,直到成功获取到模块或者所有代理都尝试失败。最后,如果所有代理都…

【RabbitMQ高级篇】消息可靠性问题(1)

目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…

Kafka消息不丢失与重复消费问题解决方案总结

1. 生产者层面 异步发送与回调处理 异步发送方式:生产者一般使用异步方式发送消息,异步发送有消息和回调接口两个参数。在回调接口的重写方法中,可通过异常参数判断消息发送状态。若消息发送成功,异常参数为null;若发…

windows系统下使用cd命令切换到D盘的方法

windows系统下使用cd命令切换到D盘的方法 系统环境配置 win10系统原装C盘后期自己安装的硬盘D盘 python3.8安装在D盘中 问题说明 winR打开终端,使用 cd d:命令,无法将当前目录切换到D盘 解决方法 方法一:使用下面这条命令 cd /d d:运…

python笔记随记

前言 笔记记录 内容 1.关键词条件: 代码块 2.总是只有一个if语句被执行,所有需要的elif语句在if语句之后,它们的先后顺序很重要,当前边的的if或elif已经执行则下边的elif则全部跳过,如果希望确保一个语句被执行则…

Pinpoint 是一个开源的分布式追踪系统

pinpointagent2.2.2.tar 是 Pinpoint 的一个版本,Pinpoint 是一个开源的分布式追踪系统,专门用于对 Java 应用程序进行性能监控、日志记录和故障诊断。它可以帮助开发人员和运维人员追踪和分析微服务架构中服务之间的调用链,并进行性能分析。…