当前位置: 首页 > article >正文

多目标优化算法——基于分解的多目标进化算法(MOEA-D)

MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition

一、算法简介
  1. 简介:本文提出了一种基于分解的多目标进化算法(MOEA/D)。它将多目标优化问题分解为多个标量优化子问题,并同时进行优化。每个子问题仅利用其相邻子问题的信息进行优化,使得MOEA/D每代的计算复杂度低于MOGLS和非支配排序遗传算法II (NSGA-II)。实验结果表明,采用简单分解方法的MOEA/D多目标0-1背包问题和连续多目标优化问题上优于或近似于MOGLS和NSGA-II。结果表明,采用目标归一化的MOEA/D方法可以处理不等尺度的目标,而采用高级分解方法的MOEA/D方法可以为有3个目标问题的测试实例生成一组分布非常均匀的解。
  2. 多目标优化问题的形式化定义为

M i n i m i z e F ( x ) = [ f 1 ( x ) , f 2 ( x ) , … , f m ( x ) ] Minimize F(x) = [f_1(x), f_2(x), \dots, f_m(x)] MinimizeF(x)=[f1(x),f2(x),,fm(x)]

  • x∈X: 决策变量空间

  • F(x)∈Y: 目标空间

  • m: 目标数量。

    由于多个目标之间可能存在冲突(例如,一个目标的改进会导致另一个目标的恶化),无法同时优化所有目标,需要找到一组折衷解,称为帕累托最优解。MOEA-D算法广泛应用于工程优化、资源分配、路径规划等领域,尤其是在多个相互冲突的目标之间寻求平衡时表现出色

  1. MOEA-D的特点:
    • MOEA/D为多目标进化计算中引入分解方法提供了一种简单而有效的方法。
    • 可以更容易处理适应度分配和多样性维护等问题。
    • 与NSGA-II和MOGLS相比,MOEA/D每代的计算复杂度更低
    • 目标归一化技术可以使MOEA/D能处理不同尺度的目标。
    • 使用标量优化方法,每个解决方案都与一个标量优化问题相关联
二、问题分解
  1. 加权和法分解(Weighted Sum Approach)

    将所有目标的线性加权和作为单目标函数,假设待优化的多目标问题有m个目标,该函数通过一个非负权重向量

λ ⃗ = ( λ 1 … … λ m ) \vec{λ}=({λ}_{1}……{λ}_{m}) λ =(λ1……λm)

加权到每个目标上将问题转换为单目标问题。每一个单目标问题都可以如下表示,

​ 不同的问题有不同的权重向量,对于所有的i=1,2,…,m,λi>=0,权重和为1

​ 缺点:在最优Pareto面的形状为非凸面的情况下,这种方法并不能获得每一个Pareto最优向量。为此,人们将其他技术,如 ε约束( ε -constraint)等,结合到该方法中。

  1. 切比雪夫(Tchebycheff)法分解

    通过将每个目标的目标值与理想点之间的差距与一个权重向量相乘,来衡量解的质量

    最小化最大距离

在这里插入图片描述

Zi=min{fi(x)|x∈Ω}*

Z*为参考点(代表算法理想值,最小化问题取某个目标上的出现过的最小值作为该目标上的理想位置

缺点:它的聚合函数对于连续的MOP来说不是平滑的。

img

  1. 边界交叉法分解

    最大化连续MOP问题的PF前沿会是目标函数集的右上部分最小化MOP的PF前沿是左下部分

    当处理最小化问题时:
    在这里插入图片描述

    约束确保 F(x)总是在 L上,即方向为 λ 并通过 Z*的直线

在这里插入图片描述

缺点是必须处理等式约束。我们使用惩罚法来处理该约束(惩罚边界交叉法):
在这里插入图片描述

当处理最小化问题时:

在这里插入图片描述

θ > 0 为预定义惩罚参数,一般取5

在这里插入图片描述

三、邻域

在这里插入图片描述

四、算法流程
  1. 符号定义

在这里插入图片描述

  1. 采用Tchebycheff 法的算法流程:
    在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/465589.html

相关文章:

  • 网络安全之高防IP的实时监控精准防护
  • 开发培训-慧集通(iPaaS)集成平台脚本开发Groovy基础培训视频
  • java中static和const和final的区别
  • uni-app深度解码:跨平台APP开发的核心引擎与创新实践
  • Chapter4.2:Normalizing activations with layer normalization
  • Servlet解析
  • [C++]vector(超详细)
  • Docker入门常用命令总结
  • 软考教材重点内容 信息安全工程师 第 12 章网络安全审计技术原理与应用
  • 牛客网刷题 ——C语言初阶——OR76 两个整数二进制位不同个数
  • 计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台
  • Swift Combine 学习(三):Subscription和 Subscriber
  • React Router 用法概览
  • Redis的数据过期清除策略
  • 周亚辉投资笔记2025系列第1篇:机器人时代的社会结构模型与十年后中国首富预测
  • xdoj ROT13加密
  • 【现代摄像头作为一种视频输入摄像头】
  • B4004 [GESP202406 三级] 寻找倍数
  • /ete/security/limits.conf参数详解
  • 小程序学习07—— uniapp组件通信props和$emit和插槽语法
  • 云计算复习
  • 聊天机器人Rasa面试内容整理-Rasa NLU 与 Rasa Core 的功能与区别
  • 低代码引擎插件开发:开启开发的便捷与创新之路
  • AI 将在今年获得“永久记忆”,2028美国会耗尽能源储备
  • 【时时三省】(C语言基础)常见的动态内存错误
  • Spring 核心技术解析【纯干货版】- IV:Spring 切面编程模块 Spring-Aop 模块精讲