工程优化笔记
第1章
优化模型一般形式:
min
f
(
x
)
s.t.
{
g
i
(
x
)
≥
0
,
i
=
1
,
2
,
⋯
,
m
;
h
j
(
x
)
=
0
,
i
=
1
,
2
,
⋯
,
l
;
x
=
(
x
1
,
⋯
,
x
n
)
\begin{array}{l} \min f(x) \\ \text{s.t.} \left\{ \begin{array}{l} g_{i}(x) \ge 0, i = 1, 2, \cdots, m; \\ h_{j}(x) = 0, i = 1,2, \cdots, l; \end{array} \right. \\ x = (x_1, \cdots, x_n) \end{array}
minf(x)s.t.{gi(x)≥0,i=1,2,⋯,m;hj(x)=0,i=1,2,⋯,l;x=(x1,⋯,xn)
第2章
方向导数与梯度
方向导数:
∂
f
(
x
0
)
∂
p
=
lim
x
→
0
+
f
(
x
0
+
t
e
)
−
f
(
x
0
)
t
\frac{\partial f(x_0)}{\partial p} = \lim_{x \to 0^{+}} \frac{f(x_0 + te) - f(x_0)}{t}
∂p∂f(x0)=x→0+limtf(x0+te)−f(x0)
梯度:
∇
f
(
x
)
=
(
∂
f
(
x
)
∂
f
(
x
1
)
,
∂
f
(
x
)
∂
f
(
x
2
)
,
⋯
,
∂
f
(
x
)
∂
f
(
x
n
)
)
T
\nabla f(x) = \left ( \frac{\partial f(x)}{\partial f(x_1)}, \frac{\partial f(x)}{\partial f(x_2)}, \cdots, \frac{\partial f(x)}{\partial f(x_n)} \right )^{T}
∇f(x)=(∂f(x1)∂f(x),∂f(x2)∂f(x),⋯,∂f(xn)∂f(x))T
关系:
∂
f
(
x
0
)
∂
p
=
∇
f
(
x
0
)
T
⋅
e
=
∥
∇
f
(
x
0
)
∥
⋅
cos
β
\frac{\partial f(x_0)}{\partial p} = \nabla f(x_0)^{T} \cdot e = \left \| \nabla f(x_0) \right \| \cdot \cos \beta
∂p∂f(x0)=∇f(x0)T⋅e=∥∇f(x0)∥⋅cosβ
性质:
-
梯度方向即为函数最速上升方向;负梯度方向即为函数最速下降方向。
-
函数在某点的梯度不为零,则必与过该点的等值面的切平面垂直。
-
∇ f ( x 0 ) T ⋅ p < 0 \nabla f(x_0)^{T} \cdot p < 0 ∇f(x0)T⋅p<0 ,则 p p p是函数 f ( x ) f(x) f(x)在 x 0 x_0 x0处的下降方向; ∇ f ( x 0 ) T ⋅ p > 0 \nabla f(x_0)^{T} \cdot p > 0 ∇f(x0)T⋅p>0 ,则 p p p是函数 f ( x ) f(x) f(x)在 x 0 x_0 x0处的上升方向。
Hesse矩阵
∇ 2 f ( x ) = ∇ ( ∇ f ( x ) ) = [ ∂ 2 f ( x ) ∂ x 1 2 ∂ 2 f ( x ) ∂ x 1 ⋅ ∂ x 2 ⋯ ∂ 2 f ( x ) ∂ x 1 ⋅ ∂ x n ∂ 2 f ( x ) ∂ x 2 ⋅ ∂ x 1 ∂ 2 f ( x ) ∂ x 2 2 ⋯ ∂ 2 f ( x ) ∂ x 2 ⋅ ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ( x ) ∂ x n ⋅ ∂ x 1 ∂ 2 f ( x ) ∂ x n ⋅ ∂ x 2 ⋯ ∂ 2 f ( x ) ∂ x n 2 ] \nabla^{2} f(x) = \nabla(\nabla f(x)) = \begin{bmatrix} \frac{\partial^{2} f(x)}{\partial x_1^{2}} & \frac{\partial^{2} f(x)}{\partial x_1 \cdot \partial x_2} & \cdots & \frac{\partial^{2} f(x)}{\partial x_1 \cdot \partial x_n} \\ \frac{\partial^{2} f(x)}{\partial x_2 \cdot \partial x_1} & \frac{\partial^{2} f(x)}{\partial x_2^{2}} & \cdots & \frac{\partial^{2} f(x)}{\partial x_2 \cdot \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^{2} f(x)}{\partial x_n \cdot \partial x_1} & \frac{\partial^{2} f(x)}{\partial x_n \cdot \partial x_2} & \cdots & \frac{\partial^{2} f(x)}{\partial x_n^{2}} \\ \end{bmatrix} ∇2f(x)=∇(∇f(x))= ∂x12∂2f(x)∂x2⋅∂x1∂2f(x)⋮∂xn⋅∂x1∂2f(x)∂x1⋅∂x2∂2f(x)∂x22∂2f(x)⋮∂xn⋅∂x2∂2f(x)⋯⋯⋱⋯∂x1⋅∂xn∂2f(x)∂x2⋅∂xn∂2f(x)⋮∂xn2∂2f(x)
多元函数Taylor展开公式
f ( x ) = f ( x ∗ ) + ∇ f ( x ∗ ) ( x − x ∗ ) + 1 2 ( x − x ∗ ) T ∇ 2 f ( x ∗ ) ( x − x ∗ ) + o ( ∥ x − x ∗ ∥ 2 ) f(x) = f(x^{*}) + \nabla f(x^{*})(x - x^{*}) + \frac{1}{2} (x - x^{*})^{T} \nabla^{2} f(x^{*})(x - x^{*}) + o(\left \| x - x^{*} \right \| ^{2}) f(x)=f(x∗)+∇f(x∗)(x−x∗)+21(x−x∗)T∇2f(x∗)(x−x∗)+o(∥x−x∗∥2)
二次函数一般形式
f ( x ) = 1 2 x T Q x + b T x + c Q = Q T f(x) = \frac{1}{2} x^{T}Qx + b^{T}x + c \\ Q = Q^{T} f(x)=21xTQx+bTx+cQ=QT
二次型:
f
(
x
)
=
1
2
x
T
Q
x
f(x) = \frac{1}{2} x^{T}Qx
f(x)=21xTQx
判断对称矩阵是否正定:一个
n
×
n
n \times n
n×n对称矩阵
Q
Q
Q是正定矩阵的充要条件是各阶顺序主子式都是正的。
Q Q Q正定,则二次型 f ( x ) = 1 2 x T Q x f(x) = \frac{1}{2} x^{T}Qx f(x)=21xTQx、二次函数 f ( x ) = 1 2 x T Q x + b T x + c f(x) = \frac{1}{2} x^{T}Qx + b^{T}x + c f(x)=21xTQx+bTx+c具有唯一极小点,该极小点为 x ∗ = − Q − 1 b x^{*} = -Q^{-1}b x∗=−Q−1b。
多元函数极值判别条件
- 必要条件
设 f ( x ) : D ⊆ R n → R f(x):D \subseteq R^{n} \to R f(x):D⊆Rn→R, x ∗ x^{*} x∗为 D D D的一个内点, f ( x ) f(x) f(x)在 x ∗ x^{*} x∗可微, x ∗ x^{*} x∗为 f ( x ) f(x) f(x)的极值点,则 ∇ f ( x ∗ ) = 0 \nabla f(x^{*}) = 0 ∇f(x∗)=0
- 充分条件
设 f ( x ) : D ⊆ R n → R f(x):D \subseteq R^{n} \to R f(x):D⊆Rn→R, x ∗ x^{*} x∗为 D D D的一个内点, f ( x ) f(x) f(x)在 x ∗ x^{*} x∗二次连续可微, ∇ f ( x ∗ ) = 0 \nabla f(x^{*}) = 0 ∇f(x∗)=0, ∇ 2 f ( x ) \nabla ^{2} f(x) ∇2f(x)正定,则 x ∗ x^{*} x∗为 f ( x ) f(x) f(x)的严格局部极小点
可行方向
以点 x x x为初始点的向量 x + α h x + \alpha h x+αh均位于 D D D的内部,则称 h h h为点 x x x的一个可行方向。
若 x x x为 D D D的内点,则任何方向 h h h都是可行方向;若 x x x为 D D D的边界点,则只有一部分为可行方向
凸组合
设 x 1 , x 2 , ⋯ , x m ∈ R n , λ i ≥ 0 , ∑ i = 1 m λ i = 1 x^{1},x^{2}, \cdots, x^{m} \in R^{n}, \lambda_{i} \ge 0, \sum_{i = 1}^{m} \lambda_{i} = 1 x1,x2,⋯,xm∈Rn,λi≥0,∑i=1mλi=1,则称 ∑ i = 1 m λ i x i \sum_{i = 1}^{m} \lambda_{i} x_i ∑i=1mλixi为 x 1 , x 2 , ⋯ , x m x^{1},x^{2}, \cdots, x^{m} x1,x2,⋯,xm的凸组合
凸集
定义:
若集合 D D D中任意两点的连线都属于 D D D,则称 D D D为凸集。
( α x 1 + ( 1 − α ) x 2 ∈ D , ∀ α ∈ [ 0 , 1 ] \alpha x^{1} + (1 - \alpha) x^{2} \in D, \forall \alpha \in [0,1] αx1+(1−α)x2∈D,∀α∈[0,1])
规定空集和单元素也是凸集
性质:
- 设 A , B A,B A,B是凸集,则 A ∩ B , A + B , A − B A \cap B, A + B, A - B A∩B,A+B,A−B也是凸集。但是 A ∪ B A \cup B A∪B不一定为凸集。
- S S S是凸集 ⇔ \Leftrightarrow ⇔ S S S中任意有限多个点的凸组合属于 S S S。
凸函数
设集合
D
D
D为凸集,函数
f
:
D
→
R
f:D \to R
f:D→R,若
∀
x
1
,
x
2
∈
D
,
α
∈
(
0
,
1
)
\forall x^{1}, x^{2} \in D, \alpha \in (0, 1)
∀x1,x2∈D,α∈(0,1),均有
f
(
α
x
1
+
(
1
−
α
)
x
2
)
≤
α
f
(
x
1
)
+
(
1
−
α
)
f
(
x
2
)
f(\alpha x^{1} + (1 - \alpha)x^{2}) \le \alpha f(x^{1}) + (1 - \alpha)f(x^{2})
f(αx1+(1−α)x2)≤αf(x1)+(1−α)f(x2)
凸函数判定定理
- 一阶条件
设集合 D D D为非空凸集,函数 f : D → R f:D \to R f:D→R在 D D D上可微,则
(1)
f
f
f在
D
D
D上为凸函数
⇔
\Leftrightarrow
⇔
∀
x
1
,
x
2
∈
D
\forall x^{1},x^{2} \in D
∀x1,x2∈D,恒有
f
(
x
2
)
≥
f
(
x
1
)
+
∇
f
(
x
1
)
T
(
x
2
−
x
1
)
f(x^{2}) \ge f(x^{1}) + \nabla f(x^{1})^{T}(x^{2} - x^{1})
f(x2)≥f(x1)+∇f(x1)T(x2−x1)
(2)
f
f
f在
D
D
D上为严格凸函数
⇔
\Leftrightarrow
⇔
∀
x
1
,
x
2
∈
D
\forall x^{1},x^{2} \in D
∀x1,x2∈D,恒有
f
(
x
2
)
>
f
(
x
1
)
+
∇
f
(
x
1
)
T
(
x
2
−
x
1
)
f(x^{2}) > f(x^{1}) + \nabla f(x^{1})^{T}(x^{2} - x^{1})
f(x2)>f(x1)+∇f(x1)T(x2−x1)
- 二阶条件
设集合 D D D为非空凸集,函数 f : D → R f:D \to R f:D→R在 D D D上二次可微,则
(1) f f f在 D D D上为凸函数 ⇔ \Leftrightarrow ⇔ ∀ x ∈ D \forall x \in D ∀x∈D, ∇ 2 f ( x ) \nabla^{2}f(x) ∇2f(x)半正定
(2) f f f在 D D D上为严格凸函数 ⇔ \Leftrightarrow ⇔ ∀ x ∈ D \forall x \in D ∀x∈D, ∇ 2 f ( x ) \nabla^{2}f(x) ∇2f(x)正定
第3章 一维搜索
线搜索迭代基本步骤
- 选择初始点 x 1 x^{1} x1,并令 k = 1 k = 1 k=1
- 确定搜索方向 d k d^{k} dk
- 从 x k x^{k} xk出发,沿方向 d k d^{k} dk求步长 λ k \lambda_{k} λk,以产生下一个迭代点 x k + 1 x^{k + 1} xk+1
- 检测 x k + 1 x^{k + 1} xk+1是否为极小点或近似极小点。若是,停止迭代;否则,令 k = k + 1 k = k + 1 k=k+1,跳转第2步继续迭代。
精确一维搜索
”成功-失败“法
- 选取初始 λ 0 , h 0 \lambda_{0}, h_{0} λ0,h0,计算 φ 0 = φ ( λ 0 ) \varphi _{0} = \varphi(\lambda _{0}) φ0=φ(λ0)
- 令 λ k + 1 = λ k + h k \lambda _{k + 1} = \lambda _{k} + h_{k} λk+1=λk+hk,计算 φ k + 1 = φ ( λ k + 1 ) \varphi _{k + 1} = \varphi(\lambda _{k + 1}) φk+1=φ(λk+1)。如果 φ k + 1 < φ k \varphi _{k + 1} < \varphi _{k} φk+1<φk,则执行第3步;否则,跳转第4步。
- 增加步长。令 h k + 1 = 2 h k h _{k + 1} = 2h _{k} hk+1=2hk,跳转第2步进行下一次迭代。
- 如果 k = 0 k = 0 k=0,则应该反向搜索,令 h 1 = − h 0 h_{1} = -h_{0} h1=−h0,跳转第2步,开始迭代;否则,停止迭代,输出区间。
0.618法
- 选取初始区间 [ a , b ] [a,b] [a,b],计算插入点 x 1 = a + 0.382 ( b − a ) , x 2 = a + 0.618 ( b − a ) x_{1} = a + 0.382(b - a),x_{2} = a + 0.618(b - a) x1=a+0.382(b−a),x2=a+0.618(b−a)
- 如果 ∣ b − a ∣ < ε \left | b - a \right | < \varepsilon ∣b−a∣<ε,则停止迭代,可选择区间中点作为输出点 x ∗ = a + b 2 x^{*} = \frac{a + b}{2} x∗=2a+b。否则,当 f ( x 1 ) > f ( x 2 ) f(x_1) > f(x_2) f(x1)>f(x2)时,跳转第3步;当 f ( x 1 ) ≤ f ( x 2 ) f(x_1) \le f(x_2) f(x1)≤f(x2)时,跳转第4步。
- 令 a = x 1 , x 1 = x 2 a = x_{1}, x_{1} = x_{2} a=x1,x1=x2,计算 x 2 = a + 0.618 ( b − a ) x_{2} = a + 0.618(b - a) x2=a+0.618(b−a),跳转第2步
- 令 b = x 2 , x 2 = x 1 b = x_{2}, x_{2} = x_{1} b=x2,x2=x1,计算 x 1 = a + 0.382 ( b − a ) x_{1} = a + 0.382(b - a) x1=a+0.382(b−a),跳转第2步
二分法
- 计算 x 0 = a + b 2 x_{0} = \frac{a + b}{2} x0=2a+b
- 如果 f ′ ( x 0 ) < 0 f'(x_0) < 0 f′(x0)<0,令 a = x 0 a = x_0 a=x0,跳转第3步;如果 f ′ ( x 0 ) > 0 f'(x_0) > 0 f′(x0)>0,令 b = x 0 b = x_0 b=x0,跳转第3步;如果 f ′ ( x 0 ) = 0 f'(x_0) = 0 f′(x0)=0,停止迭代, x ∗ = x 0 x^{*} = x_0 x∗=x0。
- 如果 ∣ b − a ∣ < ε \left | b - a \right | < \varepsilon ∣b−a∣<ε,则 x ∗ = a + b 2 x^{*} = \frac{a + b}{2} x∗=2a+b,停止迭代;否则,跳转第1步。
牛顿法
- 给定初始点 x 1 x_1 x1
- 计算 f ′ ( x k ) , f ′ ′ ( x k ) f'(x_k),f''(x_k) f′(xk),f′′(xk)
- 如果 ∣ f ′ ( x k ) ∣ < ε \left | f'(x_k) \right | < \varepsilon ∣f′(xk)∣<ε,停止迭代, x ∗ ≈ x k x^{*} \approx x_k x∗≈xk;否则,跳转第4步
- 计算 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=xk−f′′(xk)f′(xk),令 k = k + 1 k = k + 1 k=k+1,跳转第2步。
三点二次插值法
- 寻找三个初始点,满足条件: x 1 < x 2 < x 3 , f ( x 1 ) > f ( x 2 ) < f ( x 3 ) x_1 < x_2 < x_3, f(x_1) > f(x_2) < f(x_3) x1<x2<x3,f(x1)>f(x2)<f(x3)
- 构造 ϕ ( x ) = a 0 + a 1 x + a 2 x 2 \phi(x) = a_0 + a_{1}x + a_{2}x^{2} ϕ(x)=a0+a1x+a2x2,根据 x 1 , x 2 , x 3 , f ( x 1 ) , f ( x 2 ) , f ( x 3 ) x_1, x_2, x_3, f(x_1), f(x_2), f(x_3) x1,x2,x3,f(x1),f(x2),f(x3)求解出 a 0 , a 1 , a 3 a_0, a_1, a_3 a0,a1,a3。由二次函数性质, ϕ ( x ) \phi(x) ϕ(x)极小值点为 x ˉ = − a 1 2 a 2 \bar{x} = - \frac{a_{1}}{2a_{2}} xˉ=−2a2a1
- 如果 ∣ x 2 − x ˉ ∣ < ε \left | x_{2} - \bar{x} \right | < \varepsilon ∣x2−xˉ∣<ε,则迭代结束,取 x ∗ = x ˉ x^{*} = \bar{x} x∗=xˉ;否则,在点 x 1 , x 2 , x 3 , x ˉ x_1, x_2, x_3, \bar{x} x1,x2,x3,xˉ中,选取使得 f ( x ) f(x) f(x)最小的点作为新的 x 2 x_2 x2,新的 x 1 , x 3 x_1, x_3 x1,x3为离新的 x 2 x_2 x2最近的左右两点,跳转第2步,继续迭代。
非精确一维搜索
Armijo-Goldstein准则
λ
k
\lambda_{k}
λk要满足下式:
{
f
(
x
k
+
λ
k
d
k
)
−
f
(
x
k
)
≤
λ
k
ρ
g
k
T
d
k
f
(
x
k
+
λ
k
d
k
)
−
f
(
x
k
)
≥
λ
k
(
1
−
ρ
)
g
k
T
d
k
\left\{ \begin{array}{l} f(x^{k} + \lambda_{k}d^{k}) - f(x^{k}) \le \lambda_{k} \rho g_{k}^{T}d^{k} \\ f(x^{k} + \lambda_{k}d^{k}) - f(x^{k}) \ge \lambda_{k} (1 - \rho) g_{k}^{T}d^{k} \end{array} \right.
{f(xk+λkdk)−f(xk)≤λkρgkTdkf(xk+λkdk)−f(xk)≥λk(1−ρ)gkTdk
其中,一般
ρ
∈
(
0
,
1
2
)
\rho \in (0, \frac{1}{2})
ρ∈(0,21)
Wolfe-Powell准则
λ
k
\lambda_{k}
λk要满足下式:
{
f
(
x
k
+
λ
k
d
k
)
−
f
(
x
k
)
≤
λ
k
ρ
g
k
T
d
k
g
k
+
1
T
d
k
≥
σ
g
k
T
d
k
\left\{ \begin{array}{l} f(x^{k} + \lambda_{k}d^{k}) - f(x^{k}) \le \lambda_{k} \rho g_{k}^{T}d^{k} \\ g_{k + 1}^{T}d^{k} \ge \sigma g_{k}^{T}d^{k} \end{array} \right.
{f(xk+λkdk)−f(xk)≤λkρgkTdkgk+1Tdk≥σgkTdk
其中,一般
ρ
∈
(
0
,
1
)
,
σ
∈
(
ρ
,
1
)
\rho \in (0, 1), \sigma \in (\rho, 1)
ρ∈(0,1),σ∈(ρ,1)
后退法
- 令 λ = 1 \lambda = 1 λ=1
- 如果 f ( x k + λ k d k ) − f ( x k ) ≤ λ k ρ g k T d k f(x^{k} + \lambda_{k}d^{k}) - f(x^{k}) \le \lambda_{k} \rho g_{k}^{T}d^{k} f(xk+λkdk)−f(xk)≤λkρgkTdk,则令 λ k = λ \lambda_{k} = \lambda λk=λ,停止迭代。否则,跳转第3步。
- 令 λ = ω λ , ω ∈ [ l , u ] \lambda = \omega \lambda, \omega \in [l, u] λ=ωλ,ω∈[l,u],跳转第2步。
第4章 无约束优化方法
最速下降法
- 给定初始条件 x 1 , ε > 0 , k = 1 x^{1}, \varepsilon > 0, k = 1 x1,ε>0,k=1
- 若 ∥ ∇ f ( x k ) ∥ ≤ ε \left \| \nabla f(x^{k}) \right \| \le \varepsilon ∇f(xk) ≤ε,则 x ∗ ≈ x k x^{*} \approx x^{k} x∗≈xk;否则,跳转第3步。
- 令 d k = − ∇ f ( x k ) d^{k} = - \nabla f(x^{k}) dk=−∇f(xk)
- 由精确一维搜索确定步长 λ k \lambda_{k} λk,令 x k + 1 = x k + λ k d k , k = k + 1 x^{k + 1} = x^{k} + \lambda_{k}d^{k}, k = k + 1 xk+1=xk+λkdk,k=k+1,跳转第2步继续迭代。
特征:
- 相邻两次迭代的搜索方向相互正交。
- 对于二元正定二次函数,最速下降法产生的点列:偶数点列均在一条直线上,奇数点列均在一条直线上,且都过最优点。
牛顿法
- 给定初始条件 x 1 , ε > 0 , k = 1 x^{1}, \varepsilon > 0, k = 1 x1,ε>0,k=1
- 若 ∥ ∇ f ( x k ) ∥ ≤ ε \left \| \nabla f(x^{k}) \right \| \le \varepsilon ∇f(xk) ≤ε,则 x ∗ ≈ x k x^{*} \approx x^{k} x∗≈xk;否则,跳转第3步。
- 令 d k = − ( ∇ 2 f ( x k ) ) − 1 ∇ f ( x k ) d^{k} = - (\nabla^{2} f(x^{k}))^{-1}\nabla f(x^{k}) dk=−(∇2f(xk))−1∇f(xk)
- 令 x k + 1 = x k + d k , k = k + 1 x^{k + 1} = x^{k} + d^{k}, k = k + 1 xk+1=xk+dk,k=k+1,(步长取常数1),跳转第2步继续迭代。
当 f f f为正定二次函数时,用牛顿法可从任意初始点一步迭代到极小点。
牛顿法改进:
- 阻尼牛顿法
在牛顿法中,加入精确一维搜索求最佳步长 λ k \lambda_{k} λk,所以迭代点为 x k + 1 = x k + λ k d k x^{k + 1} = x^{k} + \lambda_{k}d^{k} xk+1=xk+λkdk
-
每m次迭代使用同一个Hesse阵
-
Goldstein-Price方法
d k = { − ( ∇ 2 f ( x k ) ) − 1 ∇ f ( x k ) , ∇ 2 f ( x k ) 正定 − ∇ f ( x k ) , 否则 d^{k} = \left\{ \begin{array} {l} - (\nabla^{2} f(x^{k}))^{-1}\nabla f(x^{k}), \nabla^{2}f(x^{k}) \text{正定} \\ - \nabla f(x^{k}), \text{否则} \end{array} \right. dk={−(∇2f(xk))−1∇f(xk),∇2f(xk)正定−∇f(xk),否则
并且采用Armijo-Goldstein准则进行非精确一维搜索。
- Levenberg-Marguard方法
找到尽可能小的 μ > 0 \mu > 0 μ>0使得 ∇ 2 f ( x k ) + μ I \nabla ^{2}f(x^{k}) + \mu I ∇2f(xk)+μI正定,用 ∇ 2 f ( x k ) + μ I \nabla ^{2}f(x^{k}) + \mu I ∇2f(xk)+μI取代 ∇ 2 f ( x k ) \nabla ^{2}f(x^{k}) ∇2f(xk)进行迭代。
共轭梯度法
定义1:设 A n × n A_{n \times n} An×n是对称正定矩阵, p , q ∈ R n p, q \in R^{n} p,q∈Rn,如果 p T A q = 0 p^{T}Aq = 0 pTAq=0,则称向量 p p p和 q q q是 A A A共轭的。
定义2:如果对有限个向量 p 1 , p 2 , ⋯ , p m p^{1}, p^{2}, \cdots, p^{m} p1,p2,⋯,pm,有 ( p i ) T A p j = 0 , ( i ≠ j , j = 1 , 2 , ⋯ , m ) (p^{i})^{T}Ap^{j} = 0, (i \ne j, j = 1, 2, \cdots, m) (pi)TApj=0,(i=j,j=1,2,⋯,m),则称这个向量组为 A A A的共轭向量组。
步骤:
令 f ( x ) = 1 2 x T A x + b T x + c f(x) = \frac{1}{2}x^{T}Ax + b^{T}x + c f(x)=21xTAx+bTx+c, A A A对称正定。
- 从初始点 x 1 x^{1} x1出发,先沿负梯度方向进行精确一维搜索: p 1 = − ∇ f ( x 1 ) , x 2 = x 1 + λ 1 p 1 p^{1} = - \nabla f(x^{1}), x^{2} = x^{1} + \lambda_{1}p^{1} p1=−∇f(x1),x2=x1+λ1p1
- 如果 ∥ ∇ f ( x k + 1 ) ∥ ≤ ε \left \| \nabla f(x^{k + 1}) \right \| \le \varepsilon ∇f(xk+1) ≤ε,停止迭代 x ∗ = x k + 1 x^{*} = x^{k + 1} x∗=xk+1;否则,跳转第3步。
- 令
p k + 1 = − ∇ f ( x k + 1 ) + α k p k , α k = ∇ f ( x k ) A p k ( p k ) T A p k p^{k + 1} = - \nabla f(x^{k + 1}) + \alpha_{k}p^{k}, \alpha_{k} = \frac{\nabla f(x^{k})Ap^{k}}{(p^{k})^{T}Ap^{k}} pk+1=−∇f(xk+1)+αkpk,αk=(pk)TApk∇f(xk)Apk
- 在 p k p^{k} pk方向上进行精确一维搜索得到 λ k \lambda_{k} λk,令 x k + 1 = x k + λ k p k x^{k + 1} = x^{k} + \lambda_{k}p^{k} xk+1=xk+λkpk,跳转第2步继续迭代。
等价公式:
f f f为正定二次函数,令 g k = ∇ f ( x k ) g_{k} = \nabla f(x^{k}) gk=∇f(xk)
- Daniel共轭梯度法
α k = ( g k + 1 ) T A p k ( p k ) T A p k \alpha_{k} = \frac{(g_{k + 1})^{T}Ap^{k}}{(p^{k})^{T}Ap^{k}} αk=(pk)TApk(gk+1)TApk
- SW共轭梯度法
α k = ( g k + 1 ) T ( g k + 1 − g k ) ( p k ) T ( g k + 1 − g k ) \alpha_{k} = \frac{(g_{k + 1})^{T}(g_{k + 1} - g_{k})}{(p^{k})^{T}(g_{k + 1} - g_{k})} αk=(pk)T(gk+1−gk)(gk+1)T(gk+1−gk)
g k + 1 − g k = A x k + 1 + b − g k = A ( x k + λ k p k ) + b − g k = λ k A p k g_{k + 1} - g_{k} = Ax^{k + 1} + b - g_{k} = A(x^{k} + \lambda_{k}p^{k}) + b - g_{k} = \lambda_{k}Ap^{k} gk+1−gk=Axk+1+b−gk=A(xk+λkpk)+b−gk=λkApk
- DM共轭梯度法
α k = − ( g k + 1 ) T g k + 1 ( p k ) T g k \alpha_{k} = - \frac{(g_{k + 1})^{T}g_{k + 1}}{(p^{k})^{T}g_{k}} αk=−(pk)Tgk(gk+1)Tgk+1
( g k + 1 ) T g k = 0 , ( g k + 1 ) T p k = 0 (g_{k + 1})^{T}g_{k} = 0, (g_{k + 1})^{T}p^{k} = 0 (gk+1)Tgk=0,(gk+1)Tpk=0
- FR共轭梯度法
α k = ∥ g k + 1 ∥ 2 ∥ g k ∥ 2 \alpha_{k} = \frac{\left \| g_{k + 1} \right \| ^{2}}{\left \| g_{k} \right \| ^{2}} αk=∥gk∥2∥gk+1∥2
( p k ) T g k = ( − g k + α k − 1 p k − 1 ) T g k = − ( g k ) T g k (p^{k})^{T}g_{k} = (-g_{k} + \alpha_{k - 1}p^{k - 1})^{T}g_{k} = - (g_{k})^{T}g_{k} (pk)Tgk=(−gk+αk−1pk−1)Tgk=−(gk)Tgk
- PPR共轭梯度法
α k = ( g k + 1 ) T ( g k + 1 − g k ) ( g k ) T g k \alpha_{k} = \frac{(g_{k + 1})^{T}(g_{k + 1} - g_{k})}{(g^{k})^{T}g_{k}} αk=(gk)Tgk(gk+1)T(gk+1−gk)
变尺度法(拟牛顿法)
构造 H k H_{k} Hk满足下列条件:
- 拟牛顿性质( Δ x k = H k + 1 Δ g k \Delta x^{k} = H_{k + 1} \Delta g_{k} Δxk=Hk+1Δgk)
- 对称正定
- 当 f f f是 n n n元正定二次函数时, p 1 , p 2 , ⋯ , p n p^{1}, p^{2}, \cdots, p^{n} p1,p2,⋯,pn是共轭向量组,其中 p k = − H k g k p^{k} = -H_{k}g_{k} pk=−Hkgk
H k H_{k} Hk构造一般策略:
- H 1 H_{1} H1取任意一个 n n n阶对称正定矩阵,通常取单位阵 I I I
- 修正 H k H_{k} Hk,给出 H k + 1 H_{k + 1} Hk+1,令 H k + 1 = H k + Δ H k H_{k + 1} = H_{k} + \Delta H_{k} Hk+1=Hk+ΔHk。(构造不同的 Δ H k \Delta H_{k} ΔHk,得到不同的变尺度法)
对称秩1校正法
Δ H k = ( Δ x k − H k Δ g k ) ( Δ x k − H k Δ g k ) T ( Δ x k − H k Δ g k ) T Δ g k \Delta H_{k} = \frac{(\Delta x^{k} - H_{k}\Delta g_{k})(\Delta x^{k} - H_{k}\Delta g_{k})^{T}}{(\Delta x^{k} - H_{k}\Delta g_{k})^{T}\Delta g_{k}} ΔHk=(Δxk−HkΔgk)TΔgk(Δxk−HkΔgk)(Δxk−HkΔgk)T
步骤:
- 选取初始量 x 1 , H 1 x^{1}, H_{1} x1,H1
- 计算 p k = − H k g k p^{k} = -H_{k}g_{k} pk=−Hkgk
- 用精确一维搜索求得步长 λ k \lambda_{k} λk,得 x k + 1 = x k + λ k p k x^{k + 1} = x^{k} + \lambda_{k}p^{k} xk+1=xk+λkpk
- 令
H k + 1 = H k + ( Δ x k − H k Δ g k ) ( Δ x k − H k Δ g k ) T ( Δ x k − H k Δ g k ) T Δ g k H_{k + 1} = H_{k} + \frac{(\Delta x^{k} - H_{k}\Delta g_{k})(\Delta x^{k} - H_{k}\Delta g_{k})^{T}}{(\Delta x^{k} - H_{k}\Delta g_{k})^{T}\Delta g_{k}} Hk+1=Hk+(Δxk−HkΔgk)TΔgk(Δxk−HkΔgk)(Δxk−HkΔgk)T
跳转第2步。
DFP算法
H k + 1 = H k + Δ x k ( Δ x k ) T ( Δ x k ) T Δ g k − H k Δ g k ( Δ g k ) T H k ( Δ g k ) T H k Δ g k H_{k + 1} = H_{k} + \frac{\Delta x^{k}(\Delta x^{k})^{T}}{(\Delta x^{k})^{T}\Delta g_{k}} - \frac{H_{k}\Delta g_{k}(\Delta g_{k})^{T}H_{k}}{(\Delta g_{k})^{T}H_{k}\Delta g_{k}} Hk+1=Hk+(Δxk)TΔgkΔxk(Δxk)T−(Δgk)THkΔgkHkΔgk(Δgk)THk
BFGS算法
另一种拟牛顿性质: Δ g k = B k + 1 Δ x k \Delta g_{k} = B_{k + 1} \Delta x^{k} Δgk=Bk+1Δxk
则从DFP算法 H k H_{k} Hk的递推公式可以得到 B k B_{k} Bk的递推公式
B k + 1 = B k + Δ g k ( Δ g k ) T ( Δ g k ) T Δ x k − B k Δ x k ( Δ x k ) T B k ( Δ x k ) T B k Δ x k B_{k + 1} = B_{k} + \frac{\Delta g^{k}(\Delta g^{k})^{T}}{(\Delta g^{k})^{T}\Delta x^{k}} - \frac{B_{k}\Delta x^{k}(\Delta x^{k})^{T}B_{k}}{(\Delta x^{k})^{T}B_{k}\Delta x^{k}} Bk+1=Bk+(Δgk)TΔxkΔgk(Δgk)T−(Δxk)TBkΔxkBkΔxk(Δxk)TBk
用Sherman-Morrison公式对上式两边求逆,得:
H
k
+
1
B
F
G
S
=
H
k
+
(
1
+
(
Δ
g
k
)
T
H
k
Δ
g
k
(
Δ
x
k
)
T
Δ
g
k
)
Δ
x
k
(
Δ
x
k
)
T
(
Δ
x
k
)
T
Δ
g
k
−
Δ
x
k
(
Δ
g
k
)
T
H
k
+
H
k
Δ
g
k
(
Δ
x
k
)
T
(
Δ
x
k
)
T
Δ
g
k
H_{k + 1}^{BFGS} = H_{k} + \left ( 1 + \frac{(\Delta g_{k})^{T}H_{k}\Delta g_{k}}{(\Delta x^{k})^{T} \Delta g_{k}} \right ) \frac{\Delta x^{k}(\Delta x^{k})^{T}}{(\Delta x^{k})^{T}\Delta g_{k}} - \frac{\Delta x^{k}(\Delta g_{k})^{T}H_{k} + H_{k}\Delta g_{k} (\Delta x^{k})^{T}}{(\Delta x^{k})^{T}\Delta g_{k}}
Hk+1BFGS=Hk+(1+(Δxk)TΔgk(Δgk)THkΔgk)(Δxk)TΔgkΔxk(Δxk)T−(Δxk)TΔgkΔxk(Δgk)THk+HkΔgk(Δxk)T
Sherman-Morrison公式:
假设 A ∈ R n × n A \in \R^{n \times n} A∈Rn×n为可逆矩阵, u , v ∈ R n u, v \in \R^{n} u,v∈Rn为列向量,则 A + u v T A + uv^{T} A+uvT可逆当且仅当 1 + v T A − 1 u ≠ 0 1 + v^{T}A^{-1}u \ne 0 1+vTA−1u=0,且当 A + u v T A + uv^{T} A+uvT可逆时,该矩阵由以下公式给出:
( A + u v T ) − 1 = A − 1 − A − 1 u v T A − 1 1 + v T A − 1 u (A + uv^{T})^{-1} = A^{-1} - \frac{A^{-1}uv^{T}A^{-1}}{1 + v^{T}A^{-1}u} (A+uvT)−1=A−1−1+vTA−1uA−1uvTA−1
第5章 线性规划
标准形
min z = c T x s.t. { A x = b , ( b ≥ 0 ) x ≥ 0 x = ( x 1 , ⋯ , x n ) \begin{array}{l} \min z = c^{T}x \\ \text{s.t.} \left\{ \begin{array}{l} Ax = b, (b \ge 0) \\ x \ge 0 \end{array} \right. \\ x = (x_1, \cdots, x_n) \end{array} minz=cTxs.t.{Ax=b,(b≥0)x≥0x=(x1,⋯,xn)
如何转换成标准形:
max z = c T x ⇒ max z ′ = c T x \max z = c^{T}x \Rightarrow \max z' = c^{T}x maxz=cTx⇒maxz′=cTx
- 加入松弛变量(松弛变量在目标函数中的系数为0)
Σ a i j x j ≤ b i ⇒ { Σ a i j x j + x n + i = b i x n + i ≥ 0 \Sigma a_{ij}x_{j} \le b_{i} \Rightarrow \left\{ \begin{array}{l} \Sigma a_{ij}x_{j} + x_{n + i} = b_{i} \\ x_{n + i} \ge 0 \end{array} \right. Σaijxj≤bi⇒{Σaijxj+xn+i=bixn+i≥0
- 加入剩余变量(剩余变量在目标函数中的系数为0)
Σ a i j x j ≥ b i ⇒ { Σ a i j x j − x n + i = b i x n + i ≥ 0 \Sigma a_{ij}x_{j} \ge b_{i} \Rightarrow \left\{ \begin{array}{l} \Sigma a_{ij}x_{j} - x_{n + i} = b_{i} \\ x_{n + i} \ge 0 \end{array} \right. Σaijxj≥bi⇒{Σaijxj−xn+i=bixn+i≥0
- 变量转换
x j ≤ 0 ⇒ − x j ≥ 0 x j 无约束 ⇒ x j = x j ′ − x j ′ ′ , ( x j ′ ≥ 0 , x j ′ ′ ≥ 0 ) x_{j} \le 0 \Rightarrow -x_{j} \ge 0 \\ x_{j} \text{无约束} \Rightarrow x_{j} = x'_{j} - x''_{j},(x'_{j} \ge 0,x''_{j} \ge 0) xj≤0⇒−xj≥0xj无约束⇒xj=xj′−xj′′,(xj′≥0,xj′′≥0)
第6章 约束优化
K-T点
- 如果题目要求K-T点 x ˉ \bar{x} xˉ,则先由下面1、3式得到解,再将解带入2式,使得2式成立的解 x ˉ \bar{x} xˉ,即为K-T点。
{ ∇ f ( x ˉ ) − Σ i = 1 m w i ∇ g i ( x ˉ ) − Σ j = 1 l v j ∇ h j ( x ˉ ) = 0 w i ≥ 0 , i = 1 , ⋯ , m w i g i ( x ˉ ) = 0 , i = 1 , ⋯ , m \left\{ \begin{array}{l} \nabla f(\bar{x}) - \Sigma_{i = 1}^{m}w_{i}\nabla g_{i}(\bar{x}) - \Sigma_{j = 1}^{l}v_{j}\nabla h_{j}(\bar{x}) = 0 \\ w_{i} \ge 0, i = 1, \cdots, m \\ w_{i}g_{i}(\bar{x}) = 0, i = 1, \cdots, m \end{array} \right. ⎩ ⎨ ⎧∇f(xˉ)−Σi=1mwi∇gi(xˉ)−Σj=1lvj∇hj(xˉ)=0wi≥0,i=1,⋯,mwigi(xˉ)=0,i=1,⋯,m
- 如果验证某点 x ˉ \bar{x} xˉ是否为K-T点,则先由下面1式得到解,解中使得2式成立的 x ˉ \bar{x} xˉ就是K-T点。
{ ∇ f ( x ˉ ) − Σ i = 1 m w i ∇ g i ( x ˉ ) − Σ j = 1 l v j ∇ h j ( x ˉ ) = 0 w i ≥ 0 , i = 1 , ⋯ , m w i g i ( x ˉ ) = 0 , i = 1 , ⋯ , m \left\{ \begin{array}{l} \nabla f(\bar{x}) - \Sigma_{i = 1}^{m}w_{i}\nabla g_{i}(\bar{x}) - \Sigma_{j = 1}^{l}v_{j}\nabla h_{j}(\bar{x}) = 0 \\ w_{i} \ge 0, i = 1, \cdots, m \\ w_{i}g_{i}(\bar{x}) = 0, i = 1, \cdots, m \end{array} \right. ⎩ ⎨ ⎧∇f(xˉ)−Σi=1mwi∇gi(xˉ)−Σj=1lvj∇hj(xˉ)=0wi≥0,i=1,⋯,mwigi(xˉ)=0,i=1,⋯,m
罚函数
基本思想:
将约束非线性优化问题转化为一系列无约束优化问题。对于在一系列无约束的求解中企图违反约束的极小点给予很大的目标函数值,从而迫使无约束的极小点:要么无限向可行域靠近;要么一直保持在可行域内,直到收敛到原来约束优化的极小点。
min
F
(
x
,
σ
)
=
f
(
x
)
+
σ
p
(
x
)
\min F(x, \sigma) = f(x) + \sigma p(x)
minF(x,σ)=f(x)+σp(x)
外点罚
罚函数
p
(
x
)
p(x)
p(x)构造:
p
(
x
)
=
Σ
i
=
1
m
(
min
{
g
i
(
x
)
,
0
}
)
2
+
Σ
j
=
1
l
h
j
2
(
x
)
p(x) = \Sigma_{i = 1}^{m}(\min \{ g_{i}(x), 0 \})^{2} + \Sigma_{j = 1}^{l}h_{j}^{2}(x)
p(x)=Σi=1m(min{gi(x),0})2+Σj=1lhj2(x)
步骤:
- 给定初始点 x 0 x^{0} x0,初始罚因子 M 1 > 0 M_{1} > 0 M1>0,精度 ε > 0 \varepsilon > 0 ε>0
- 以 x k − 1 x^{k - 1} xk−1为初始点,求解无约束优化问题
min F ( x , M k ) = f ( x ) + M k p ( x ) \min F(x, M_{k}) = f(x) + M_{k} p(x) minF(x,Mk)=f(x)+Mkp(x)
得到极小点 x ∗ ( M k ) , M k → + ∞ x^{*}(M_{k}), M_{k} \to +\infty x∗(Mk),Mk→+∞,记为 x k x^{k} xk。
用解析法求驻点或者用无约束优化方法求解。
- 如果 M k p ( x k ) < ε M_{k}p(x^k) < \varepsilon Mkp(xk)<ε,则停止计算,得到近似极小点 x k x^{k} xk;否则,令 M k + 1 = c M k M_{k + 1} = cM_{k} Mk+1=cMk,跳转第2步。
性质:
- F ( x k + 1 , M k + 1 ) ≥ F ( x k , M k ) F(x^{k + 1}, M_{k + 1}) \ge F(x^{k}, M_{k}) F(xk+1,Mk+1)≥F(xk,Mk)
- p ( x k + 1 ) ≤ p ( x k ) p(x^{k + 1}) \le p(x^{k}) p(xk+1)≤p(xk)
- f ( x k + 1 ) ≥ f ( x k ) f(x^{k + 1}) \ge f(x^{k}) f(xk+1)≥f(xk)
内点罚
内点法适用于求解仅含不等式约束问题
罚函数构造:
- 倒数障碍函数
B ( x ) = Σ i = 1 m 1 g i ( x ) B(x) = \Sigma_{i = 1}^{m} \frac{1}{g_{i}(x)} B(x)=Σi=1mgi(x)1
- 对数障碍函数
B ( x ) = − Σ i = 1 m ln ( g i ( x ) ) B(x) = - \Sigma_{i = 1}^{m} \ln{(g_{i}(x))} B(x)=−Σi=1mln(gi(x))
步骤:
- 给定初始点 x 0 ∈ D x^{0} \in D x0∈D,初始罚因子 r 1 > 0 r_{1} > 0 r1>0,精度 ε > 0 \varepsilon > 0 ε>0
- 以 x k − 1 x^{k - 1} xk−1为初始点,求解无约束优化问题
min F ( x , r k ) = f ( x ) + r k B ( x ) \min F(x, r_{k}) = f(x) + r_{k} B(x) minF(x,rk)=f(x)+rkB(x)
得到极小点 x ∗ ( r k ) , r k → 0 x^{*}(r_{k}), r_{k} \to 0 x∗(rk),rk→0,记为 x k x^{k} xk。
- 如果 r k B ( x k ) < ε r_{k}B(x^k) < \varepsilon rkB(xk)<ε,则停止计算,得到近似极小点 x k x^{k} xk;否则,令 r k + 1 = c r k r_{k + 1} = cr_{k} rk+1=crk,跳转第2步。
性质:
- F ( x k + 1 , r k + 1 ) ≤ F ( x k , r k ) F(x^{k + 1}, r_{k + 1}) \le F(x^{k}, r_{k}) F(xk+1,rk+1)≤F(xk,rk)
- B ( x k + 1 ) ≥ B ( x k ) B(x^{k + 1}) \ge B(x^{k}) B(xk+1)≥B(xk)
- f ( x k + 1 ) ≤ f ( x k ) f(x^{k + 1}) \le f(x^{k}) f(xk+1)≤f(xk)
混合罚
罚函数构造:
B
(
x
)
=
−
Σ
i
∈
I
ln
(
g
i
(
x
)
)
p
(
x
)
=
Σ
i
∉
I
(
min
{
g
i
(
x
)
,
0
}
)
2
+
Σ
j
=
1
l
h
j
2
(
x
)
I
=
{
i
∣
g
i
(
x
0
)
≥
0
,
i
=
1
,
2
,
⋯
,
m
}
B(x) = - \Sigma_{i \in I} \ln{(g_{i}(x))} \\ p(x) = \Sigma_{i \notin I}(\min \{ g_{i}(x), 0 \})^{2} + \Sigma_{j = 1}^{l}h_{j}^{2}(x) \\ I = \{ i | g_{i}(x^{0}) \ge 0, i = 1, 2, \cdots, m \}
B(x)=−Σi∈Iln(gi(x))p(x)=Σi∈/I(min{gi(x),0})2+Σj=1lhj2(x)I={i∣gi(x0)≥0,i=1,2,⋯,m}
步骤:
- 给定初始点 x 0 x^{0} x0,初始罚因子 r 1 > 0 r_{1} > 0 r1>0,精度 ε > 0 \varepsilon > 0 ε>0
- 以 x k − 1 x^{k - 1} xk−1为初始点,求解无约束优化问题
min F ( x , r k ) = f ( x ) + r k B ( x ) + 1 r k p ( x ) \min F(x, r_{k}) = f(x) + r_{k} B(x) + \frac{1}{r_{k}}p(x) minF(x,rk)=f(x)+rkB(x)+rk1p(x)
得到极小点 x ∗ ( r k ) , r k → 0 x^{*}(r_{k}), r_{k} \to 0 x∗(rk),rk→0,记为 x k x^{k} xk。
- 如果 r k B ( x k ) < ε , 1 r k p ( x ) < ε r_{k}B(x^{k}) < \varepsilon, \frac{1}{r_{k}}p(x) < \varepsilon rkB(xk)<ε,rk1p(x)<ε,则停止计算,得到近似极小点 x k x^{k} xk;否则,令 r k + 1 = c r k r_{k + 1} = cr_{k} rk+1=crk,跳转第2步。
可行方向法
基本思想:
从可行点出发,沿着可行的下降方向进行搜索,找出使目标函数下降的新的可行点,直到满足终止条件,得到最优解 x ∗ x^{*} x∗。
Zoutendijk可行方向法
- 线性约束的非线性问题
min f ( x ) s.t. { A x ≥ b C x = e A ∈ R m m × n , C ∈ R l l × n , x ∈ R n , b ∈ R m , e ∈ R l \begin{array}{l} \min f(x) \\ \text{s.t.} \left\{ \begin{array}{l} Ax \ge b \\ Cx = e \end{array} \right. \\ A \in R_{m}^{m \times n}, C \in R_{l}^{l \times n}, x \in R^{n}, b \in R^{m}, e \in R^{l} \end{array} minf(x)s.t.{Ax≥bCx=eA∈Rmm×n,C∈Rll×n,x∈Rn,b∈Rm,e∈Rl
定理:设 x ˉ ∈ D \bar{x} \in D xˉ∈D,在 x ˉ \bar{x} xˉ处有 A 1 x ˉ = b 1 , A 2 x ˉ = b 2 A_{1}\bar{x} = b_{1}, A_{2}\bar{x} = b_{2} A1xˉ=b1,A2xˉ=b2,其中 A = ( A 1 A 2 ) , b = ( b 1 b 2 ) A = \begin{pmatrix} A_{1} \\ A_{2} \end{pmatrix}, b = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} A=(A1A2),b=(b1b2),则 d ≠ 0 d \ne 0 d=0是 x ˉ \bar{x} xˉ处的可行方向的充要条件为 A 1 d ≥ 0 , C d = 0 A_{1}d \ge 0, Cd = 0 A1d≥0,Cd=0。
步骤:
- 给定初始点 x 0 x^{0} x0
- 在点 x k x^{k} xk处将 A , b A,b A,b分解成 A = ( A 1 A 2 ) , b = ( b 1 b 2 ) A = \begin{pmatrix} A_{1} \\ A_{2} \end{pmatrix}, b = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} A=(A1A2),b=(b1b2),使得 A 1 x k = b 1 , A 2 x k > b 2 A_{1}x^{k} = b^{1}, A_{2}x^{k} > b_{2} A1xk=b1,A2xk>b2( A 1 A_{1} A1起约束作用, A 2 A_{2} A2非起约束作用),计算 ∇ f ( x k ) \nabla f(x^{k}) ∇f(xk)
- 确定可行下降方向。即求解下列线性规划,得到最优解 d k d^{k} dk:
min ( ∇ f ( x k ) ) T d s.t. { A 1 d ≥ 0 C d = 0 ∣ d j ∣ ≤ 1 , ∀ j \begin{array}{l} \min (\nabla f(x^{k}))^{T}d \\ \text{s.t.} \left\{ \begin{array}{l} A_{1}d \ge 0 \\ Cd = 0 \\ \left | d_{j} \right | \le 1, \forall j \end{array} \right. \\ \end{array} min(∇f(xk))Tds.t.⎩ ⎨ ⎧A1d≥0Cd=0∣dj∣≤1,∀j
- 如果 ( ∇ f ( x k ) ) T d = 0 (\nabla f(x^{k}))^{T}d = 0 (∇f(xk))Td=0,则算法结束, x k x^{k} xk是K-T点。否则,跳转第5步
- 利用下式求解最大步长 λ m a x \lambda_{max} λmax。
λ m a x = { min { b i ˉ d i ˉ ∣ d i ˉ < 0 } , ∃ d i ˉ < 0 + ∞ , d ˉ ≥ 0 \lambda_{max} = \left\{ \begin{array}{l} \min \{ \frac{\bar{b_{i}}}{\bar{d_{i}}} | \bar{d_{i}} < 0 \}, \exists \bar{d_{i}} < 0 \\ +\infty, \bar{d} \ge 0 \end{array} \right. \\ λmax={min{diˉbiˉ∣diˉ<0},∃diˉ<0+∞,dˉ≥0
其中, d ˉ = A 2 d k , b ˉ = b 2 − A 2 x k < 0 \bar{d} = A_{2}d^{k}, \bar{b} = b_{2} - A_{2}x^{k} < 0 dˉ=A2dk,bˉ=b2−A2xk<0
再求解如下一维搜索问题,得到最优步长
λ
k
\lambda_{k}
λk,令
x
k
+
1
=
x
k
+
λ
k
d
k
x^{k + 1} = x^{k} + \lambda_{k}d^{k}
xk+1=xk+λkdk,跳转第2步。
min
f
(
x
k
+
λ
d
k
)
s
.
t
.
0
≤
λ
≤
λ
m
a
x
\min f(x^{k} + \lambda d^{k}) \\ s.t. 0 \le \lambda \le \lambda_{max}
minf(xk+λdk)s.t.0≤λ≤λmax