NSGA II 算法讲解(毕业设计)(三)

目录

前言

1、NSGA II算法介绍

2、Pareto最优概念

2.1 Pareto最优,Pareto前延

2.2 支配关系

3、NSCA-II与NSCA相比,优势

4、NSGA II流程逻辑

5、拥挤度排序

6、新子代生成


前言

本篇文章介绍的是我的毕业设计,我将C语言将其实现。本篇主要讲解NSGA II的原理。

1、NSGA II算法介绍

        NSGA II 是一个基于遗传算法的多目标优化算法。

        1995年,Srinivas和Deb提出了非支配遗传(Non-dominated Sorting Genetic Algorithms,NSGA)算法[42]。NSGA算法是以遗传算法为基础并基于Pareto最优概念得到的。

        NSGA-Ⅱ算法是一种基于Pareto最优解的多目标优化算法,是在NSGA算法的基础上改进而来的。该算法引入了快速非支配排序、精英保留策略和拥挤度比较算子,能够得到分布均匀、多样性较好的最优解集。该算法的基本思想是将父代种群和子代种群合并,进行非支配排序和拥挤度计算,选取合适的个体组成新的父代种群,然后通过遗传算法的基本操作产生新的子代种群,直到满足停止条件。该算法适用于多个目标的优化问题,广泛应用于桥梁、核电、公交调度等领域。

2、Pareto最优概念

        帕累托最优(Pareto Optimality),也称为帕累托效率(Pareto efficiency),是指资源分配的一种理想状态,假定固有的一群人和可分配的资源,从一种分配状态到另一种状态的变化中,在没有使任何人境况变坏的前提下,使得至少一个人变得更好,这就是帕累托改进或帕累托最优化。

        举个例子,找女朋友,如果有两个选项:第一个性格好,但是长相不符合你的审美;另一个性格没有第一个好,但是长相符合你的审美。那么对于你来说,这两个选择都是最优的,没有好坏之分。如果有另一个选项,长相好看,性格又好,这样的选项就是更优的。pareto就是这种思想,对于多个理想标准,如果没有全面提升的化,,就不能算是一个更优的选择。

2.1 Pareto最优,Pareto前延

        一个解不被其它可行解支配称为Pareto最优。 

        Pareto前沿是一组无法被支配的最优折中解,没有目标能在提升时而不使其它目标改变。 具有此解之后,在从非占优集合中挑选解之前,专家能够获悉因为改善一个目标而恶化其它目标的程度。

2.2 支配关系

 

        如上例子,横纵坐标皆为优化目标,都是想让其越小越好。那么,对于A点来说,那些两个指标都比它小的点就是支配A的点;那些两个指标都大于A的点,就是被A支配的点;那些其中一个指标低于A,另一个指标高于A的点,和A互不支配。

3、NSCA-IINSCA相比,优势

NSGA-II 的快速非支配排序相较传统非支配排序计算更加简单
加入了精英策略

4、NSGA II流程逻辑

解析:

第一步: 初始种群并设置进化代数Gen=1

第二步: 判断是否生成了第一代子种群,若已生成则令进化代数Gen=2,否则,对初始种群进行非支配排序和选择、高斯交叉、变异从而生成第一代子种群并使进化代数Gen=2

第三步: 将父代种群与子代种群合并为新种群

第四步:判断是否已生成新的父代种群,若没有则计算新种群中个体的目标函数,并执行快速非支配排序、计算拥挤度、精英策略等操作生成新的父代种群;否则,进入第五步。

第五步:对生成的父代种群执行选择、交叉、变异操作生成子代种群

第六步: 判断Gen是否等于最大的进化代数,若没有则进化代数Gen=Gen+1并返回第三步;否则,算法运行结束。

5、拥挤度排序

        根据每个点拥挤度大小对其排序,用于后续筛选。

        拥挤度计算:

        拥挤度越低,越容易选上。

6、新子代生成

        本篇内容到此结束,感谢阅读

  • 27
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值