多目标优化算法——基于聚类的不规则Pareto前沿多目标优化自适应进化算法(CA-MOEA)

基于聚类的不规则Pareto前沿多目标优化自适应进化算法(CA-MOEA)

一、算法简介
  1. 简介:

    现有的多目标进化算法(moea)在具有规则Pareto前沿且Pareto最优解在目标空间上连续分布的多目标优化问题(MOPs)上表现良好。当Pareto前沿不连续或退化时,现有的大多数算法都不能得到很好的结果。为了解决这一问题,本文提出了一种基于聚类的自适应MOEA (CA-MOEA)算法来求解具有不规则Pareto前沿的MOPs。

    其主要思想是自适应地产生一组聚类中心,以指导每一代的选择,保持多样性和加速收敛。研究结果证明了CA-MOEA在多目标优化中的竞争力,特别是对于不规则Pareto前沿问题。此外,CA-MOEA在碳纤维成形过程中拉伸参数的优化方面表现良好。

  2. 现有算法的局限性:

    • 基于指标的MOEAs: 在不规则Pareto前沿情况下,非Pareto最优解可能会对指标贡献更大,导致选择偏差。
    • 基于分解的MOEAs: 需要预先定义一组权重向量,但在不规则Pareto前沿情况下,大量权重向量会被浪费,导致性能下降。
    • 基于Pareto支配的MOEAs: 多样性维护机制(如拥挤距离)在不规则Pareto前沿情况下可能会失效,导致丢失重要的解。
    • 协同进化MOEAs(CMOEAs): 处理具有复杂相互依赖性的问题时,决策变量分解变得困难,且保持种群多样性也面临挑战。
  3. 聚类:

    • 划分方法(Partitioning Methods):例如:k-means、k-中心点(k-centroid)及其变体。这类方法需要预先定义聚类中心,且结果严重依赖于初始聚类中心的选择。
    • 基于密度的方法(Density-Based Methods):例如:基于密度的空间聚类应用噪声(DBSCAN)。这类方法将高密度区域视为簇,并将其与低密度区域分开。然而,低密度区域中的个体可能对优化具有重要意义,因此这类方法不适用于处理不规则Pareto前沿的问题。
    • 基于网格的方法(Grid-Based Methods):例如:基于统计信息网格的方法。这类方法通常不能独立工作,而是用于减少其他聚类算法的计算时间。
    • 基于模型的方法(Model-Based Methods):这类方法采用某种模型并试图找到最适合该模型的数据。其主要缺点是计算量大。
    • 层次聚类方法(Hierarchical Clustering Methods):包括**自底向上(bottom-up)和自顶向下(top-down)**两种方法。
      • 自底向上方法首先将每个数据点视为独立的簇,然后根据某种链接准则逐步合并簇,直到所有簇合并为一个。
      • 自顶向下方法则相反,首先将所有数据点视为一个簇,然后逐步将其划分为更小的簇。它不需要指定聚类的数量,也不假设数据是正态分布。
  4. 采用Ward链接准则:使同一簇内的误差平方和最小化,而使不同簇之间的误差最大化,最有可能将非支配前沿的解均匀地划分为所需数量的组。

    任意两个簇之间的距离使用如下公式计算:

在这里插入图片描述

选择距离最小的两个簇将其合并,并计算聚类中心:计算每个目标上的值,每个解在该目标上的值的和/该簇中解的个数

在这里插入图片描述

D,E合并后的聚类中心G((8+10)/2,(4+2)/2)====> (9,3)

在这里插入图片描述

二、算法流程

​ CA-MOEA采用自底向上的层次聚类方法

  1. 算法流程:

    N种群大小,g代数,M目标的数量,V决策变量数,B约束条件,Fl从1,2,3到l层的所有解的集合

    (1)随机初始化父代种群P,大小为N。

    (2)通过采用模拟二元交叉(SBX)和多项式突变产生大小为N的子代群体Q,采用精英保留机制合并父代种群P和子代种群Q为整体种群P(2N),交叉概率pc = 1.0,突变概率pm = 1/V

    (3)对P进行快速非支配排序。将组合种群P中的2N个解排序到L个非支配前沿f1, f2,…,fL。从前往后选择N个解。

    (4)如果选到l层,Fl的大小大于N,而选到l-1层,Fl的大小小于N,则选出l层的前K=N-|Fl-1|个解。

    (5)计算聚类中心。

    (6)基于聚类的选择。

    (7)选则的解数量到N个或者迭代次数到g,结束循环。

  2. 主循环
    在这里插入图片描述

  3. 计算聚类中心:

    将fl层中的解使用如下公式归一化到**[0,1]**:
    在这里插入图片描述

    使用层次聚类算法(Ward 链接准则)将第l层的个体划分为 K个簇:

    初始状态,每个个体作为一个独立的簇。根据 Ward 链接准则,合并最相似的两簇,直到达到预定的簇数量 K,计算生成的K个簇的聚类中心。

在这里插入图片描述

  1. 基于聚类的自适应环境选择:

    个体分配:

    • 计算每个个体与各个聚类中心之间的欧氏距离。
    • 将每个个体分配到与其距离最近的聚类中心。

    个体选择:

    初始化集合:

    • 初始化三个集合 T_1、T_2 和 T_3。
    • T_1用于存放每个簇中距离聚类中心最近的个体。
    • T_2用于存放nCj>=3时,每个簇中除最近个体外的其他个体。
    • T_3用于存nCj<3时,每个簇中除最近个体外的其他个体。

    个体选择:

    ​ 依次从T1,T2,T3中选取解,直至选满K个为止。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短诗《腊八粥》

《腊八粥》现•佚名已买花生同煮粥&#xff0c;粥不似&#xff0c;少年稠也不复&#xff0c;少年仇亦不赴&#xff0c;少年愁终不负&#xff0c;少年筹 &#xff08;主编目前所有分类&#xff1a; 身&#xff0c;心&#xff0c;灵思 工作&#xff0c;生活 创作 剧 让世界更…

封装深拷贝方法

前言 在今年的四月份我写了一篇有关深拷贝的博客文章 我与深拷贝_radash 深拷贝-CSDN博客。在该文章中有一个令我感到遗憾的点就是我没有实现一个自己手写的深拷贝。如今我想弥补当初的遗憾&#xff0c;在这篇文章中详细的讲述一下如何手写一个深拷贝方法。 lodash中是如何实…

在不到 5 分钟的时间内将威胁情报 PDF 添加为 AI 助手的自定义知识

作者&#xff1a;来自 Elastic jamesspi 安全运营团队通常会维护威胁情报报告的存储库&#xff0c;这些报告包含由报告提供商生成的大量知识。然而&#xff0c;挑战在于&#xff0c;这些报告的内容通常以 PDF 格式存在&#xff0c;使得在处理安全事件或调查时难以检索和引用相关…

探索 Vue.js 的动态样式与交互:一个有趣的样式调整应用

修改日期备注2025.1.3初版 一、前言 今天和大家分享在 Vue.js 学习过程中开发的超酷的小应用。这个应用可以让我们通过一些简单的交互元素&#xff0c;如复选框、下拉菜单和输入框&#xff0c;来动态地改变页面上元素的样式哦 让我们一起深入了解一下这个项目的实现过程&…

css出现边框

前言 正常情况下&#xff0c;开启 contenteditable 属性后会出现 “黑色边框”。 如下图所示&#xff0c;很影响美观&#xff1a; 您可能想去掉它&#xff0c;就像下面这样&#xff1a; 解决方案 通过选择器&#xff0c;将 focus 聚焦时移除 outline 属性即可。 如下代码所示&a…

恋爱脑学编程之C++模板编程大冒险

一、模板编程初相识&#xff1a;开启泛型编程魔法之旅 嘿&#xff0c;小伙伴们&#xff01;今天咱们要一起探索C中超级厉害的模板编程。它就像是一把万能钥匙&#xff0c;可以打开各种类型数据的大门&#xff0c;让咱们写出超酷的与类型无关的代码&#xff0c;大大提高代码的复…

enzymejest TDD与BDD开发实战

一、前端自动化测试需要测什么 1. 函数的执行逻辑&#xff0c;对于给定的输入&#xff0c;输出是否符合预期。 2. 用户行为的响应逻辑。 - 对于单元测试而言&#xff0c;测试粒度较细&#xff0c;需要测试内部状态的变更与相应函数是否成功被调用。 - 对于集成测试而言&a…

继承(5)

大家好&#xff0c;今天我们继续来学习继承的相关知识&#xff0c;来看看子类构造方法&#xff08;也叫做构造器&#xff09;是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…

VulnHub-Acid(1/100)

参考链接&#xff1a; ​​​​​​​【VulnHub】Acid靶场复盘-CSDN博客 靶场渗透&#xff08;二&#xff09;——Acid渗透_ambassador 靶场渗透-CSDN博客 网络安全从0到0.5之Acid靶机实战渗透测试 | CN-SEC 中文网 Vulnhub靶场渗透练习(四) Acid - 紅人 - 博客园 红日团队…

