多目标优化在推荐系统、物流配送、路径规划等中有广泛的应用
一些多目标优化算法主要就是求解问题的 Pareto 前沿或者近似前沿。从目标空间来看,就是他的边界了。
minxf(x),x∈RN(1)min_x \quad f(x), x \in R^N \tag{1}minxf(x),x∈RN(1)
其中,x 的取值为 n 维实数空间 RN, f(x) 为连续一阶可导函数
minxF(x)=[f1(x),f2(x),...,fK(x)],x∈RN(2)min_x \quad F(x) = [f_1(x), f_2(x), ... , f_K(x)], x \in R^N \tag{2}minxF(x)=[f1(x),f2(x),...,fK(x)],x∈RN(2)
其中,K 为子目标的个数,xxx 的取值为 N 维实数空间,fk(x)f_k(x)fk(x) 为连续一阶可导函的子目标函数。
minxf(x)min_x \quad f(x)minxf(x)
s.t.gi(x)≥0,i∈[1,M](3)s.t. g_i(x) \geq 0, i \in [1, M] \tag{3}s.t.gi(x)≥0,i∈[1,M](3)
hj(x)=0,j∈[1,L]h_j(x) = 0, j \in [1, L]hj(x)=0,j∈[1,L]
其中 s.t.s.t.s.t. 为 subject to 的缩写,表示受限于的意思
令 DDD 为上述多目标优化问题的可行域,即:
D={x∣gi(x)≥0,i∈[1,M],hj(x)=0,j∈[1,L]}D = \{ x | g_i(x) \geq 0, i \in [1, M], h_j(x) = 0, j \in [1, L]\}D={x∣gi(x)≥0,i∈[1,M],hj(x)=0,j∈[1,L]}
带约束的多目标问题 MOP (multi-objective optimization problem)
minxF(x)=[f1(x),f2(x),...,fK(x)]min_x \quad F(x) = [f_1(x), f_2(x), ... , f_K(x)]minxF(x)=[f1(x),f2(x),...,fK(x)]
s.t.gi(x)≥0,i∈[1,M](4)s.t. g_i(x) \geq 0, i \in [1, M] \tag{4}s.t.gi(x)≥0,i∈[1,M](4)
hj(x)=0,j∈[1,L]h_j(x) = 0, j \in [1, L]hj(x)=0,j∈[1,L]
令 DDD 为上述多目标优化问题的可行域,即
D={x∣gi(x)≥0,i∈[1,M],hj(x)=0,j∈[1,L]}D = \{ x | g_i(x) \geq 0, i \in [1, M], h_j(x) = 0, j \in [1, L]\}D={x∣gi(x)≥0,i∈[1,M],hj(x)=0,j∈[1,L]}
对于多目标优化问题 MOP,通常不存在解 x∗∈Dx^* \in Dx∗∈D,使得目标 fi(x),∀i∈[1,K]f_i(x), \forall i \in [1, K]fi(x),∀i∈[1,K], 同时达到最小值
在描述 MOP 的解集之前,我们先来定义多目标里面的相等、严格小于、小于、小于且不相等的含义:
设 RNR^NRN 为 NNN 维实向量空间,y=(y1,y2,...,yN)T,z=(z1,z2,...,zN)Ty = (y_1, y_2, ..., y_N)^T, z = (z_1, z_2, ..., z_N)^Ty=(y1,y2,...,yN)T,z=(z1,z2,...,zN)T
f(n)={相等y=z⇔yi=zi,i=1,2,...,N严格小于y
对于某个 x∈Xx \in Xx∈X,如果 x 满足(4)中的约束条件 gi(x)≥0,i∈[1,M]和hj(x)=0,j∈[1,L]g_i(x) \geq 0, i \in [1, M] 和 h_j(x) = 0, j \in [1, L]gi(x)≥0,i∈[1,M]和hj(x)=0,j∈[1,L] 则称 xxx 为可行解
两个目标函数
三个目标函数
由 XXX 中的所有的可行解组成的集合称为可行解集合,记为XfX_fXf,且 Xf⊆XX_f \subseteq XXf⊆X
定义:∀x1,x2∈Xf\forall x_1, x_2 \in X_f∀x1,x2∈Xf,如果对于 ∀i∈[1,M]\forall i \in [1, M]∀i∈[1,M],都有 fi(x1)≤fi(x2)f_i(x_1) \leq f_i(x_2)fi(x1)≤fi(x2) 并且, ∃j∈[1,L]\exists j \in [1, L]∃j∈[1,L],使得 fj(x1) 一个解 x∗∈Xfx^* \in X_fx∗∈Xf,若 ¬∃x∈Xf:x支配x∗\neg\exists x \in X_f:x 支配 x^*¬∃x∈Xf:x支配x∗,则 x∗x^*x∗ 被称为 Pareto 最优解(或非支配解) Pareto 最优解集是所有 Pareto 最优解的集合,定义如下: Pareto 最优解集 P∗P^*P∗ 中的所有 Pareto 最优解对应的目标矢量组成的曲面称为 Pareto 前沿面 PF∗PF^*PF∗: 1:解 A 优于解 B(解 A 强帕累托支配解 B) 假设现在有两个目标函数,解 A 对应的目标函数值都比解 B 对应的目标函数值好,则称解A比解 B 优越,也可以叫做解 A 强帕累托支配解 B,举个例子 下图中代表的是两个目标的的解的情况,横纵坐标表示两个目标函数值,E 点表示的解所对应的两个目标函数值都小于 C,D 两个点表示的解所对应的两个目标函数值,所以解 E 优于解 C,D 2:解 A 无差别于解 B(解 A 能帕累托支配解 B)A,B两点严格意义上是非支配关系 同样假设两个目标函数,解 A 对应的一个目标函数值优于解 B 对应的一个目标函数值,但是解 A 对应的另一个目标函数值要差于解 B 对应的一个目标函数值,则称解 A 无差别于解B,也叫作解 A 能帕累托支配解 B,举个例子,还是上面的图,点 C 和点 D 就是这种情况,C 点在第一个目标函数的值比 D 小,在第二个函数的值比 D 大。 3:最优解 假设在设计空间中,解 A 对应的目标函数值优越其他任何解,则称解 A 为最优解,举个例子,下图的 x1x_1x1 就是两个目标函数的最优解,使两个目标函数同时达到最小,但实际生活中这种解是不可能存在的,由此提出了帕累托最优解 4:帕累托最优解 同样假设两个目标函数,对于解 A 而言,在变量空间中找不到其他的解能够优于解A(这里的优于一定要两个目标函数值都优于 A 对应的函数值),那么解 A 就是帕累托最优解,举个例子,下图中应该找不到比 对应的目标函数都小的解了吧,即找不到一个解优于 x1x_1x1 了,同理也找不到比 x2x_2x2 更优的解了,所以这两个解都是帕累托最优解,实际上, 这个范围的解都是帕累托最优解。因此对于多目标优化问题而言,帕累托最优解只是问题的一个可接受解,一般都存在多个帕累托最优解,这个时候就需要自己决策了。 5:帕累托最优前沿 还是那张图 ,如下图所示,更好的理解一下帕累托最优解,实心点表示的解都是帕累托最优解,所有的帕累托最优解构成帕累托最优解集,这些解经目标函数映射构成了该问题的 Pareto 最优前沿或 Pareto 前沿面,即帕累托最优解对应的目标函数值就是帕累托最优前沿。 对于两个目标的问题,其 Pareto 最优前沿通常是条线。而对于多个目标,其 Pareto 最优前沿通常是一个超曲面。 在求目标函数 f1,f2f_1, f_2f1,f2,的最小值的时候,当 A 与 B 相比 f1(x∗) 分析可以知道,红色曲线上的点,在进行内部点之间比较的时候,如果一个点其中一个函数值小于另一个点对应的函数值时,那么此点的另一个函数值一定大于另一个对应的函数值 不同情况下的 Pareto 最优前沿 转化为单目标函数 将其中一个函数作为目标函数,其他函数作为约数条件 假设有两个目标目标函数,两个变量 x1,x2x_1, x_2x1,x2,对应的解集为 f(x1),f(x2)f(x_1), f(x_2)f(x1),f(x2) 1 号 与 2 号比,目标函数,2 号均比 1 号小,加入 pareto 点集, 3 号 和 2 号比,第一个目标函数小于 2 号,第二个目标函数大于 2 号,加入 pareto 点集 第 5 行数据再与 Pareto 候选集进行比较时,即 5 与 3 比较,发现 13 < 19 并且 45 < 53, 所以 3 被 5 支配,把 3 号点去掉,留下 5 号选入 Pareto 点集
2.4 Pareto 最优解
2.5 Pareto 最优解集
P∗={x∗∣¬∃x∈Xf:x支配x∗}P^* = \{x^*|\neg\exists x \in X_f:x 支配 x^*\}P∗={x∗∣¬∃x∈Xf:x支配x∗}2.6 Pareto 前沿面
PF∗={F(x∗)=(f1(x∗),f1(x∗),...,fm(x∗))T∣x∗∈P∗}PF^* = \{F(x^*) = (f_1(x^*), f_1(x^*), ..., f_m(x^*))^T|x^* \in P^*\}PF∗={F(x∗)=(f1(x∗),f1(x∗),...,fm(x∗))T∣x∗∈P∗}3. 实例阐述 Pareto
3.1 第一个实例
3.2 第二个实例
4. Pareto 算法





5. Pareto 的计算
5.1 第一个实例



最终的 pareto 前沿计算结果为:2, 9, 5

5.2 第二个实例

5.3 第三个实例
