目录
单对象优化(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。