多目标优化-测试问题及其Pareto前沿

多目标进化算法系列

  1. 多目标进化算法(MOEA)概述
  2. 多目标优化-测试问题及其Pareto前沿
  3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较
  4. 多目标进化算法-约束问题的处理方法
  5. 基于C#的多目标进化算法平台MOEAPlat实现
  6. MOEAD中聚合函数等高线分析
  7. MOEAD中一种使解更均匀分布的聚合函数介绍

在很多工程问题中都会涉及需要对多个目标同时进行优化的问题,且这些目标间是相互互斥的,也即一个目标的增大往往至少存在一个其他的目标减小,以下举一个简单的例子说明:

m i n { f 1 ( x ) = x f 2 ( x ) = 1 − x s . t .      x ∈ [ 0 , 1 ]          \begin{matrix} min \begin{cases} f_1(x)=x\\ f_2(x)=1-x \end{cases} \\ s.t.\;\;x \in [0,1]\qquad\;\;\;\;\\ \end{matrix} min{f1(x)=xf2(x)=1xs.t.x[0,1]

为了简便起见,对于 x x x例举了如下几个值:

x x x f 1 ( x ) f_1(x) f1(x) f 2 ( x ) f_2(x) f2(x)
001
0.20.20.8
0.40.40.6
0.60.60.4
0.80.80.2
110

显然从该表中我们不能找到一个解是全局最优的的,因为若 f 1 ( x ) f_1(x) f1(x)小,那么 f 2 ( x ) f_2(x) f2(x)又变大,因此没有一个解使得 f 1 ( x ) f_1(x) f1(x) f 2 ( x ) f_2(x) f2(x)同时最小成立。因此,表格中列出的 x x x的值都是该问题的最优解。也就是说,对于有多个目标的优化问题,不能得到单一的解使得全局最优,而是一个解集,称之为Pareto Set(PS),其对应的目标值的集合则称之为Pareto Front(PF)。Pareto Set(PS)和Pareto Front(PF)的具体定义可参考 我之前的文章 。此类问题就称之为多目标优化问题,其一般表达形式为:

m i n    F ( x ) = ( f 1 ( x ) , . . . , f m ( x ) ) s . t .    x ∈ Ω      \begin{matrix} min\;F(x)=(f_1(x),...,f_m(x))\\ s.t.\;x\in \Omega\qquad\qquad\qquad\qquad\;\;\\ \end{matrix} minF(x)=(f1(x),...,fm(x))s.t.xΩ

m m m为需要同时优化的目标个数。有时,对于某一个目标函数,我们需要最大化该目标,只需要将该目标简单的转换为最小化该目标即可。

对于上面所提的多目标优化问题,很容易观察到,由于其自变量 x x x只有一个维度,因此任意一个 x x x都是最优解。但当 x x x在多个维度取值时,最优解往往只出现在很少的区域,这就需要我们求解该类问题的算法有很强的搜索能力。目前来说,单纯的数学方法不能很好的处理该类问题,而进化算法却能取得较好的结果。所谓进化算法是一种模拟生物进化的过程的算法,典型的算法有遗传算法(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

### WFG 测试函数表达式 WFG (Walking Fish Group) 测试函数是一组专为评估多目标优化算法设计的测试问题合。这些测试函数旨在模拟真实世界中的复杂性和挑战,提供了一系列不同的特性来全面检验算法的表现。 #### 表达式概述 WGF测试函数通常由多个目标组成,并且可以配置成具有不同数量的目标和决策变量。这类函数的特点在于能够通过参数调整生成各种类型的Pareto前沿形状,包括凹形、凸形以及不连续的情况[^1]。 对于具体的WFG测试函数形式,一般表示如下: 设 \( k \) 是位置参数的数量,\( n-k \) 是距离参数的数量,则第 i 个目标函数可写为: \[ f_i(\mathbf{x}) = h_i[\mathbf{\tilde{x}}_i,\mathbf{s}_i],\quad i=1,...,m \] 这里, - \( m \) 表示目标数; - \( \mathbf{x}=(x_1,x_2,…,x_n)^T \in [0,1]^n \),即输入向量; - \( \mathbf{\tilde{x}}_i=\left(t^{(k)}_{1},t^{(k)}_{2},...,t^{(k)}_{D}\right), t_j^{(k)}=g_k(x_j)\),经过转换的位置部分; - \( s_i=g_{n-k}(x_{k+i}), i=1,..,(n-k) \),未经变换的距离部分; - 函数 \( g() \) 和 \( h() \) 定义了具体的问题形态[^4]。 实际应用中,会根据不同需求选取特定的形式组合上述各成分构建完整的WFG测试实例。 ```matlab % MATLAB伪代码展示如何定义一个简单的WFG测试函数 function F = wfg_test_function(X) % X is the input vector of decision variables n = length(X); % Number of decision variables k = floor(n/2); % Position parameters count m = 3; % Objective dimensions T_pos = transform_position(X(1:k)); % Transform position part S_dis = X(k+1:end); % Distance part remains unchanged for i = 1:m F(i) = shape_function(T_pos, S_dis); end end ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值