多目标进化算法系列
1. 多目标进化算法(MOEA)概述
2. 多目标优化-测试问题及其Pareto前沿
3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较
4. 多目标进化算法-约束问题的处理方法
在很多工程问题中都会涉及需要对多个目标同时进行优化的问题,且这些目标间是相互互斥的,也即一个目标的增大往往至少存在一个其他的目标减小,以下举一个简单的例子说明:
为了简便起见,对于 例举了如下几个值:
0 | 0 | 1 |
0.2 | 0.2 | 0.8 |
0.4 | 0.4 | 0.6 |
0.6 | 0.6 | 0.4 |
0.8 | 0.8 | 0.2 |
1 | 1 | 0 |
显然从该表中我们不能找到一个解是全局最优的的,因为若
小,那么
又变大,因此没有一个解使得
和
同时最小成立。因此,表格中列出的
的值都是该问题的最优解。也就是说,对于有多个目标的优化问题,不能得到单一的解使得全局最优,而是一个解集,称之为Pareto Set(PS),其对应的目标值的集合则称之为Pareto Front(PF)。Pareto Set(PS)和Pareto Front(PF)的具体定义可参考 我之前的文章 。此类问题就称之为多目标优化问题,其一般表达形式为:
为需要同时优化的目标个数。有时,对于某一个目标函数,我们需要最大化该目标,只需要将该目标简单的转换为最小化该目标即可。
对于上面所提的多目标优化问题,很容易观察到,由于其自变量 只有一个维度,因此任意一个 都是最优解。但当 在多个维度取值时,最优解往往只出现在很少的区域,这就需要我们求解该类问题的算法有很强的搜索能力。目前来说,单纯的数学方法不能很好的处理该类问题,而进化算法却能取得较好的结果。所谓进化算法是一种模拟生物进化的过程的算法,典型的算法有遗传算法(GA),粒子群算法(PSO),蚁群算法(ACO)等。基于进化算法求解多目标优化问题的方法我在这篇文章中已经有较为详细的描述。
这篇文章主要介绍下一些常见的多目标优化问题测试函数以及Pareto Front(PF)。
ZDT系列
Comparison of multiobjective evolutionary algorithms: Empirical results
DTLZ系列
可参考Scalable Multi-Objective Optimization Test Problems
WFG系列
可参考A Review of Multiobjective Test Problems and a Scalable Test Problem Toolkit
MOP系列
出自Decomposition of a Multiobjective Optimization Problem into a Number of Simple Multiobjective Subproblems
UF系列
出自Multiobjective optimization Test Instances for the CEC 2009 Special Session and Competition
以上都是比较经典的测试问题,一般的论文中都会使用上述的测试函数。同时,有些不是很常见的多目标问题也会出现在文献中,如对于有long tail和sharp peak的测试问题,如F1- F6, mF4,出自An Improved Multiobjective Optimization Evolutionary Algorithm Based on Decomposition for Complex Pareto Fronts,另外,对于此类问题以及前沿不连续的多目标优化问题,本人有一篇文章做了一点点工作,A modified PBI approach for multi-objective optimization with complex Pareto fronts
QQ交流群:399652146