凸优化学习
多目标优化问题和之后的拉格朗日乘子有异曲同工之妙,需要深入理解里面的概念。
学习笔记
一、定义
形如:
minf0(x)s.t.fi(x)≤0hi(x)=0其中,f0:Rn→Rq,fi:Rn→R,hi:Rn→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
表示有qqq个变量需要优化。
例1:又好又快发展(帕累托最优面)
形如:
min−Speedmin−Qualitys.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:将多目标优化转换为单目标优化求解
当f0(x),fi(x)f_0(x),f_i(x)f0(x),fi(x)为凸,hi(x)h_i(x)hi(x)为仿射时,可以进行如下转换。
形如:
min∑i=1qλif0i(x)s.t.fi(x)≤0hi(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:另一种优化方法
多目标优化问题还可以通过将其中某些目标变为约束,只优化一个目标的方式来进行优化。
原问题:
minf01(x)minf02(x)s.t.fi(x)≤0hi(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:
minf01(x)+λf02(x)s.t.fi(x)≤0hi(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:
minf01(x)s.t.fi(x)≤0hi(x)=0f02(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≤ϵ
个人思考
解多目标问题一般是将其转换为单目标问题,直接求难度太高而且往往没必要。因为除非两个优化变量是有权(这样可以将其变为加权的单目标优化问题)的,不然帕累托最优面上的点一定是同等优的,这样我们去求出帕累托最优面上的一个点就可以了。
纸质笔记