欢迎光临
我们一直在努力

多目标鲸鱼优化算法-MOWOA求解46个多目标函数及一个工程应用,包含四种评价指标,MATLAB代码

多目标鲸鱼优化算法(Multi‑Objective Whale Optimization Algorithm, MOWOA)是基于单目标鲸鱼优化算法(WOA)扩展而来的多目标元启发式算法,核心是将座头鲸气泡网捕食行为与帕累托最优、非支配排序、外部存档等多目标优化机制融合,在平衡全局探索与局部开发的同时,高效逼近多目标优化问题(MOP)的帕累托最优前沿(PF)。其兼具WOA参数少、收敛快的优势,又适配多目标冲突场景,是工程与科学多目标优化的主流算法之一。
参考文献:
[1]I. R. Kumawat, S. J. Nanda and R. K. Maddila, “Multi-objective whale optimization,” TENCON 2017 – 2017 IEEE Region 10 Conference, Penang, Malaysia, 2017, pp. 2747-2752, doi: 10.1109/TENCON.2017.8228329.


一、算法基础与核心思想

1. 单目标WOA原理(MOWOA的基础)

WOA模拟座头鲸气泡网捕食的三种行为:

  • 包围猎物(Encircling Prey):向当前最优解靠近
    D⃗=∣C⃗⋅X⃗∗(t)−X⃗(t)∣\\vec{D}=|\\vec{C}\\cdot\\vec{X}^*(t)-\\vec{X}(t)|D=∣C⋅X∗(t)−X(t)∣
    X⃗(t+1)=X⃗∗(t)−A⃗⋅D⃗\\vec{X}(t+1)=\\vec{X}^*(t)-\\vec{A}\\cdot\\vec{D}X(t+1)=X∗(t)−A⋅D
    其中:A⃗=2ar1⃗−a\\vec{A}=2a\\vec{r_1}-aA=2ar1​​−a,C⃗=2r2⃗\\vec{C}=2\\vec{r_2}C=2r2​​;aaa从2线性递减到0;r1⃗,r2⃗∈[0,1]\\vec{r_1},\\vec{r_2}\\in[0,1]r1​​,r2​​∈[0,1]随机向量;X⃗∗\\vec{X}^*X∗为当前最优解。

  • 气泡网攻击(Bubble-net Attack):两种策略(概率ppp选择)

    • 收缩包围(Shrinking Encircling):∣A∣<1|A|<1∣A∣<1时,缩小搜索范围(局部开发)
    • 螺旋更新(Spiral Updating):沿螺旋路径逼近最优解
      X⃗(t+1)=D⃗′⋅ebl⋅cos⁡(2πl)+X⃗∗(t)\\vec{X}(t+1)=\\vec{D}'\\cdot e^{bl}\\cdot\\cos(2\\pi l)+\\vec{X}^*(t)X(t+1)=D′⋅ebl⋅cos(2πl)+X∗(t)
      其中:D⃗′=∣X⃗∗(t)−X⃗(t)∣\\vec{D}'=|\\vec{X}^*(t)-\\vec{X}(t)|D′=∣X∗(t)−X(t)∣;bbb为螺旋形状常数;l∈[−1,1]l\\in[-1,1]l∈[−1,1]随机数。
  • 随机搜索(Search for Prey):∣A∣>1|A|>1∣A∣>1时,随机选择个体引导,扩大搜索范围(全局探索)
    D⃗=∣C⃗⋅X⃗rand(t)−X⃗(t)∣\\vec{D}=|\\vec{C}\\cdot\\vec{X}_{rand}(t)-\\vec{X}(t)|D=∣C⋅Xrand​(t)−X(t)∣
    X⃗(t+1)=X⃗rand(t)−A⃗⋅D⃗\\vec{X}(t+1)=\\vec{X}_{rand}(t)-\\vec{A}\\cdot\\vec{D}X(t+1)=Xrand​(t)−A⋅D

2. MOWOA的核心扩展(多目标适配)

