NSGA-ll

2023-10-31 17:20
文章标签 ll nsga

本文主要是介绍NSGA-ll,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此博客的很多内容均来自 博客园 Alexander 博主的文章,我只做了整理方便今后自己回顾,因此很感谢博主的分享
2017年11月28日

NSGA-ll:Non-Dominated Sorting Genetic Algorithm-ll,带精英策略的非支配排序遗传算法

Pareto支配关系定义、Pareto最优解定义、一般的非支配分层排序算法请参考网上相关内容,或者我的名为NSGA的博客文章

为什么有NSGA-ll
顾名思义,NSGA-ll是对NSGA的改进,是在NSGA不能有效解决问题的时候被提出来的。Kalyanmoy Deb等人在他们的介绍NSGA-ll的论文中提到了NSGA算法主要的局限,即
1. High computational complexity of non-dominated sorting,非支配排序的时间复杂度太高,为 O(mN3) O ( m N 3 ) ,其中m为目标(objectives)个数,N为种群大小;
2. Lack of elitism,缺少精英策略。研究表明,精英策略可以有效地增强GA的效果,同时避免好种群的流失;
3. Need for specifying the sharing parameter σshare σ s h a r e ,需要指定共享半径 σshare σ s h a r e ,具有人为的偶然性。

而NSGA-II针对以上的缺陷通过以下三个方面进行了改进:
1. A fast non-dominated sorting approach,提出了快速非支配排序方法,降低了算法的计算复杂度。由原来的 O(mN3) O ( m N 3 ) 降到 O(mN2) O ( m N 2 ) ,其中,m为目标函数个数,N为种群大小;
2. Elitism,引入精英策略,扩大采样空间。将父代种群与其产生的子代种群组合,共同竞争产生下一代种群,有利于保持父代中的优良个体进入下一代,并通过对种群中所有个体的分层存放,使得最佳个体不会丢失,迅速提高种群水平;
3. Density Estimation && Crowded Comparison Operator,提出了拥挤度和拥挤度比较算子,代替了需要指定共享半径的适应度共享策略,并在快速排序后的同级比较中作为胜出标准,使准Pareto域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性。

NSGA-ll的基本思想
首先,随机产生规模为N的初始种群,非支配排序后通过遗传算法的选择、交叉、变异三个基本操作得到第一代子代种群;其次,从第二代开始,将父代种群与子代种群合并,进行快速非支配排序,同时对每个非支配层中的个体进行拥挤度计算,根据非支配关系以及个体的拥挤度选取合适的个体组成新的父代种群;最后,通过遗传算法的基本操作产生新的子代种群。依此类推,直到满足程序结束的条件。相应的程序流程图如下图所示:
图3.2 NSGA2基本流程

快速非支配排序算法 fast non-dominated sorting algorithm

  1. 首先,对于每一个解决方案(solution)我们需要定义两个参数,分别是 ni n i Si S i

这篇关于NSGA-ll的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

梧桐数据库(WuTongDB):数据库技术中LL算法详解

LL 算法是一种自顶向下的语法分析算法,广泛用于构建解析器。LL 分析器逐个读取输入符号,从左到右分析(Left-to-Right),并使用最左推导(Leftmost Derivation)来生成语法树。因此,LL 分析器通常称为 “预测分析器”。 LL 算法的基本原理 LL 算法的核心思想是通过查看输入符号并结合预测集来确定下一步应采取的推导规则。具体来说,LL(k) 分析器使用最多 k 个

自下而上语法分析、自上而下语法分析和递归下降法、预测分析法、LL(1)和LR是什么关系

自下而上语法分析、自上而下语法分析、递归下降法、预测分析法、LL(1)和LR都是与语法分析(语法解析)相关的概念和技术。它们在编译原理中扮演着重要的角色,用于将源代码的字符流转换为语法树(或抽象语法树,AST),以便进一步的编译和优化。以下是这些概念之间的关系和各自的特点: 自上而下语法分析(Top-Down Parsing) 自上而下语法分析从开始符号开始,根据文法规则推导输入字符串。主要方

多目标优化-NSGA-II

文章目录 一、前置知识NSGA-II帕累托前沿 二、算法流程1.NSGA2.NSGA-II 一、前置知识 1.NSGA(非支配排序遗传算法):旨在同时优化多个冲突的目标函数,寻找帕累托前沿上的解集。 什么是多个冲突的目标: 比如你看上了一辆车,你既想要它便宜,又想要它的配置达到Top水平,那这两个目标就是相互冲突的。 NSGA-II NSGA-II其实就是NSGA算法的改

Linux中,ll 命令 列出目录的内容

文章目录 1、2、3、4、5、 1、 在Linux中,ll 通常是一个别名(alias)用于 ls -l 命令。ls 命令用于列出目录的内容,而 -l 选项会以长格式(long format)显示信息,包括文件或目录的权限、所有者、大小、最后修改时间等。 这个别名通常在用户的shell配置文件(如 .bashrc、.bash_aliases、.zshrc 等,取决于你使用的sh

编译原理实验4——LL(1)文法分析

本来是打算再写一个select集生成器的,但是时间有限再加上懒后来还是放弃了= =。 这个代码也是需要先新建一个文本文件sy4.in 文本文件中第一行有一个整数x,代表有x个产生式 接下来x行每行有三个字符串,分别代表产生式左边,右边还有对应的select集 最后一行还有一个字母s,代表起始字符 在读入了数据之后,若文法是LL(1)文法,则会输出"The Data is ok!" 否则

自顶向下语法分析方法:LL(1)文法的判别

例子:文法G[S]为 S->AB|bC A->ε|b B->ε|aD C->AD|b D->aS|c 第一步,求出能推出ε的非终结符 首先建立一个以文法的非终结符为上界的一维数组,其数组元素为非终结符,对应每一非终结符有一个标志位,用以记录能否推出ε。如下表 非终结符SABCD初值未定未定未定未定未定第1次扫描是是否第2次扫描是否 能否推出ε步骤如下: 第二步,计算FIR

eclipse中tomcat操作报错:不允许有匹配 [xX][mM][lL] 的处理指令目标

An error occurred while cleaning Tomcat v7.0 Server at localhost work directory. Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config. The configuration ma

python5种算法模拟螺旋、分层填充、递归、迭代、分治实现螺旋矩阵ll【力扣题59】

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析可视化:企业实战案例 备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级 题目描述 给你一个正整数 n

LeetCode第40题:组合总和ll【python 40/1000】

LeetCode的第40题“组合总和II”要求在一个可能包含重复元素的整数数组中找出所有的组合,这些组合中的元素之和等于给定的目标数。这些组合中的每个数字在每个组合中只能使用一次。本文将探讨三种不同的方法来解决这个问题,并分析它们的时间和空间复杂度。 题目描述 输入:一个整数数组 candidates 和一个目标数 target。 输出:所有唯一的组合,使得组合中数字的总和为 target。

STM32几种库的比较,HAL、标准库、LL库!

STM32是一系列由STMicroelectronics公司生产的微控制器系列。它们基于ARM Cortex-M内核,提供了广泛的性能和功能。STM32系列拥有多个型号和系列,每个型号都有不同的特性和功能。 STMicroelectronics提供了名为STM32Cube的软件生态系统,其中包括了用于STM32微控制器的软件开发工具和软件包。这些软件包包含了用于硬件抽象层(HAL)、USB、文件