进化算法EA——多对象优化遗传(MOO),差分进化法(DE),遗传编程(GP)

本文对比了单对象优化与多对象优化的区别,重点介绍了多对象优化中的帕累托前沿概念、NSGA-II算法、差分进化法及遗传编程。讨论了进化算法在解决多目标优化问题时面临的挑战,如拥挤度计算和局部最优问题,并展望了其在自动编程和复杂系统设计等领域的应用前景。
摘要由CSDN通过智能技术生成

目录

单对象优化(SOO)vs多对象优化(MOO)

多对象优化(MOO)

NSGA-II

差分进化法(DE)

遗传编程(GP)

EA problem


单对象优化(SOO)vs多对象优化(MOO)

 1.目标函数个数

        单对象优化是针对一个目标函数(objective function)的解决办法。例如:生产饼干的质量最大化、寻求最短路径(TSP)。

        多对象优化是针对多个起冲突的目标函数寻求最佳解的方法。想要寻求的最佳解视具体情况而定。例如:小偷旅行的问题(travelling thief problem),它是背包旅行问题(Knapsack problem)和旅行商问题(travelling salesman problem)的结合。具体情境是,小偷要去许多户人的家里偷东西,每户人家只经过一次,并且只拿了个麻袋,偷的东西重量不能超过麻袋所承受的重量,要求小偷的路径最短并且偷的东西价值最大。在这个情境下,路程、价值、重量都是目标函数,而路径短和价值大是最终寻求的最佳解。

        值得注意的是,如果知道各适应度值的占比,也属于单对象优化问题。因为可以引入一个新对象,并用其他各适应度*占比加起来表示它。例如:f(biscuit)= (0.7*f(quality)) + (0.3*f(cost)),则f(biscuit)作为一个新的适应度函数,并应用单对象遗传算法进行计算。

2.最佳解个数

        单对象优化最终求得一个最佳解;而多对象优化求得是一组解,各个解之间的关系是平等的,不可缺一,在二维平面上表示的是一条线。

3.应用范围

        在工程和工厂领域中,多对象应用更广泛,因为它针对的是不同目标的一系列“权衡”(trade-off),结果可以帮助管理人员做决策。

由于另一篇文章已经介绍过单对象遗传算法,这里着重介绍多对象优化。

多对象优化(MOO)

        这里首先引入一个新概念:Pareto front,翻译过来是帕累托平面。当出现两个互相冲突的对象,最佳解组成的平面叫做帕累托平面。而MOO的目标就是求Pareto front。

Pareto front

         例如上图,两个目标分别是使size和cost尽可能小。蓝点都是在此基础上可以再减小cost或size,但绿点不能再减小了,如果减小一方,另一方必然增加,因此绿点组成的平面就是帕累托平面。

 那么如何找出Pareto front上的点呢?

         这里再引入一个新概念:dominance,翻译过来是支配。这里举一个例子,现在要设计一架飞机,需要使可走距离尽可能大,成本尽可能小,可载乘客数尽可能大,速度尽可能大。一条染色体代表一个解决方案,现在有八条染色体,从中挑选出non-dominated的个体。

        dominate的判断就是两个染色体进行竞争(pair comparison),分别拿出四个值进行两两比较࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值