多目标进化算法(MOEAs)概述

2024-05-30 03:38

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

原文地址

对于大多数多目标优化问题,其各个目标往往是相互冲突的,因此不可能使得所有的目标同时达到最优,而是一组各个目标值所折衷的解集,称之为Pareto最优集。以下为一些基本定义(以最小化优化问题为例):

Definition 1: 多目标优化问题(multi-objective optimization problem(MOP)) 
F(x)=(f1(x),,fm(x))s.t.xΩ

Definition 2: Pareto支配(Pareto Dominance) 
x支配y,记为 x   y ,当且仅当 i{1,2,...,m} , fi(x)fi (y), 且 j{1,2,...,m} , s.t.  fj(x)<fj(y)

Definition 3: Pareto最优解(Pareto Optimal Solution) 
如果一个解 x  被称之为Pareto optimal solution, 当且仅当  x  不被其他的解支配。

Definition 4: Pareto 集(Pareto Set) 
一个MOP,对于一组给定的最优解集,如果这个集合中的解是相互非支配的,也即两两不是支配关系,那么则称这个解集为Pareto Set 。

Definition 5: Pareto 前沿(Pareto Front) 
Pareto Set 中每个解对应的目标值向量组成的集合称之为Pareto Front, 简称为PF

Definition 6:近似集(Approximation Set) 
一般来说,准确的Pareto Set是很难得到的,其近似集相比来说容易得到,因此一般我们只需用一定数量的Approximation Set 来表示PS 。

Definition 7: 近似前沿(Approximation Front) 
Approximation Set 中每个解对应的目标值向量组成的集合称之为Approximation Front 。

目前来说,由于多目标问题的复杂性,传统的数学方法不能取得较为理想的结果,而进化算法在多目标优化问题上得到了很广泛的应用,通过种群的不断进化迭代,进化算法能得到一个Approximation Set,那么我们如何来评价得到的Approximation Set的优劣呢,以下为两方面的评价标准。 
Definition 7:收敛性(Convergence) 
Approximation Front 与 PF 的贴近程度。

Definition 8: 分布性(Diversity) 
描述Approximation Front 在PF 的分布情况,包括分布范围和均匀性。

具体来说,常用的两个指标分别是IGD(Inverted Generational Distance) 和 HV(Hypervolume)。其中,IGD需要知道PF数据,且其具体计算为每个PF中的点到其最近的Approximation Front中的点的距离之和的均值。同时,需注意,这两种方法都能同时度量解的分布性和收敛性。

现在来讲讲主流的多目标进化算法。 
从进化算法的角度来讲,目前已有遗传算法(GA),粒子群算法(PSO),蚁群算法(ACO)等一系列算法用来解决多目标优化问题,但用的比较多的还是遗传算法,粒子群算法也有。 
从多目标问题本身来说,主要分类如下: 
- 基于Pareto支配关系 
- 基于分解的方法 
- 基于Indicator方法

先来介绍下基于遗传算法的多目标优化算法的一些基本参数: 
种群大小:每次迭代都需保证种群大小是一致的,且其大小应由初始化设定。 
交叉概率:用于衡量两个个体交叉的概率。 
突变率:交叉产生的解发生突变的概率。 
标准的遗传算法每次迭代都会将上一代的个体丢弃,虽然这符合自然规律,但对于遗传算法来说,这样效果不是特别好,因此,精英保留策略将上一代个体和当前个体混合竞争产生下一代,这种机制能较好的保留精英个体。 
基于Pareto支配关系 
最经典的方法是NSGA-II,该方法由Kalyanmoy Deb等人于2002年提出(A Fast and Elitist Multiobjective Genetic Algorithm: 
NSGA-II),该方法主要包括快速非支配排序,将每次交叉突变产生的解和前一代的解合并,然后利用非支配排序分层,其伪代码如下: 
这里写图片描述 
再就是把每层相加直到超过种群个体,再在最后一层基于拥挤距离来选择解,拥挤距离伪代码如下: 
这里写图片描述 
具体来说,NSGA-II使用快速非支配排序来保证收敛性,并且利用拥挤距离来保证分布性。特别说下,在迭代后期,大多数解都是非支配的,也即大多数解都在第一层。 
当然,随着NSGA-II的提出,很多基于此的算法如雨后春笋般大量涌现,特别是在处理高维多目标优化问题时这种想法得到很多的应用,如VaEA,RVEA,NSGA-III等。 
同时,SPEA2也是基于Pareto支配关系的一种较为流行的算法(SPEA2: Improving the Strength Pareto Evolutionary Algorithm),该算法使用一个外部保存集来保存较为优秀的解,同时,对每一个解,利用其支配的解的数量和基于KNN的邻近解的距离来给每一个解打分,得分越小的解更优。

