NSGAII基于非支配排序的多目标优化算法(中文翻译)
NSGA2算法中文版

Pt+1 = [ ]
i = 0
while len(Pt+1) + len( F[i] ) < N:
crowding_distance_assignment( F[i] )
Pt+1 += F[i]
I = sort( I, objFun ) #按照目标函数objFun进行升序排序
I[0] = I[ len[I]-1 ] = ∞ #对第一个和最后一个个体的距离设为无穷大
for i in xrange( 1, len(I) - 2 ):
在NSGA进行非支配排序时,规模为N的种群中的每个个体都要针对M个目标函数和种群中的N-1个个体进行比较,复杂度为O(MN),因此种群中的N个个体都比较结束的复杂度为O(MN2),即每进行一次Pareto分级的时间复杂度为O(MN2)。在最坏的情况下,每个Pareto级别都只含有一个个体,那么需要进行N次分级所需要的时间复杂度则会上升为O(MN3)。鉴于此,论文中提出了一种快速非支配排序法,该方法的时间复杂度为O(MN2)。
该算法需要保存两个量:
(1).支配个数np。该量是在可行解空间中可以支配个体p的所以个体的数量。
(2).被支配个体集合SP。该量是可行解空间中所有被个体p支配的个体组成的集合。
排序算法的伪代码如下:
def fast_nondominated_sort( P ):
else if p < q: #如果p被q支配,则把np加1
np += 1
if np == 0:
p_rank = 1 #如果该个体的np为0,则该个体为Pareto第一级
二代非支配排序遗传算法

二代非支配排序遗传算法英文回答:The second-generation non-dominating sorting genetic algorithm (NSGA-II) is a multi-objective evolutionary algorithm (MOEA) that is used to solve optimization problems with multiple conflicting objectives. NSGA-II was first proposed by Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, and T. Meyarivan in 2000.NSGA-II is based on the principles of non-dominated sorting and crowding distance. Non-dominated sorting is a method of ranking solutions based on their dominance relationships. A solution is said to dominate another solution if it is better than or equal to the other solution in all objectives and strictly better in at least one objective. Crowding distance is a measure of the density of solutions in the objective space. A solution with a large crowding distance is said to be less crowded than a solution with a small crowding distance.NSGA-II uses a population of solutions to evolve towards the Pareto optimal front. The Pareto optimal front is the set of all solutions that are not dominated by any other solution. NSGA-II uses a selection operator to select the best solutions from the population and a crossover operator to create new solutions. The new solutions are then evaluated and added to the population. The population is then sorted based on non-dominated sorting and crowding distance. The worst solutions are then removed from the population.NSGA-II has been shown to be a very effective MOEA for solving a wide range of optimization problems. NSGA-II is particularly well-suited for problems with multiple conflicting objectives and problems with a large number of decision variables.中文回答:二代非支配排序遗传算法(NSGA-II)是一种多目标进化算法(MOEA),用于解决具有多个冲突目标的优化问题。
多目标遗传算法NSGA-II