51c自动驾驶~合集45

我自己的原文哦~ https://blog.51cto.com/whaosoft/13020031 #运动控制和规划控制需要掌握的技术栈~ 各大垃圾家电造车厂又要开始了~~~​ 1、ROS的通信方式 李是Lyapunov的李&#xff1a;谈谈ROS的通信机制 话题通信和服务通信&#xff0c;其中话题通信是通过发布和订阅…

【Unity3D】AB包加密(AssetBundle加密)

加密前&#xff1a; 加密后&#xff0c;直接无法加载ab&#xff0c;所以无法正常看到ab内容。 using UnityEngine; using UnityEditor; using System.IO; public static class AssetBundleDemoTest {[MenuItem("Tools/打包!")]public static void Build(){//注意:St…

平面坐标转大地坐标(arcgisPro中进行)

1、将需要转换的红线导入arcgisPro中&#xff0c;如下&#xff1a; 2、在地图菜单栏中&#xff0c;选择坐标转换工具&#xff0c;如下&#xff1a; 3、打开坐标转换工具 4、开启捕捉 5、 设置大地坐标显示格式 6、如下&#xff1a; 7、显示如图&#xff1a; 8、再依次添加几个待…

Python 在PDF中添加数字签名

在数字化时代&#xff0c;文件的安全性和可信度变得尤为重要。无论是商业文件、法律文件还是个人文件&#xff0c;都可能需要证明其来源的真实性和完整性。PDF数字签名就是解决这些问题的关键工具。PDF数字签名不仅能够确保文件的安全性&#xff0c;还能提高工作效率&#xff0…

Mysql--基础篇--函数(字符串函数,日期函数,数值函数,聚合函数,自定义函数及与存储过程的区别等)

MySQL提供了丰富的内置函数&#xff0c;涵盖了字符串处理、数值计算、日期和时间操作、聚合统计、控制流等多种功能。这些函数可以帮助你简化SQL查询&#xff0c;提升开发效率。 除了内置函数&#xff0c;MySQL还支持自定义函数&#xff08;User-Defined Functions&#xff09;…

STM32学习(十)

I2C模块内部结构 I2C&#xff08;Inter-Integrated Circuit&#xff09;模块是一种由Philips公司开发的二线式串行总线协议&#xff0c;用于短距离通信&#xff0c;允许多个设备共享相同的总线‌。 ‌硬件连接简单‌&#xff1a;I2C通信仅需要两条总线&#xff0c;即SCL&…

尚硅谷· vue3+ts 知识点学习整理 |14h的课程(持续更ing)

vue3 主要内容 核心&#xff1a;ref、reactive、computed、watch、生命周期 常用&#xff1a;hooks、自定义ref、路由、pinia、miit 面试&#xff1a;组件通信、响应式相关api ----> 笔记&#xff1a;ts快速梳理&#xff1b;vue3快速上手.pdf 笔记及大纲 如下&#xff…

【Ubuntu20.04】Apollo10.0 Docker容器部署+常见错误解决

官方参考文档【点击我】 Apollo 10.0 版本开始&#xff0c;支持本机和Docker容器两种部署方式。 如果您使用本机部署方式&#xff0c;建议使用x86_64架构的Ubuntu 22.04操作系统或者aarch64架构的Ubuntu 20.04操作系统。 如果您使用Docker容器部署方式&#xff0c;可以使用x…

安卓14无法安装应用解决历程

客户手机基本情况&#xff1a; 安卓14&#xff0c;对应的 targetSdkVersion 34 前天遇到了安卓14适配问题&#xff0c;客户发来的截图是这样的 描述&#xff1a;无法安装我们公司的B应用。 型号&#xff1a;三星google美版 解决步骤&#xff1a; 1、寻找其他安卓14手机测试…

利用 NineData 实现 PostgreSQL 到 Kafka 的高效数据同步

记录一次 PostgreSQL 到 Kafka 的数据迁移实践。前段时间&#xff0c;NineData 的某个客户在一个项目中需要将 PostgreSQL 的数据实时同步到 Kafka。需求明确且普遍&#xff1a; PostgreSQL 中的交易数据&#xff0c;需要实时推送到 Kafka&#xff0c;供下游多个系统消费&#…

Zookeeper是如何保证事务的顺序一致性的?

大家好&#xff0c;我是锋哥。今天分享关于【Zookeeper是如何保证事务的顺序一致性的?】面试题。希望对大家有帮助&#xff1b; Zookeeper是如何保证事务的顺序一致性的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 通过多个机制来保证事务的顺序一…