MOWOA在WOA基础上,引入多目标优化核心机制:

  • 帕累托支配(Pareto Dominance):判断解的优劣,寻找非支配解集
  • 非支配排序(Non-dominated Sorting):将种群划分为不同前沿(Front),优先保留前沿1的解
  • 拥挤距离(Crowding Distance):衡量解的分布稀疏度,维持种群多样性
  • 外部存档(External Archive):存储全局非支配解,作为迭代引导
  • 领导者选择(Leader Selection):从存档中选解引导搜索,避免单一个体主导

二、MOWOA算法流程(详细步骤)

1. 初始化
  • 随机生成初始种群X⃗i(i=1,2,…,N)\\vec{X}_i(i=1,2,…,N)Xi​(i=1,2,…,N),NNN为种群规模
  • 计算每个个体的多目标适应度值
  • 初始化外部存档(Archive),存入初始非支配解
  • 设置迭代次数TmaxT_{max}Tmax​、参数aaa、bbb、ppp等
2. 迭代更新(核心循环)

For 迭代次数t=1t=1t=1 to TmaxT_{max}Tmax​:

  • 更新控制参数

    • a=2−2tTmaxa=2-\\frac{2t}{T_{max}}a=2−Tmax​2t​(线性递减)
    • 随机生成r1⃗,r2⃗,l,p\\vec{r_1},\\vec{r_2},l,pr1​​,r2​​,l,p(p∈[0,1]p\\in[0,1]p∈[0,1])
    • 计算A⃗=2ar1⃗−a\\vec{A}=2a\\vec{r_1}-aA=2ar1​​−a,C⃗=2r2⃗\\vec{C}=2\\vec{r_2}C=2r2​​
  • 个体位置更新(基于多目标引导)
    For 每个鲸鱼个体X⃗i\\vec{X}_iXi​:

    • 从外部存档中选择一个领导者解X⃗∗\\vec{X}^*X∗(常用随机/拥挤距离选择)
    • 按概率ppp选择更新策略:
      • Case 1:p≤0.5p\\le0.5p≤0.5
        • 若∣A∣≤1|A|\\le1∣A∣≤1:包围/收缩,用X⃗∗\\vec{X}^*X∗更新
          X⃗i(t+1)=X⃗∗(t)−A⃗⋅∣C⃗⋅X⃗∗(t)−X⃗i(t)∣\\vec{X}_i(t+1)=\\vec{X}^*(t)-\\vec{A}\\cdot|\\vec{C}\\cdot\\vec{X}^*(t)-\\vec{X}_i(t)|Xi​(t+1)=X∗(t)−A⋅∣C⋅X∗(t)−Xi​(t)∣
        • 若∣A∣>1|A|>1∣A∣>1:随机搜索,选随机个体X⃗rand\\vec{X}_{rand}Xrand​更新
          X⃗i(t+1)=X⃗rand(t)−A⃗⋅∣C⃗⋅X⃗rand(t)−X⃗i(t)∣\\vec{X}_i(t+1)=\\vec{X}_{rand}(t)-\\vec{A}\\cdot|\\vec{C}\\cdot\\vec{X}_{rand}(t)-\\vec{X}_i(t)|Xi​(t+1)=Xrand​(t)−A⋅∣C⋅Xrand​(t)−Xi​(t)∣
      • Case 2:p>0.5p>0.5p>0.5
        • 螺旋气泡网攻击
          X⃗i(t+1)=∣X⃗∗(t)−X⃗i(t)∣⋅ebl⋅cos⁡(2πl)+X⃗∗(t)\\vec{X}_i(t+1)=|\\vec{X}^*(t)-\\vec{X}_i(t)|\\cdot e^{bl}\\cdot\\cos(2\\pi l)+\\vec{X}^*(t)Xi​(t+1)=∣X∗(t)−Xi​(t)∣⋅ebl⋅cos(2πl)+X∗(t)
  • 环境选择(种群与存档更新)

    • 合并当前种群+外部存档,得到混合种群
    • 对混合种群执行非支配排序,划分前沿
    • 按前沿优先级+拥挤距离筛选,保留NNN个个体作为新种群
    • 更新外部存档:仅保留混合种群中的非支配解,控制存档规模
  • 终止判断

    • 达到TmaxT_{max}Tmax​则停止,返回外部存档的帕累托最优解集

  • 三、关键机制详解

    1. 非支配排序与拥挤距离
    • 非支配排序:将解按支配关系分层,前沿1为最优非支配集
    • 拥挤距离:同一前沿内,解的目标空间分布度量;距离越大,多样性越好,用于筛选与存档维护
    2. 外部存档(Archive)
    • 作用:存储全局最优非支配解,作为迭代引导,避免丢失优质解
    • 维护策略:
      • 新解加入前,剔除被支配解
      • 存档溢出时,按拥挤距离删除分布密集的解
      • 常用网格法或拥挤距离法管理存档
    3. 领导者选择策略

    MOWOA不再依赖单一全局最优,而是从外部存档选领导者,常见策略:

    • 随机选择:简单高效,保持多样性
    • 拥挤距离优先:选分布稀疏的解,提升全局探索
    • 偏好导向:按决策者偏好选解,适配工程决策

    四、MOWOA的特点与优势

    1. 核心优势
    • 原理简洁,参数少:仅需种群规模、迭代次数、螺旋常数bbb等,易实现
    • 探索-开发平衡好:aaa线性递减、∣A∣|A|∣A∣控制全局/局部搜索,避免早熟
    • 多目标适配性强:结合帕累托机制,有效求解冲突目标
    • 收敛速度快:相比NSGA-II、MOPSO等,在部分测试集上收敛更快
    2. 局限性
    • 高维、大规模问题时,非支配排序复杂度高
    • 需合理设置存档规模,过小易丢失解,过大增加计算量
    • 对离散/组合优化问题,需额外编码适配

    五、应用场景

    MOWOA广泛用于多目标优化决策场景:

    • 工程设计:结构轻量化+强度优化、电路参数多目标设计
    • 能源系统:风电/光伏出力优化(成本+效率+环保)
    • 路径规划:机器人路径(距离+时间+能耗)
    • 图像处理:特征选择(准确率+维度)、图像检索
    • 通信网络:资源分配(吞吐量+延迟+能耗)

    六、MOWOA应用

    MOWOA用于求解46个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ7、WFG1-WFG10、UF1-UF10、CF1-CF10、Kursawe、Poloni、Viennet2、Viennet3)以及1个工程应用(盘式制动器设计),并采用IGD、GD、HV、SP进行评价。

    6.1部分代码

    close all;
    clear ;
    clc;
    %%
    % TestProblem测试问题说明:
    %一共46个多目标测试函数,详情如下:
    %1-5:ZDT1、ZDT2、ZDT3、ZDT4、ZDT6
    %6-12:DZDT1-DZDT7
    %13-22:wfg1-wfg10
    %23-32:uf1-uf10
    %33-42:cf1-cf10
    %43-46:Kursawe、Poloni、Viennet2、Viennet3
    %47 盘式制动器设计 温泽宇,谢珺,谢刚,续欣莹.基于新型拥挤度距离的多目标麻雀搜索算法[J].计算机工程与应用,2021,57(22):102-109.
    %%
    TestProblem=47;%1-47
    MultiObj = GetFunInfo(TestProblem);
    MultiObjFnc=MultiObj.name;%问题名
    % Parameters
    params.Np = 100; % Population size
    params.Nr = 100; % Repository size
    params.maxgen =100; % Maximum number of generations
    [x,f] = MOwoa(params,MultiObj);

    6.2部分结果

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    八、完整MATLAB代码见下方名片

    赞(0)
    未经允许不得转载:171主机测评 » 多目标鲸鱼优化算法-MOWOA求解46个多目标函数及一个工程应用,包含四种评价指标,MATLAB代码
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址