高级优化理论与方法(精华版)

前言

这门课已经结课,马上就要考试了。在这里,我把一个学期的内容都整理一下,方便复习。这里就略过定义等基础内容,只有大致框架及重点内容。

无约束优化问题

必要条件和充分条件

FONC

FONC:一阶必要条件。若 x ∗ x^* x为最小值点,则 d T ∇ f ( x ∗ ) ≥ 0 d^T \nabla f(x^*)\geq0 dTf(x)0。若 x ∗ x^* x为内点,则 d T ∇ f ( x ∗ ) = 0 d^T\nabla f(x^*)=0 dTf(x)=0

SONC

SONC:二阶必要条件。若 x ∗ x^* x为最小值点,且 d T ∇ f ( x ∗ ) = 0 d^T\nabla f(x^*)=0 dTf(x)=0,则 d T F ( x ∗ ) d ≥ 0 d^T F(x^*)d\geq0 dTF(x)d0

SOSC

SOSC:二阶充分条件。若 x ∗ x^* x满足 { ∇ f ( x ∗ ) = 0 F ( x ∗ ) > 0 \begin{cases} \nabla f(x^*)=0\\ F(x^*)>0 \end{cases} {f(x)=0F(x)>0,则 x ∗ x^* x是局部最小值点。

应用

求无约束优化问题的步骤:
计算 ∇ f ( x ) \nabla f(x) f(x) F ( x ) F(x) F(x),找到满足 { ∇ f ( x ∗ ) = 0 F ( x ∗ ) > 0 \begin{cases} \nabla f(x^*)=0\\ F(x^*)>0 \end{cases} {f(x)=0F(x)>0的点 x ∗ x^* x

例子

f ( x ) = x 1 2 + x 2 2 f(x)=x_1^2+x_2^2 f(x)=x12+x22
∇ f ( x ) = [ 2 x 1 , 2 x 2 ] T \nabla f(x)=[2x_1,2x_2]^T f(x)=[2x1,2x2]T

H ( x ) = [ 2 0 0 2 ] > 0 H(x)=\begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix}>0 H(x)=[2002]>0

x ∗ = [ 0 , 0 ] T x^*=[0,0]^T x=[0,0]T

算法

一维搜索算法

梯度下降法
公式

x k + 1 = x k − α k ∇ f ( x k ) x^{k+1}=x^k-\alpha^k \nabla f(x^k) xk+1=xkαkf(xk), 其中 α k = a r g m i n f ( x k − α k ∇ f ( x k ) ) \alpha^k=argmin f(x^k-\alpha^k \nabla f(x^k)) αk=argminf(xkαkf(xk))

f ( x ) f(x) f(x)为二次函数,即 f ( x ) = 1 2 x T Q x − b x f(x)=\frac{1}{2} x^TQx-bx f(x)=21xTQxbx ,则 α k = g k T ⋅ g k g k T Q g k \alpha^k =\frac{{g^k}^T\cdot g^k}{{g^k}^TQg^k} αk=gkTQgkgkTgk,其中 g k = ∇ f ( x k ) = Q x k − b g^k=\nabla f(x^k)=Qx^k-b gk=f(xk)=Qxkb

应用

f ( x ) = x 1 2 + x 2 2 ⇒ f ( x ) = 1 2 x T Q x − b x f(x)=x_1^2+x_2^2 \Rightarrow f(x)=\frac{1}{2} x^TQx-bx f(x)=x12+x22f(x)=21xTQxbx
Q = [ 2 0 0 2 ] Q=\begin{bmatrix} 2&0 \\ 0&2 \end{bmatrix} Q=[2002]

b = [ 0 0 ] b=\begin{bmatrix} 0 \\ 0 \end{bmatrix} b=[00]

∇ f ( x ) = [ 2 x 1 2 x 2 ] \nabla f(x)=\begin{bmatrix} 2x_1 \\ 2x_2 \end{bmatrix} f(x)=[2x12x2]

F ( x ) = [ 2 0 0 2 ] F(x)=\begin{bmatrix} 2&0 \\ 0&2 \end{bmatrix} F(x)=[2002]

x 0 = [ 1 1 ] x^0=\begin{bmatrix} 1 \\ 1 \end{bmatrix} x0=[11]

x k + 1 = x k − α k g k x^{k+1}=x^k-\alpha^kg^k xk+1=xkαkgk

x 1 = x 0 − α 0 g 0 x^1=x^0-\alpha^0g^0 x1=x0α0g0

g 0 = ∇ f ( x 0 ) = [ 2 2 ] g^0=\nabla f(x^0)=\begin{bmatrix} 2 \\ 2 \end{bmatrix} g0=f(x0)=[22]

α 0 = g 0 T g 0 g 0 T Q g 0 = 8 [ 4 , 4 ] ⋅ [ 2 , 2 ] T = 8 16 = 1 2 \alpha^0=\frac{{g^0}^Tg^0}{{g^0}^TQg^0}=\frac{8}{[4,4]\cdot [2,2]^T}=\frac{8}{16}=\frac{1}{2} α0=g0TQg0g0Tg0=[4,4][2,2]T8=168=21

x 1 = [ 1 , 1 ] T − 1 2 [ 2 , 2 ] T = [ 0 , 0 ] T x^1=[1,1]^T-\frac{1}{2}[2,2]^T=[0,0]^T x1=[1,1]T21[2,2]T=[0,0]T

g 1 = ∇ f ( x 1 ) = [ 0 0 ] g^1=\nabla f(x^1)=\begin{bmatrix} 0 \\ 0 \end{bmatrix} g1=f(x1)=[00]

牛顿法

一元函数: x k + 1 = x k − f ′ ( x k ) f ′ ′ ( x k ) x^{k+1}=x^k-\frac{f'(x^k)}{f''(x^k)} xk+1=xkf′′(xk)f(xk)

多元函数: x k + 1 = x k − [ F ( x k ) ] − 1 ∇ f ( x k ) x^{k+1}=x^k-[F(x^k)]^{-1}\nabla f(x^k) xk+1=xk[F(xk)]1f(xk)

针对二次函数的算法

共轭方向法
公式

二次函数情形下:
x k + 1 = x k − α k ∇ f ( x k ) x^{k+1}=x^k-\alpha^k \nabla f(x^k) xk+1=xkαkf(xk)

g k = ∇ f ( x k ) = Q x k − b g^k=\nabla f(x^k)=Qx^k-b gk=f(xk)=Qxkb

α k = − g k T d k d k T Q d k \alpha^k=-\frac{{g^k}^Td_k}{d_k^TQd_k} αk=dkTQdkgkTdk

x k + 1 = x k + α k d k x^{k+1}=x^k+\alpha^kd_k xk+1=xk+αkdk
其中 d 0 , d 1 , ⋯   , d n d_0,d_1,\cdots,d_n d0,d1,,dn是一组共轭方向向量。

应用

f ( x ) = 1 2 x T [ 4 2 2 2 ] x − [ − 1 , 1 ] x f(x)=\frac{1}{2}x^T\begin{bmatrix} 4&2 \\ 2&2 \end{bmatrix}x-[-1,1]x f(x)=21xT[4222]x[1,1]x的最小值。

g ( x ) = [ 4 2 2 2 ] x − [ − 1 1 ] g(x)=\begin{bmatrix} 4&2 \\ 2&2 \end{bmatrix}x-\begin{bmatrix} -1 \\ 1 \end{bmatrix} g(x)=[4222]x[11]

选取 x 0 = [ 0 0 ] x^0=\begin{bmatrix} 0 \\ 0 \end{bmatrix} x0=[00]

选取 d 0 = [ 1 0 ] d_0=\begin{bmatrix} 1 \\ 0 \end{bmatrix} d0=[10]

d 0 T [ 4 2 2 2 ] d 1 = 0 ⇒ [ 4 2 ] d 1 = 0 d^T_0\begin{bmatrix} 4&2 \\ 2&2 \end{bmatrix}d_1=0\Rightarrow \begin{bmatrix} 4\\ 2 \end{bmatrix}d_1=0 d0T[4222]d1=0[42]d1=0

选取 d 1 = [ − 3 8 3 4 ] d_1=\begin{bmatrix} -\frac{3}{8} \\ \frac{3}{4} \end{bmatrix} d1=[8343]

g 0 = [ 1 − 1 ] g^0=\begin{bmatrix} 1 \\ -1 \end{bmatrix} g0=[11]

α 0 = − g 0 T d 0 d 0 T Q d 0 = − [ 1 , − 1 ] [ 1 0 ] [ 1 , 0 ] [ 4 2 2 2 ] [ 1 0 ] = − 1 4 \alpha^0=\frac{-{g^0}^Td_0}{d_0^TQd_0}=\frac{-[1,-1]\begin{bmatrix} 1 \\ 0 \end{bmatrix}}{[1,0]\begin{bmatrix} 4&2 \\ 2&2 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}}=-\frac{1}{4} α0=d0TQd0g0Td0=[1,0][4222][10][1,1][10]=41

x 1 = x 0 + α 0 d 0 = [ − 1 4 0 ] x^1=x^0+\alpha^0d_0=\begin{bmatrix} -\frac{1}{4} \\ 0 \end{bmatrix} x1=x0+α0d0=[410]

g 1 = [ 0 − 3 2 ] g^1=\begin{bmatrix} 0 \\ -\frac{3}{2} \end{bmatrix} g1=[023]

α 1 = 2 \alpha^1=2 α1=2

x 2 = [ − 1 3 2 ] x^2=\begin{bmatrix} -1 \\ \frac{3}{2} \end{bmatrix} x2=[123]

f ( x 2 ) = 0 f(x^2)=0 f(x2)=0

共轭梯度法

输入: f ( x ) = 1 2 x T Q x − b T x , x 0 f(x)=\frac{1}{2}x^TQx-b^Tx, x^0 f(x)=21xTQxbTx,x0

  1. k = 0 k=0 k=0
  2. compute g 0 = ∇ f ( x 0 ) g^0=\nabla f(x^0) g0=f(x0), If g 0 = 0 g^0=0 g0=0, then stop; else d 0 = − g 0 d_0=-g^0 d0=g0
  3. α k = − g k T d k d k T Q d k \alpha^k=-\frac{{g^k}^Td_k}{{d_k}^TQd_k} αk=dkTQdkgkTdk
  4. x k + 1 = x k + α k d k x^{k+1}=x^k+\alpha^kd_k xk+1=xk+αkdk
  5. g k + 1 = ∇ f ( x k + 1 ) g^{k+1}=\nabla f(x^{k+1}) gk+1=f(xk+1), If g k + 1 = 0 g^{k+1}=0 gk+1=0 then stop;
  6. β k = g k + 1 T Q d k d k T Q d k \beta^k=\frac{{g^{k+1}}^TQd_k}{{d_k}^TQd_k} βk=dkTQdkgk+1TQdk
  7. d k + 1 = − g k + 1 + β k d k d^{k+1}=-g^{k+1}+\beta^kd_k dk+1=gk+1+βkdk
  8. k k k++, goto 3

条件优化问题

线性规划

形式

min/max f ( x ) = c T x = ∑ i = 1 n c i x i j , c ∈ R n , x ∈ R n f(x)=c^Tx=\sum_{i=1}^nc_ix_{ij}, c\in \mathbb{R}^n, x \in \mathbb{R}^n f(x)=cTx=i=1ncixij,cRn,xRn
s.t. { a 11 x 1 + ⋯ + a 1 n x n > b 1 a 21 x 1 + ⋯ + a 2 n x n ≤ b 2 ⋯ a m 1 x 1 + ⋯ + a m n x n ≥ b m \begin{cases} a_{11}x_1+\cdots+a_{1n}x_n>b_1\\ a_{21}x_1+\cdots+a_{2n}x_n\leq b_2\\ \cdots\\ a_{m1}x_1+\cdots+a_{mn}x_n\geq b_m \end{cases} a11x1++a1nxn>b1a21x1++a2nxnb2am1x1++amnxnbm
b i ∈ R , ∀ 1 ≤ i ≤ m b_i\in\mathbb{R},\forall 1\leq i\leq m biR,∀1im
a i j ∈ R , ∀ 1 ≤ i ≤ n , 1 ≤ j ≤ m a_{ij}\in\mathbb{R}, \forall 1\leq i\leq n, 1\leq j\leq m aijR,∀1in,1jm

单纯形法

算法

Simplex: Given an initial basis B

  1. Compute: [ A , b ] = [ B , D , b ] → [ I , Y , y 0 ] [A,b]=[B,D,b]\rightarrow [I,Y,y_0] [A,b]=[B,D,b][I,Y,y0]
  2. Compute: ∀ m + 1 ≤ j ≤ n : r j = c j − z j \forall m+1\leq j\leq n: r_j=c_j-z_j m+1jn:rj=cjzj
  3. If ∀ j : r j ≥ 0 \forall j: r_j\geq 0 j:rj0, then return x = [ y 0 T , 0 ] T x=[y_0^T,0]^T x=[y0T,0]T
  4. else pick an q q q with r q < 0 r_q<0 rq<0
  5. If no y i q > 0 y_{iq}>0 yiq>0 for 1 ≤ i ≤ m 1\leq i\leq m 1im, then return “no solution”
    else p = a r g m i n { y i 0 y i q : y i q > 0 } p=argmin\{\frac{y_{i0}}{y_{iq}}:y_{iq}>0\} p=argmin{yiqyi0:yiq>0}
  6. Update [ I , Y , y 0 ] [I,Y,y_0] [I,Y,y0], goto 2
应用

max 7 x 1 + 6 x 2 7x_1+6x_2 7x1+6x2
s.t. 2 x 1 + x 2 ≤ 3 2x_1+x_2\leq 3 2x1+x23
x 1 + 4 x 2 ≤ 4 x_1+4x_2\leq 4 x1+4x24
x 1 , x 2 ≥ 0 x_1,x_2\geq 0 x1,x20

⇒ \Rightarrow min − 7 x 1 − 6 x 2 -7x_1-6x_2 7x16x2
s.t. 2 x 1 + x 2 + x 3 = 3 2x_1+x_2+x_3=3 2x1+x2+x3=3
x 1 + 4 x 2 + x 4 = 4 x_1+4x_2+x_4=4 x1+4x2+x4=4
x 1 , x 2 , x 3 , x 4 ≥ 0 x_1,x_2,x_3,x_4\geq 0 x1,x2,x3,x40

[ A b c T 0 ] = [ 2 1 1 0 3 1 4 0 1 4 − 7 − 6 0 0 0 ] \begin{bmatrix} A&b\\ c^T&0 \end{bmatrix}=\begin{bmatrix} 2&1&1&0&3\\ 1&4&0&1&4\\ -7&-6&0&0&0 \end{bmatrix} [AcTb0]= 217146100010340

B = [ a 3 , a 4 ] B=[a_3,a_4] B=[a3,a4]

x = [ 0 0 3 4 ] x=\begin{bmatrix} 0\\ 0\\ 3\\ 4 \end{bmatrix} x= 0034

r B T = [ − 7 , − 6 ] ⇒ q = 1 r_B^T=[-7,-6]\Rightarrow q=1 rBT=[7,6]q=1

z 0 = 0 z_0=0 z0=0

p = a r g m i n { y i 0 y i q : y i q > 0 } p=argmin\{\frac{y_{i0}}{y_{iq}}:y_{iq}>0\} p=argmin{yiqyi0:yiq>0}
3 2 \frac{3}{2} 23 v.s. 4 1 ⇒ p = 1 \frac{4}{1}\Rightarrow p=1 14p=1

B ′ = [ a 1 , a 4 ] B'=[a_1,a_4] B=[a1,a4]

[ 1 1 2 1 2 0 3 2 0 3 1 2 − 1 2 1 5 2 0 − 5 2 7 2 0 21 2 ] \begin{bmatrix} 1&\frac{1}{2}&\frac{1}{2}&0&\frac{3}{2}\\ 0&3\frac{1}{2}&-\frac{1}{2}&1&\frac{5}{2}\\ 0&-\frac{5}{2}&\frac{7}{2}&0&\frac{21}{2} \end{bmatrix} 10021321252121270102325221

x = [ 3 2 , 0 , 0 , 5 2 ] T x=[\frac{3}{2},0,0,\frac{5}{2}]^T x=[23,0,0,25]T

z 0 = − 21 2 z_0=-\frac{21}{2} z0=221

r D T = [ − 5 2 , 7 2 ] ⇒ q = 2 r_D^T=[-\frac{5}{2},\frac{7}{2}]\Rightarrow q=2 rDT=[25,27]q=2

y i 0 y i q : 3 2 1 2 = 3 \frac{y_{i0}}{y_{iq}}: \frac{\frac{3}{2}}{\frac{1}{2}}=3 yiqyi0:2123=3 v.s. 5 2 7 2 = 5 7 ⇒ p = 2 \frac{\frac{5}{2}}{\frac{7}{2}}=\frac{5}{7}\Rightarrow p=2 2725=75p=2

[ 1 0 4 7 − 1 7 8 7 0 1 − 1 7 2 7 5 7 0 0 22 7 5 7 86 7 ] \begin{bmatrix} 1&0&\frac{4}{7}&-\frac{1}{7}&\frac{8}{7}\\ 0&1&-\frac{1}{7}&\frac{2}{7}&\frac{5}{7}\\ 0&0&\frac{22}{7}&\frac{5}{7}&\frac{86}{7} \end{bmatrix} 10001074717227172757875786

B = [ a 1 , a 2 ] , x = [ 8 7 , 5 7 , 0 , 0 ] T , z = − 86 7 , r D T = [ 22 7 , 5 7 ] ≥ 0 B=[a_1,a_2],x=[\frac{8}{7},\frac{5}{7},0,0]^T,z=-\frac{86}{7},r_D^T=[\frac{22}{7},\frac{5}{7}]\geq 0 B=[a1,a2],x=[78,75,0,0]T,z=786,rDT=[722,75]0

x x x 达到最优 !

非线性条件优化问题

约束条件只有等式的情形

min f ( x ) = 0 f(x)=0 f(x)=0
s.t. h ( x ) = 0 h(x)=0 h(x)=0

拉格朗日条件
公式

拉格朗日函数: l ( x , λ ) = f ( x ) + λ T h ( x ) l(x,\lambda)=f(x)+\lambda^Th(x) l(x,λ)=f(x)+λTh(x)

D l ( x ∗ , λ ∗ ) = 0 ⇒ { D x l ( x ∗ , λ ∗ ) = 0 D λ l ( x ∗ , λ ∗ ) = 0 Dl(x^*,\lambda^*)=0\Rightarrow \begin{cases} D_xl(x^*,\lambda^*)=0\\ D_{\lambda}l(x^*,\lambda^*)=0 \end{cases} Dl(x,λ)=0{Dxl(x,λ)=0Dλl(x,λ)=0

应用

已知长方体的表面积为 A A A,求体积的最大值。
max x 1 x 2 x 3 x_1x_2x_3 x1x2x3
s.t. x 1 x 2 + x 2 x 3 + x 1 x 3 = A 2 ( A > 0 ) x_1x_2+x_2x_3+x_1x_3=\frac{A}{2}(A>0) x1x2+x2x3+x1x3=2A(A>0)
f ( x ) = − x 1 x 2 x 3 , h ( x ) = x 1 x 2 + x 2 x 3 + x 1 x 3 − A 2 f(x)=-x_1x_2x_3,h(x)=x_1x_2+x_2x_3+x_1x_3-\frac{A}{2} f(x)=x1x2x3,h(x)=x1x2+x2x3+x1x32A
∇ f ( x ) = [ − x 2 x 3 , − x 1 x 3 , − x 1 x 2 ] T \nabla f(x)=[-x_2x_3,-x_1x_3,-x_1x_2]^T f(x)=[x2x3,x1x3,x1x2]T
∇ h ( x ) = [ x 2 + x 3 , x 1 + x 3 , x 1 + x 2 ] T \nabla h(x)=[x_2+x_3,x_1+x_3,x_1+x_2]^T h(x)=[x2+x3,x1+x3,x1+x2]T
All feasible solutions are regular.
λ ∈ R \lambda\in\mathbb{R} λR
{ ∇ f ( x ) + λ ∇ h ( x ) = 0 h ( x ) = 0 ⇒ { x 2 x 3 − λ ( x 2 + x 3 ) = 0 x 1 x 3 − λ ( x 1 + x 3 ) = 0 x 1 x 2 − λ ( x 1 + x 2 ) = 0 x 1 x 2 + x 2 x 3 + x 1 x 3 − A 2 = 0 \begin{cases} \nabla f(x)+\lambda \nabla h(x)=0\\ h(x)=0 \end{cases}\Rightarrow \begin{cases} x_2x_3-\lambda(x_2+x_3)=0\\ x_1x_3-\lambda(x_1+x_3)=0\\ x_1x_2-\lambda(x_1+x_2)=0\\ x_1x_2+x_2x_3+x_1x_3-\frac{A}{2}=0 \end{cases} {f(x)+λh(x)=0h(x)=0 x2x3λ(x2+x3)=0x1x3λ(x1+x3)=0x1x2λ(x1+x2)=0x1x2+x2x3+x1x32A=0

x 1 = x 2 = x 3 = A 6 x_1=x_2=x_3=\sqrt{\frac{A}{6}} x1=x2=x3=6A 时,取到最值

约束条件包含不等式的情形

min f ( x ) f(x) f(x)
s.t. h ( x ) = 0 h(x)=0 h(x)=0
g ( x ) ≤ 0 g(x)\leq 0 g(x)0

KKT条件
公式
  1. μ ∗ ≥ 0 \mu^*\geq 0 μ0
  2. D f ( x ∗ ) + λ ∗ T D h ( x ∗ ) + μ ∗ T D g ( x ∗ ) = 0 Df(x^*)+{\lambda^*}^TDh(x^*)+{\mu^*}^TDg(x^*)=0 Df(x)+λTDh(x)+μTDg(x)=0
  3. μ ∗ T g ( x ∗ ) = 0 {\mu^*}^Tg(x^*)=0 μTg(x)=0
应用

min − 400 R ( 10 + R ) 2 -\frac{400R}{(10+R)^2} (10+R)2400R
s.t. − R ≤ 0 -R\leq 0 R0

∇ f ( R ) = − 400 ( 10 − R ) ( 10 + R ) 3 \nabla f(R)=-\frac{400(10-R)}{(10+R)^3} f(R)=(10+R)3400(10R)

{ μ ≥ 0 D f ( x ∗ ) + λ ∗ T D h ( x ∗ ) + μ ∗ T D g ( x ∗ ) = 0 μ T g ( x ) = 0 g ( x ) ≤ 0 h ( x ) = 0 \begin{cases} \mu\geq 0\\ Df(x^*)+{\lambda^*}^TDh(x^*)+{\mu^*}^TDg(x^*)=0\\ \mu^T g(x)=0\\ g(x)\leq 0\\ h(x)=0 \end{cases} μ0Df(x)+λTDh(x)+μTDg(x)=0μTg(x)=0g(x)0h(x)=0

⇒ { μ ≥ 0 − 400 ( 10 − R ) ( 10 + R ) 3 − μ = 0 μ R = 0 R ≥ 0 \Rightarrow \begin{cases} \mu\geq 0\\ -\frac{400(10-R)}{(10+R)^3}-\mu=0\\ \mu R=0\\ R\geq 0 \end{cases} μ0(10+R)3400(10R)μ=0μR=0R0

If μ > 0 \mu>0 μ>0, then R = 0 , μ = − 4 R=0,\mu=-4 R=0,μ=4(✕)
If μ = 0 ⇒ R = 10 \mu=0\Rightarrow R=10 μ=0R=10(✓ )

考试押题

一共五道大题,我也押五道题。

FONC,SONC,SOSC的应用。
梯度下降法。
共轭方向法。
单纯形法。
KKT条件。

总结

我把这个学期讲的重点全部整理在这里了。其实这门课程的内容非常多,其中包括了很多难度比较大的内容,以及为了知识体系的完整性补充的内容,那些内容这里全都没有放上来。这里只挑选了一些难度不大,讲解较为详细,应用较广的内容。也祝所有选这门课的同学考高分!

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值