多目标优化 MOP (五):遗传算法 VaEA 2017

2024-02-04 21:59

本文主要是介绍多目标优化 MOP (五):遗传算法 VaEA 2017,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文:A Vector Angle-Based Evolutionary Algorithm for Unconstrained Many-Objective Optimization

这篇文章提出了Angle-Based Evolutionary Algorithm同时考虑了收敛性与多样性,在环境选择中采用maximum-vector-angle-first原理保证解集的均匀性,借助于worse-elimination原理,收敛性差的解集(计算方式是归一化目标的和)被其他解替代,因此,Pareto-optimal front的选择压力增强了。

VaEA的三个优点:不受参考点或权重向量的影响;参数少;时间复杂度低

Pareto-based MOEAs基于pareto的进化算法在解决MaOP问题的时候经常遇到问题,主要由于dominance resistance (DR) 和 the active diversity promotion (ADP)导致的困难。DR现象指的是当pareto 支配关系中解的不可比较,主要是由于随着目标数的增加非支配解比例的快速增大。事实上,两个解课比较的概率是,m是目标数,对于2个目标的两个解课比较的概率是1/2,当m=10时,可比较概率为0.002,基于pareto的方法就很难区别两个解了,此时采用基于多样性的选择方法。而ADP问题可能会影响到收敛性,使得种群偏离true PF。

A.VaEA算法执行过程:

  1. 随机生成N个solutions
  2. 选择:根据适应度值选择潜在solution放入mating pool
  3. 交叉与变异:生成offsrping Q
  4. 环境选择:在父代与子代合集中选择N个solution
  5. 反复执行知道满足停止条件

以上过程与基本的遗传算法无差异,VaEA采用一种谨慎的精英保持策略,同时更加关注具有最大vector angle的个体以提高多样性。VaEA不需要采用任何特殊的重组操作,offspring Q通过通用的交叉和变异操作产生,下面介绍一下

B.环境选择:

VaEA的环境选择过程与NSGA-II 和NSGA-III类似,但是小生境保持操作与现有MaOEA不同。

  1. 父代与子代的合集S通过function normalization 归一化,输出P=空集

1)归一化:ideal point 是每个目标上的最小值,nadir point 每个目标上的最大值,对于每一个solution  目标向量 归一化为 ,根据下面的公式,在归一化的过程中, 的适应度值也得到了计算,适应度分配考虑了归一化目标值的求和, 。 适应度值可以粗略的反映收敛性,一个solution如果在主要的目标上有好的表现通常会获得一个好的适应度值。值得注意的是,,这种估计的准确性可能受到MaOP的PF形状的影响,然而,VaEA的适应度值用于确定了两个相近的solution的保留与否,因此,PF的形状带来的影响得到了缓解。

2.计算归一化目标空间中每个solution的norm和vector angles

2)计算S中每个solution的norm(in the normalized objective space),对于的norm表示为,可以通过公式求解 norm用于计算归一化向量空间中两个solutions之间的vector angles,两个solutions他们之间的vector angles是 ,右侧分母部分是两个向量的内积, ,

 3.通过非支配排序对solutions分层,最后一层 为Fl,如果|P|+|FL|=N,返回P;如果|P|+|FL|>N,从FL中选择K = N − |P|个solution放入P中,根据他们的vector angles一个一个地放入。

在介绍association operation前先了解几个定义:

定义1:的target solution是在P中与具有最小 vector angle的solution,最小vector angle 表示为 ,与之相关的target solution的index表示为 ,如果 有多个target solutions,随机选择一个就可以。

定义2:一个solution的vector angle是 与target solution之间的angle,

定义3:extreme solutions是对m 个向量 具有最小angle的solution,由 表示,

3)association operation:

如果P为空集,首先对中的solution按照升序排序,将m个extreme solutions放入P中,extreme solutions放入的原因是为了保持多样性,然后将m个最好收敛性的solutios放入P,这里注意收敛性好的solution也可能是extreme solution,只放入一次就可以。如果solution放入P中,将从中将其删除。对于 中剩余的solution,他们的 被分别赋值为 然后对于P中每一个之间的angle通过上面的公式计算,如果有更小的angle, 会更新。

如上图所示,x1,x2与Y1关联,x3与Y2关联,x4与Y4关联

4)Niche-Preservation

在VaEA中,niche preseervation过程同时考虑了收敛性和多样性,分别通过worse-elimination 和maximum-vector-angle-first principles 方法。

maximum-vector-angle-first principles :

中每个solution都有一个flag value(初始值设置为false)作为是否已经放入P中的标志,中每个solution都有一个最大和最小vector angles(根据定义2),他们的index值分别表示为 ρ 和 μ。maximum-vector-angle-first principle的目的是找到具有最大vector angle的solution,把它放入P。过程如下 :如果 ρ为空(表示所有solution都已经添加到P中)则返回P,否则 放入P中同时flag改为true,此时,中剩余的solution的vector angles应该更新。

worse-elimination principle:

如果和它的target solution 之间的angle小于,N是种群个数,同时 没有放入P并且的适应度值比好,则用替换。这么做的原理是不需要保留相同搜索方向的多个solution。替换后需要考虑两种情况:a)他们与不同的个体相关联,这种情况下只需要比较angle大小就可以。b),这种情况下两个solution与同一个个体相关联,只需要更新

C.Computational Complexity Analysis计算复杂度分析

归一化步骤中,2N个个体m个目标的复杂度为,norm的计算是,非支配排序是,association和niching operations都是,因此总体复杂度是

实验设置:

对比算法:MOEA/DD3 , NSGA-III, MOEA/D, and MOMBI2

测试问题:DTLZ1-4和WFG1-9

测试指标:inverted generational distance (IGD) , generalized SPREAD , HV

这篇关于多目标优化 MOP (五):遗传算法 VaEA 2017的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678916

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案