在NSGA-II中,我们计算两个属性Sp 和np来帮助我们识别更好的个体。
快速非支配排序
假设种群大小为P,该算法需要计算每个个体p的被支配个数np和该个体支配的解的集合Sp 这两个参数。 遍历整个种群
该算法的伪代码如下:
拥挤度
• 为了使得到的解在目标空间中更加均匀,引入了拥挤度的概念
•为所有个体的拥挤距离初始化零。 •审视所有的个人和目标值。通过用Inf值分配绑定解决方案 来选择它们。 •计算每个目标的第m个最大值和最小值,得到归一化的分 母。 •对第i个个体的m个目标的拥挤距离求和
计算拥挤度是为了保存下来相似程度较低的解,保持解空间的多样性
精英保留策略
1 首先将父代种群Pt和子代种群Qt合成种群Rt 2 根据以下规则从种群Rt生成新的父代种群Rt+1
(1)根据Pareto等级从低到高的顺序,将整层种 群放入父代种群Rt+1中,真到某一层个体不能 全部放入父代种群Rt+1。 (2)将该层个体根据拥挤度从大到小排列,依次 放入父代种群Rt+1中,直到父代种群Rt+1f填满。
单目标优化——》多目标优化
NSGA-II 在常规遗传算法上的改进
• 1 快速非支配算子设计 • 多目标优化问题的设计关键在于求取Pareto最优解集。
• 2 通过优先选择拥挤距离较大的个体
• 3 精英策略选择算子
• NAS中的性能评估也可以是一个多目标问题 • 测试集上的准确率 • 参数数量
遗传算法解决多目标优化问题
多目标优化问题:
• 包含多个可能有冲突的目标函数
NSGA-Ⅱ算法,即带有精英保留策略的快 速非支配多目标优化算法,是一种基于 Pareto最优解的多目标优化算法。
nsga-ii概述

nsga-ii概述
NSGA-II(Non-dominated Sorting Genetic Algorithm II)是一种多目标优化算法,用于解决具有多个冲突目标的优化问题。
它是一种进化算法,基于遗传算法的框架,旨在找到问题的帕累托最优解集。
NSGA-II是由Kalyanmoy Deb于2000年提出的,是对原始NSGA算法的改进和扩展。
NSGA-II的核心思想是通过遗传算法的进化过程来不断优化种群中个体的适应度,以便在多个目标函数之间找到一组平衡的解。
它通过引入非支配排序和拥挤度距离来评估个体之间的优劣,以保留种群中的多样性,并促进帕累托前沿的均匀分布。
该算法的基本步骤包括初始化种群、交叉和变异操作、计算适应度值、非支配排序、拥挤度分配、选择操作等。
在每一代中,NSGA-II都会根据非支配排序和拥挤度距离来选择下一代的个体,以确保帕累托前沿的维持和种群的多样性。
NSGA-II已经在许多领域得到了广泛的应用,如工程设计、资源分配、机器学习等。
它的优势在于能够有效地处理多目标优化问题,并能够找到一组均衡的解决方案,为决策提供多样化的选择。
总之,NSGA-II是一种强大的多目标优化算法,通过遗传算法的框架和改进的排序策略,能够有效地解决具有多个冲突目标的优化问题,为复杂的决策问题提供了一种有效的解决方案。
非支配排序遗传算法ii

非支配排序遗传算法ii
非支配排序遗传算法II(NSGA-II)是一种多目标优化算法,它是对NSGA的改进和升级。
NSGA-II在保持NSGA的优点的同时,通过引入快速非支配排序算法和拥挤度距离的概念,进一步提高了算法的效率和性能。
NSGA-II的核心思想是将种群中的个体按照非支配关系进行排序,即将个体划分为不同的层次,每一层次中的个体都不会被其他层次中的个体所支配。
这样,我们就可以得到一组非支配解集,其中每个解都是最优的,而且它们之间没有支配关系。
为了实现这一目标,NSGA-II采用了快速非支配排序算法。
该算法通过比较个体之间的支配关系,将种群中的个体划分为不同的层次。
具体来说,对于任意两个个体i和j,如果i支配j,则将j的支配计数加1;如果j支配i,则将i的支配计数加1;如果i和j之间不存在支配关系,则它们的支配计数都为0。
然后,将支配计数为0的个体划分为第一层,支配计数为1的个体划分为第二层,以此类推,直到所有个体都被划分为不同的层次。
在得到非支配解集之后,NSGA-II还引入了拥挤度距离的概念,以保证解集的多样性和分布性。
拥挤度距离是指一个个体周围的密度,即它与相邻个体之间的距离之和。
NSGA-II通过计算每个个体的拥挤度距离,将解集中的个体按照密度从大到小排序,以保证解集中的个体分布均匀,不会出现过于密集或过于稀疏的情况。
NSGA-II是一种高效、可靠的多目标优化算法,它通过快速非支配排序和拥挤度距离的概念,实现了对种群中的个体进行有效的排序和筛选,得到了一组优质的非支配解集。
在实际应用中,NSGA-II 已经被广泛应用于各种多目标优化问题中,取得了良好的效果。
《基于NSGA-Ⅱ遗传算法的M100甲醇发动机多目标性能优化》范文

《基于NSGA-Ⅱ遗传算法的M100甲醇发动机多目标性能优化》篇一一、引言随着能源危机和环保意识的日益增强,甲醇发动机作为一种清洁、可再生的动力源,受到了广泛关注。
M100甲醇发动机作为其中的一种重要类型,其性能优化对于提高能源利用效率、降低排放具有重要意义。
本文旨在探讨基于NSGA-Ⅱ遗传算法的M100甲醇发动机多目标性能优化方法,以期为相关研究提供参考。
二、NSGA-Ⅱ遗传算法概述NSGA-Ⅱ(非支配排序遗传算法II)是一种多目标优化算法,通过模拟自然选择和遗传学机制,实现多目标决策问题的优化。
该算法具有全局搜索能力强、收敛速度快、解集分布均匀等优点,适用于复杂系统的多目标优化问题。
在M100甲醇发动机性能优化中,NSGA-Ⅱ遗传算法可以有效地处理多目标冲突,找到帕累托最优解。
三、M100甲醇发动机性能优化目标M100甲醇发动机的性能优化主要涉及以下几个方面:动力性、经济性、排放性能和可靠性。
动力性是指发动机输出的功率和扭矩;经济性指发动机的燃油消耗率;排放性能主要关注尾气中有害物质的排放量;可靠性则涉及发动机的寿命和故障率。
这些目标之间往往存在冲突,需要通过多目标优化方法进行平衡。
四、基于NSGA-Ⅱ遗传算法的M100甲醇发动机多目标性能优化1. 问题建模:将M100甲醇发动机性能优化问题转化为多目标优化问题,明确决策变量、目标函数和约束条件。
2. 初始化种群:根据问题的特点,生成一定规模的初始种群。
3. 遗传操作:通过选择、交叉和变异等操作,产生新一代种群。
其中,选择操作根据个体的非支配排序和拥挤度进行;交叉和变异操作则模拟生物遗传过程中的基因重组和突变现象。
4. 评估与选择:对新产生的种群进行评估,计算每个个体的目标函数值,并根据评估结果进行选择,保留优秀个体。
5. 迭代优化:重复上述遗传操作和评估选择过程,直至满足终止条件(如迭代次数、解集质量等)。
五、实验结果与分析通过实验,我们发现基于NSGA-Ⅱ遗传算法的M100甲醇发动机多目标性能优化方法能够有效地平衡各目标之间的冲突,找到帕累托最优解。
nsga2算法通俗讲解

nsga2算法通俗讲解NSGA-II(Nondominated Sorting Genetic Algorithm II)是一种经典的多目标优化算法,是对遗传算法的一种改进和扩展。
它使用遗传算法的思想来解决求解多目标优化问题,可以同时优化多个目标函数。
NSGA-II通过遗传算子的选择、交叉、变异等操作对候选解进行搜索,然后使用非支配排序和拥挤度距离计算来选择较好的个体,最终得到Pareto最优解集。
NSGA-II的核心思想是模拟进化过程来搜索多目标优化问题的解空间。
它通过构建和维护一个种群来搜索解空间,每个个体都代表一个候选解。
首先,随机生成一组个体作为初始种群,然后通过迭代的方式进行优化。
在每一代演化中,NSGA-II从当前种群中选择父代个体,并使用交叉和变异操作来产生子代个体。
然后,将父代和子代合并为一组候选解,通过非支配排序和拥挤度距离计算筛选出优秀的个体,构成下一代种群。
重复迭代直到满足停止准则。
非支配排序(Non-dominated Sorting)是NSGA-II中的一个重要操作,用于根据个体的优劣程度进行排序。
首先,对种群中的所有个体进行两两比较,如果某个个体在所有目标函数上都优于另一个个体,则认为前者不被后者支配。
根据支配关系,将个体分为不同的等级,形成层次结构。
然后,在每个等级中按照拥挤度距离进行排序。
拥挤度距离用于衡量个体周围的密度,较大的值表示个体所在区域较为稀疏,较小的值表示个体所在区域较为密集。
通过综合考虑支配关系和拥挤度距离,可以选择出较优的个体。
NSGA-II采用了精英策略(Elitism)来保留种群中的优秀个体,避免遗忘最优解。
在选择下一代个体时,将精英个体直接复制到下一代,以保持种群的多样性和收敛性。
通过重复进行选择、交叉和变异操作,不断更新种群,使得算法能够逐渐搜索到Pareto最优解集。
NSGA-II是一种高效的多目标优化算法,它充分利用了种群中个体之间的关系,通过非支配排序和拥挤度距离计算来选择出Pareto最优解集。
nsga2算法加约束条件

nsga2算法加约束条件【引言】在优化问题中,寻求一个既满足约束条件又具有较高性能的解是研究者们关注的焦点。
近年来,多目标优化算法及其应用得到了广泛关注,其中NSGA-II算法作为一种高效的多目标优化算法,在解决复杂优化问题时表现出较好的性能。
本文将介绍如何为NSGA-II算法添加约束条件,以提高其在实际应用中的实用性。
【NSGA-II算法简介】SGA-II(Non-dominated Sorting Genetic Algorithm 2)是一种基于遗传算法的多目标优化算法。
它通过非支配排序、拥挤距离和精英策略等机制,实现了对解空间的快速搜索和高效收敛。
在处理多目标优化问题时,NSGA-II 算法能够在一定程度上找到Pareto前沿的解。
【约束条件介绍】约束条件是优化问题中不可或缺的一部分,它们限制了解空间的可行性。
约束条件可以是等式、不等式或逻辑表达式等。
在实际应用中,约束条件有助于找到符合实际需求的解,从而提高问题的实用性。
为NSGA-II算法添加约束条件,可以使其在求解过程中更加注重满足实际约束条件,从而提高解的质量。
【结合NSGA-II算法与约束条件的优势】1.提高解的质量:通过添加约束条件,NSGA-II算法能够在优化过程中更好地关注满足实际约束条件的解,从而提高解的质量。
2.加速收敛:约束条件有助于缩小解空间,从而减少计算量,加速算法收敛。
3.提高实用性:结合约束条件,NSGA-II算法能够更好地解决实际问题,提高优化结果的可行性和实用性。
【应用场景及实例】例如,在工程设计领域,可以利用NSGA-II算法结合约束条件求解最优设计方案。
通过添加诸如结构强度、材料成本、制造难度等约束条件,寻找既满足性能要求又具有较高性价比的解。
【结论】总之,为NSGA-II算法添加约束条件是一种有效的方法,能够提高其在实际应用中的性能。
通过合理设置约束条件,NSGA-II算法可以更好地解决多目标优化问题,为工程设计、生产制造等领域提供有力支持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于非支配排序的带有精英策略的多目标优化算法:NSGA-II摘要:使用非支配排序和共享变量方法的多目标进化算法近年来因为它的一些缺陷指责,主要是由于(i)这种算法的计算复杂度较高,达到了O(mn3)(其中m表示多目标优化中目标的数量,n表示种群的大小),(ii)缺少精英策略,(iii)需要人为指定共享变量。
在本文中,提出了一种基于多目标进化算法的非支配排序方法(我们将它称为非支配排序GA-II算法或者NSGA-II算法)。
选择操作通过把父代和子代混合在一个交配库中,从中选择最优的N个个体(根据适应度层级和拥挤度进行优劣排序)。
通过5个复杂的测试函数进行测试得出的模拟结果表明,本文所提及的NSGA-II算法,在解决大部分问题是,比PAES和SPEA算法(另外两种具有精英策略的多目标遗传算法,这两种算法在的优势在于创造多样的Pareto最优层级)具有更好的分布,并且它的收敛性更接近实际中的Pareto最优层级。
因为NSGA-II 算法具有较低的计算复杂度,带有精英策略和较少的共享参数参数,NSGA-II算法在最近几年内将应用在更多的领域。
1、介绍在过去的十多年中,人们提出了大量的多目标进化算法(MOEAs)。
主要原因是它们在一次运行中找寻多值Pareto最优解的能力。
一个问题有多个最优解的主要原因是不可能同时优化多个对象时找到一个单独的最优解,所以一个能给出大量可供选择的最优解集的算法才是具有实际价值的。
由Srinivas和Deb教授提出的非支配排序遗传算法(NSGA)曾经是其中第一个这样的进化算法。
多年以来,对NSGA算法主要的批评如下:(1).进行非支配排序时的计算复杂度高:NSGA进行非支配排序时的计算复杂度是O(mN3) (m为优化对象的个数,N为种群大小),一旦当种群较大时,计算十分复杂,尤其是种群需要在每一代都进行非支配排序。
(2).缺少精英策略:最近一些实验的结果表明,精英策略在相当程度上能够加速遗传算法的执行。
而且一旦满意解被找到,它也能防止这些满意解的丢失。
σ:传统的为了保证一个种群中的多样性,从而得到具有(3).需要指定共享参数share广泛多样性的等价解的方法主要依赖于共享的概念。
而这种方法的主要问题是它需要指定共σ,尽管已经有一些方法能够动态的指定共享参数,但一个不需要共享参数的保享参数share持多样性的方法才是最需要的。
在本文中,我们解决了所有的这些问题,提出了一个更加优秀的NSGA版本,我们将它称为NSGA-II算法。
从对很多测试函数测试得出的仿真结果来看,NSGA-II算法总的来说是优于PAEs算法和SPEA算法——另外两种带有精英策略的多目标进化算法(依据聚合在Pareto 最优边界和在获得的解集中保持多样性),这些测试结果激励我们把NSGA-II应用在一些更复杂的应用和解决一些现实世界中的多目标优化问题。
2、带有精英策略的多目标进化算法Zitzler,Deb和Theile教授通过研究发现,在多目标进化算法中精英策略能够帮助获得更好的收敛边界。
在所有提出的带有精英策略多目标进化算法中,Zitzler和Thiele教授提出的SPEA算法,Knowles和Gome教授提出的PAEs算法以及Rudolph教授提出的精英遗传算法(elitist GA)是最广为人知的。
Zitzler和Thiele教授在它们的非支配排序中提出了多重标准精英策略的概念。
他们表示如果在每一代的排序过程中,保持外部种群,那么从初始种群开始所有的非支配解都能被发现。
这些外部种群参加遗传操作。
每一代,都有一个具有外围的合并的种群,这个种群是第一个被构造的。
在合并种群中的所有的非支配解都被根据它们支配解的数量分配了一个适应度,所有的支配解则被分配了一个比所有非支配解都差的适应度。
这种适应度的安排保证了直接在非支配解中寻找最优解集。
一种决定性的聚集技术被用来保证非支配解的多样性。
尽管实施表明计算复杂度是O(MN),但通过簿记,SPEAs的计算复杂度可以降低到O(MN2)。
Knowles和Corne教授提出了另外一种简单的使用进化策略的多目标进化算法,这种算法,种群具有一个父代和一个子代,父代和子代进行比较,如果子代支配父代,那么子代就作为下一个父代,如果父代支配子代,那么子代就被抛弃,一个突变的解(新的子代)加入。
然而,如果子代和父代相互之间没有支配关系,则通过比较它们和所有已经发现的最优解,如果子代被发现支配最优解中的任何一个解,则子代被接受为新的父代,而被支配的最优解则从最优解集中删除。
如果子代不支配任何最优解,那么检查父代和子代与最优解集的接近程度,如果子代存在于一个共享参数不密集的区域,则它被接受为新的父代加入到最优解集中。
这种算法的最差计算复杂度为O(aMN),a表示最优解集的大小,由于最优解集通常是和种群大小N成比例的,所以这种算法总的计算复杂度是O(MN2)。
Rudolph教授提出的一个简单的通过系统的比较父代个体和后代的种群多目标优化算法。
后代种群中的非支配解和父代种群中的非支配解组成一个总的非支配解集,在下一次循环中,这个非支配解集成为新的父代,如果这个集合没有需要得到的种群大小大,其他独立的后代继续被加入。
通过这种策略,能够证明Pareto最优边界。
虽然这种算法比较优秀,但它缺少解决第二个问题,保持解集多样性的办法。
3、带有精英策略的非支配排序遗传算法(NSGA-II)非支配排序遗传算法由Srinivas和Deb教授在1994提出,由于它的一些前面提及的问题遭到了批评。
在这一节中,我们提出了NSGA-II算法,减轻了这些困难。
接下来我们将分几个板块介绍NSGA-II算法。
3.1.快速非支配排序方法为了对大小为N的种群根据非支配层级进行排序,每一个解必须和种群中的其他解都进行比较,从而得出它是否被支配,这需要O(MN)的计算复杂度,M是优化对象的数量。
当这一步骤进行完毕后,继续找出所有第一个非支配层级的个体,总的计算复杂度是O(MN2)。
在这一步中,所有在第一个非支配层级的个体都被找到。
为了找出下一个支配层级的个体,属于第一个非支配层级的个体暂时不被计入,继续进行前面的操作,重复如上操作一直到找到后来的所有非支配层级上的个体。
可以看到最差的情况下(每一个层级上只有一个个体),在没有任何簿记的情况下,计算复杂度是O(MN3)。
而下面将介绍的快速非支配排序则在最差情况下,计算复杂度是O(MN2)。
这个方法与上面介绍的方法大部分是相类似的,但它有更好的簿记策略。
所有种群中的解与一个部分填满的种群比较支配关系。
开始时,先将第一个解加入集合P’,其后P种群中的其它解都和P’集合中的解比较,如果P集合中的任何个体支配P’中的任何个体q,此时将P’集合中的个体q移除。
通过这种方法,所有的非支配个体都被保留。
否则,如果个体p被P’中的所有个体支配,则不将p包含进P’中。
fast-nondominant-sort(Rt)P' = {1} //将第一个成员加入到P'中for each p∈P ∧ p∈/ P' //每次选择一个不在P'中的pP' = P' U {p} //将p临时性的包含值P’中for each q∈P' ∧ q∈/ P //将p与P'中的其它成员比较if p<q, then P' = P' \{q]//如果支配P'中的任何一个成员则删除P'中的该成员q else if q<p, then = P'\{p} //如果p被P'中的所有成员支配则不将p 包含在P'中为了找到其他非支配层级,P’中的成员将不被再次计入,再重复上面的循环操作。
我们发现,第二个个体只需要和P’中的一个个体进行比较,第三个个体则需要与两个个体进行比较,在最坏的情况下,即当P中的所有个体均为非支配个体时,比较的总次数为:N2/2。
所以算法的时间复杂度均为O(N2)。
3.2 拥挤度计算为了计算每个解周围的其它解的分布情况,我们得出该个体周围只包含个体本身的区域的最大长方形的长的平均长度(我们称之为拥挤度)。
如图1所示。
crowding-distance-assignment(Fi)l = |I | //个体的个数为Ifor each i, set I[i]distance = 0 //初始化所有的拥挤度值为0for each objective mI = sort(I, m) //基于每个目标函数对种群进行排序I[l]distance = I[i]distance =∞//令两个边界个体的拥挤度为无穷for i = 2 to (l — 1) //对于其他的个体I[i]distance = i[i]distance + (I[i+1].m – I[i-1].m) //计算每个个体的拥挤度3.3 拥挤度比较算子)来表示,该种群中的每个个体都拥有如下两个属性:定义拥挤度算子用符号(n1. 非支配排序层级 (rank i )2. 拥挤度 (ce dis i tan )可以定义拥挤度算子如下:i n j 表示 (rank i < rank j 或者 rank i = rank j ) 并且 ce dis i tan > ce dis j tan此算子的含义是,当两个解,属于不同的非支配排序的层级时,选择非支配层级较低的解,当两个解属于同一个非支配层级的时候,选择拥挤度较大的解,即此解周围的个体较少,所在区域解的分布较为稀疏。
3.4 主流程开始时,创建一个随机的父代种群0P ,种群进行快速非支配排序,每一个解都被分配一个和非支配层级(1是最优层级)相应的适应度值。
因此,最小的适应度值是假定的。
然后进行二进制锦标赛选择,重新组合,变异算子用来创造新的大小为N 的子代种群0Q 。
从第一代开始,进行的步骤是不同的:Rt = Pt U Qt //将父代种群和子代种群合并F= fast-nondominant-sort(Rt) F = (F1, .F2,...) //将合并后的种群进行非支配排序 Pt+i = {空集} //初始化 Pt+1 父代种群until |Pt+i | < N //直到Pt+1父代种群填满,进行下列的循环{crowding-distance-assignment (Fi) //计算第i 层级上的所有个体的拥挤度Pt+1 = Pt+1 ∪ Fi //将第i 层级中的个体并入Pt+1父代种群中i= i+1}Sort(Pt+1, <n) //当父代种群填满之后 对父代种群Pt+1 按照拥挤度算子排序Pt+1 = Pt+1 [0 : N] //选出Pt+1中前N 个个体Qt+i = make-new-pop (Pt+i) //对Pt+1中的个体进行交叉,选择,变异的遗传算法产生新的子代子群Qt+1t = t + 1 //继续重复如上操作4、结果我们将NSGA-II 算法与PAEs 算法在相同的测试函数下进行了比较,测试函数如下: MOP2:⎪⎪⎭⎫⎝⎛⎪⎭⎫ ⎝⎛---=∑=312131ex p 1)(i i x x f (1)⎪⎪⎭⎫⎝⎛⎪⎭⎫⎝⎛+--=∑=312231ex p 1)(i i x x f 4,,4321≤≤-x x xMOP3:()()[]22221111)(B A B A x f -+-+=()()[]22213)(+++=y x x f其中2cos 5.12sin 1cos 21sin 5.01-+-=A2cos 5.02sin 21cos 1sin 5.12-+-=Ay y x x B cos 5.1sin 1cos 2sin 5.01-+-=y y x x B cos 5.0sin 2cos sin 5.12-+-=MOP4:()()()()∑∑=-=++=⎪⎭⎫⎝⎛⎪⎭⎫⎝⎛+--=n i i i n i i i x x x f x x x f 138.02112121sin 52.0exp 10TC4:()11x x f = 101≤≤x()⎪⎪⎭⎫ ⎝⎛-=g xg x f 121 5,...,5102≤≤-x x其中()∑=-+=1022))4cos(10(91i i i x x x g πTC6:()()()16116sin 4ex p 1x x x f π--= 10≤≤i x 10,...,1=i()⎪⎪⎭⎫⎝⎛⎪⎭⎫ ⎝⎛-=2121g f g x f其中()25.0102991⎪⎭⎫⎝⎛+=∑=iixxg由于解集的多样性是多目标优化的重要指标,我们设计了两种方法:一种是基于连续距离另外一种是基于平均距离。