基于分解的方法 
该方法第一次系统地被提出是在2007年由Qingfu Zhang等人提出(MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition),该方法将MOP分解为多个子问题,这样就可以优化每个子问题来求解一个MOP。一般而言,基于分解的方法首先需要得到一组均匀分布的参照向量来指导选择操作。在此,有必要说说产生参照向量的方法。目前对于低维多目标优化问题,常用方法为Das and Dennis于1998年提出的systematic approach(Normal-boundary intersection: A new method for generating the pareto surface in nonlinear multicriteria optimization problems). 
对于每个参照向量,其指导选择的过程需要比较解的优劣,这就需要用到一些标量函数来定量衡量一个解对于这个参照向量的适应度值。常用的标量函数包括: 
- Weighted Sum Approach 
- Tchebycheff Approach 
- penalty-based boundary intersection (PBI) approach

Weighted Sum Approach 
mingws(x|λ)=mi=1λifi(x)  
其中 λ 是参照向量,其运行机理如下图: 
这里写图片描述 
这里需要注意,标准的Weighted Sum Approach不能处理非凸问题,因为由上图可知,对于非凸问题,每个参照向量的垂线与其前沿不可能相切。对于这个问题,Rui Wang等人与2016年提出相对应的改进(Localized weighted sum method for many-objective optimization),主要是约束替换范围。

Tchebycheff Approach 
mingte(x|λ,z)=max{λi(fi(x)zi)}  
其中 λ 是参照向量,其运行机理如下图: 
这里写图片描述 
标准的Tchebycheff Approach得到的解不均匀,为此Yutao Qi等人于2014年提出一种解决方法(MOEA/D with Adaptive Weight Adjustment), λ=(1λ1mi=11λi,....,1λmmi=11λi) ,通过这个参照向量的转换即可得到分布均匀的解。

penalty-based boundary intersection (PBI) approach 
mingpbi(x|λ,z)=d1+θd2  
这里写图片描述 
其中 d1 d2 如上图所示。一般来说, θ=5 是比较常用的,Yuan Yuan等人提出的 θDEA 算法对 θ 的取值有较为详细的讨论(A New Dominance Relation-Based Evolutionary Algorithm for Many-Objective Optimization)。 
基于分解的进化方法框架如下: 
这里写图片描述

基于Indicator方法 
相比于IGD指标,Hypervolume更容易用来作为一个测度在种群进化过程中用来选择个体,因为IGD需要知道真实的Pareto Front数据,而这对于一个未知多目标优化问题是相当困难的。

至于具体的多目标进化算法后续将会详细介绍。

参考文献 
[1] K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, “A fast and elitist multiobjective genetic algorithm: NSGA-II,” IEEE Trans. Evol. Comput., vol. 6, no. 2, pp. 182–197, Apr. 2002 
[2] E. Zitzler, M. Laumanns, and L. Thiele, “SPEA2: Improving the strength Pareto evolutionary algorithm,” in Proc. Evol. Methods Design Optim. Control Appl. Ind. Prob., Athens, Greece, 2002, pp. 95–100. 
[3] Qingfu Zhang and Hui Li. Moea/d: A multiobjective evolutionary algorithm based on decomposition. IEEE Transactions on evolutionary computation, 11(6):712–731, 2007. 
[4] Yutao Qi, Xiaoliang Ma, Fang Liu, Licheng Jiao, Jianyong Sun, and Jianshe Wu. MOEA/D with adaptive weight adjustment. Evolutionary computation, 22(2):231–264, 2014. 
[5] Kalyanmoy Deb and Himanshu Jain. An evolutionary many objective optimization algorithm using reference- point-based nondominated sorting approach, part i: Solving problems with box constraints. IEEE Trans. Evolutionary Computation, 18(4):577–601, 2014. 
[6] Yuan Yuan, Hua Xu, Bo Wang, and Xin Yao. A new dominance relation-based evolutionary algorithm for many-objective optimization. IEEE Transactions on Evolutionary Computation, 20(1):16–37, 2016. 
[7] Indraneel Das and John E Dennis. Normal-boundary intersection: A new method for generating the pareto surface in nonlinear multicriteria optimization problems. SIAM Journal on Optimization, 8(3):631–657, 1998 
[8] 张作峰. 基于分解的多目标进化算法研究[D]. 湘潭大学, 2013.

这篇关于多目标进化算法(MOEAs)概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO