凸优化学习
今天开始对优化问题进行分析,会先判断一般的优化问题,然后逐渐引入凸优化问题。
学习笔记
一、优化问题的几个例子以及变换
例1:
minf0(x)=x12+x22s.t.fi(x)=x11+x22≤0hi(x)=(x1+x2)2=0
\begin{aligned}
\min&& f_0(x)&=x_1^2+x_2^2\\
\text{s.t.}&&f_i(x)&=\frac{x_1}{1+x_2^2}\le0\\
&&h_i(x)&=(x_1+x_2)^2=0
\end{aligned}
mins.t.f0(x)fi(x)hi(x)=x12+x22=1+x22x1≤0=(x1+x2)2=0
显然,这个问题里面,f1(x)f_1(x)f1(x)非凸,h1(x)h_1(x)h1(x)非仿射,不是凸问题。但我们可以将其转换为等价的凸问题:
minf0(x)=x12+x22s.t.fi(x)=x1≤0hi(x)=x1+x2=0
\begin{aligned}
\min&& f_0(x)&=x_1^2+x_2^2\\
\text{s.t.}&&f_i(x)&=x_1\le0\\
&&h_i(x)&=x_1+x_2=0
\end{aligned}
mins.t.f0(x)fi(x)hi(x)=x12+x22=x1≤0=x1+x2=0
例2:
可以将等式约束消除,减少约束的维数。
minf0(Fz+x0)s.t.fi(Fz+x0)=0i=1⋯m
\begin{aligned}
\min&& f_0(Fz+x_0)\\
\text{s.t.}&&f_i(Fz+x_0)&=0\qquad i=1\cdots m\\
\end{aligned}
mins.t.f0(Fz+x0)fi(Fz+x0)=0i=1⋯m
例3:
minf0(x)s.t.Si≤0fi(x)−Si=0i=1⋯maiTx−bi=0i=1⋯p
\begin{aligned}
\min&& f_0(x)&\\
\text{s.t.}&&S_i&\le0\\
&&f_i(x)-S_i&=0\qquad i=1\cdots m\\
&&a_i^Tx-b_i&=0\qquad i=1\cdots p\\
\end{aligned}
mins.t.f0(x)Sifi(x)−SiaiTx−bi≤0=0i=1⋯m=0i=1⋯p
松弛变量(增加维数和约束),转换为关于xxx和SSS的函数,变换出特殊结构,变成更容易的问题。
例4:Quasi convex optimization\text{Quasi convex optimization}Quasi convex optimization拟凸优化问题
minf0(x)s.t.fi(x)≤0i=1⋯mhi(x)=0i=1⋯p
\begin{aligned}
\min&& f_0(x)&\\
\text{s.t.}&&f_i(x)&\le0\qquad i=1\cdots m\\
&&h_i(x)&=0\qquad i=1\cdots p\\
\end{aligned}
mins.t.f0(x)fi(x)hi(x)≤0i=1⋯m=0i=1⋯p
其中目标函数是拟凸函数,约束是凸集。
例5:
maxf0(x)s.t.fi(x)≤0i=1⋯mhi(x)=0i=1⋯p
\begin{aligned}
\max&& f_0(x)&\\
\text{s.t.}&&f_i(x)&\le0\qquad i=1\cdots m\\
&&h_i(x)&=0\qquad i=1\cdots p\\
\end{aligned}
maxs.t.f0(x)fi(x)hi(x)≤0i=1⋯m=0i=1⋯p
若目标函数是凹函数,约束为凸集,那么此形式的问题依然是凸问题。
二、凸优化问题的性质和解几种凸优化问题的例子
1、凸问题的性质
1.局部最优解等于全局最优解。
2
若目标函数可微,由凸函数一阶条件得:
f0(y)≥f0(x)+∇f0(x)(y−x)∀x,y∈domf
f_0(y)\ge f_0(x)+\nabla f_0(x)(y-x)\quad \forall x,y\in\text{dom}f
f0(y)≥f0(x)+∇f0(x)(y−x)∀x,y∈domf
则:
x∗∈Xf最优⇔∇f0T(x∗)(y−x∗)≥0∀y∈Xf
x^*\in X_f最优\Leftrightarrow \nabla f_0^T(x^*)(y-x^*)\ge0\quad\forall y\in X_f
x∗∈Xf最优⇔∇f0T(x∗)(y−x∗)≥0∀y∈Xf
2、一些例子
例1:约束仅为等式约束
minf0(x)s.t.Ax=b
\begin{aligned}
\min&& f_0(x)&\\
\text{s.t.}
&&\textbf Ax&=b
\end{aligned}
mins.t.f0(x)Ax=b
由性质2得:
∇f0(x)(y−x)≥0∀y−x∗=v∈N(A)
\nabla f_0(x)(y-x)\ge0 \quad \forall y-x^*=v\in N(\textbf A)
∇f0(x)(y−x)≥0∀y−x∗=v∈N(A)
N(A)N(\textbf A)N(A)表示A\textbf AA的化零空间。
可以得到:
①v=0v=0v=0,A\textbf AA可逆,x=A−1bx=\textbf A^{-1}bx=A−1b。(可行解空间退化成一个点)
②∇f0(x)\nabla f_0(x)∇f0(x)与N(A)N(\textbf A)N(A)正交。
例2;约束仅为非负约束
minf0(x)s.t.x≥0
\begin{aligned}
\min&& f_0(x)&\\
\text{s.t.}&&x&\ge0
\end{aligned}
mins.t.f0(x)x≥0
由性质2得:
∇f0(x)y−∇f0(x)x≥0
\nabla f_0(x)y-\nabla f_0(x)x\ge0
∇f0(x)y−∇f0(x)x≥0
分析上式得:
①若∀i(∇f0(x))i<0\forall i\big(\nabla f_0(x)\big)_i<0∀i(∇f0(x))i<0,则∇f0(x)y\nabla f_0(x)y∇f0(x)y必可以取无穷小,必有∇f0(x)≥0\nabla f_0(x)\ge0∇f0(x)≥0,因为y≥0y\ge0y≥0,这个函数是关于yyy线性的。
②根据①进一步分析得∇f0(x)x≤0\nabla f_0(x)x\le0∇f0(x)x≤0
③由x≥0x\ge0x≥0结合①②得∇f0(x)x=0\nabla f_0(x)x=0∇f0(x)x=0
即
{x≥0∇f0(x)≥0⇔x为最优解∇f0(x)=0
\begin{cases}
x\ge0\\
\nabla f_0(x)\ge0\qquad\Leftrightarrow x为最优解\\
\nabla f_0(x)=0
\end{cases}
⎩⎪⎨⎪⎧x≥0∇f0(x)≥0⇔x为最优解∇f0(x)=0
个人思考
这是第一次接触到解凸函数的问题,需要好好掌握一下这里面的思想。事实上,直接优化一个函数,还是带约束的,是一个比较麻烦的问题,通过找出等价条件直接解是比较好的。
纸质笔记