凸优化学习
多目标优化问题和之后的拉格朗日乘子有异曲同工之妙,需要深入理解里面的概念。
学习笔记
一、定义
形如:
min
f
0
(
x
)
s.t.
f
i
(
x
)
≤
0
h
i
(
x
)
=
0
其
中
,
f
0
:
R
n
→
R
q
,
f
i
:
R
n
→
R
,
h
i
:
R
n
→
R
\begin{aligned} \min&& f_0(x)&\\ \text{s.t.}&&f_i(x)&\le0\\ &&h_i(x)&=0\\ \end{aligned}\\ 其中,f_0:R^n\rightarrow R^q,f_i:R^n\rightarrow R,h_i:R^n\rightarrow R
mins.t.f0(x)fi(x)hi(x)≤0=0其中,f0:Rn→Rq,fi:Rn→R,hi:Rn→R
表示有
q
q
q个变量需要优化。
例1:又好又快发展(帕累托最优面)
形如:
min
−
Speed
min
−
Quality
s.t.
Resources
\begin{aligned} \min&& -\text{Speed}&\\ \min&& -\text{Quality}&\\ \text{s.t.}&&\text{Resources}\\ \end{aligned}\\
minmins.t.−Speed−QualityResources
关于这个问题的帕累托最优面:
定义:
Pareto optional front
:
\text{Pareto optional front}:
Pareto optional front:任意在该面上的点,若找到另一解是其在某个指标上变好,必在别的指标上变得更差。
Pareto optional value
:
\text{Pareto optional value}:
Pareto optional value:在该面上的点对应的函数值。
Pareto optional point
:
\text{Pareto optional point}:
Pareto optional point:在该面上的点对应的自变量。
解多目标问题就是求帕累托最优面。
例2:非连续的帕累托最优面(求解难度极大)
例3:将多目标优化转换为单目标优化求解
当
f
0
(
x
)
,
f
i
(
x
)
f_0(x),f_i(x)
f0(x),fi(x)为凸,
h
i
(
x
)
h_i(x)
hi(x)为仿射时,可以进行如下转换。
形如:
min
∑
i
=
1
q
λ
i
f
0
i
(
x
)
s.t.
f
i
(
x
)
≤
0
h
i
(
x
)
=
0
\begin{aligned} \min&&\sum_{i=1}^q\lambda_if_{0_i}(x)&\\ \text{s.t.}&& f_i(x)&\le0\\ &&h_i(x)&=0\\ \end{aligned}\\
mins.t.i=1∑qλif0i(x)fi(x)hi(x)≤0=0
其中
λ
i
\lambda_i
λi为权重,通过将多个函数加权,转换为单目标优化问题。本质上一个
λ
i
\lambda_i
λi可以求出帕累托最优面上一个点,通过遍历
λ
i
\lambda_i
λi可以求出帕累托最优面。
例4:遍历 λ i \lambda_i λi也求不出帕累托最优面的例子
可以这么理解,
λ
i
\lambda_i
λi本质是找切线,通过切点构造出帕累托最优面。在上图中,帕累托最优面为折线部分。当我们寻找左半边的部分帕累托最优面时,有一部分切点的切线,是会交这个集合的,这部分帕累托最优面我们是找不到的。所以为什么前提条件要求可行解集是凸集。
例5:另一种优化方法
多目标优化问题还可以通过将其中某些目标变为约束,只优化一个目标的方式来进行优化。
原问题:
min
f
0
1
(
x
)
min
f
0
2
(
x
)
s.t.
f
i
(
x
)
≤
0
h
i
(
x
)
=
0
\begin{aligned} \min&&f_{0_1}(x)&\\ \min&&f_{0_2}(x)&\\ \text{s.t.}&& f_i(x)&\le0\\ &&h_i(x)&=0\\ \end{aligned}\\
minmins.t.f01(x)f02(x)fi(x)hi(x)≤0=0
方法1:
min
f
0
1
(
x
)
+
λ
f
0
2
(
x
)
s.t.
f
i
(
x
)
≤
0
h
i
(
x
)
=
0
\begin{aligned} \min&&f_{0_1}(x)+\lambda f_{0_2}(x)&\\ \text{s.t.}&& f_i(x)&\le0\\ &&h_i(x)&=0\\ \end{aligned}\\
mins.t.f01(x)+λf02(x)fi(x)hi(x)≤0=0
方法2:
min
f
0
1
(
x
)
s.t.
f
i
(
x
)
≤
0
h
i
(
x
)
=
0
f
0
2
(
x
)
≤
ϵ
\begin{aligned} \min&&f_{0_1}(x)&\\ \text{s.t.}&& f_i(x)&\le0\\ &&h_i(x)&=0\\ &&f_{0_2}(x)&\le \epsilon\\ \end{aligned}\\
mins.t.f01(x)fi(x)hi(x)f02(x)≤0=0≤ϵ
个人思考
解多目标问题一般是将其转换为单目标问题,直接求难度太高而且往往没必要。因为除非两个优化变量是有权(这样可以将其变为加权的单目标优化问题)的,不然帕累托最优面上的点一定是同等优的,这样我们去求出帕累托最优面上的一个点就可以了。
纸质笔记