起作用集法(Active Set Method)是一种用于求解约束优化问题的有效算法,特别适用于二次规划问题。以下是使用起作用集法解决二次规划问题的基本步骤和概念。" b" Y! g. s G; z1 J8 K3 k
# q# I2 j1 j3 \4 w* g### 二次规划问题的形式 * H% b! [# S' C2 h8 i Y& ]" G, [7 p+ j/ @
二次规划问题通常可以表示为:- W F: S! o4 J+ ~$ P
! d y9 M3 l3 A. x: R, ]\[ $ `6 ?6 X; [/ c% t9 P' R* j$ _\text{Minimize } f(x) = \frac{1}{2} x^T Q x + c^T x& s2 Y1 p+ y) d& I$ c+ f8 V6 N: C
\] , ^7 n$ |4 s1 k4 m. L o" f- L1 F% }5 p$ t, F5 f
约束条件为: 6 x4 r- r( J9 a1 c4 j) c/ p & M* j8 \( F5 F\[ ! g$ P6 Z& ~/ F/ DAx \leq b ( y! t3 o9 |. L% h3 {7 N# ^\]8 ^& C/ K$ h- e6 Y5 M% P, N( e- e
7 [# W) z& ?2 J S4 P& Q$ O! R6 g
\[ + l5 S% E# c2 q! R4 y% ax \geq 0 - {6 `, H/ y4 [0 ^8 Z1 O\] k; J$ ?: `4 A( X1 r3 }
9 v- G# A$ r- R. h0 R) D5 h
其中,\(Q\) 是一个对称正定矩阵,\(c\) 是一个向量,\(A\) 是约束条件的系数矩阵,\(b\) 是约束条件的右侧向量。 & u, u8 H% f2 U% B1 T. W2 r; A! Y- x1 u& W
### 起作用集法的步骤1 t/ F. X8 Q( D+ e O
3 o7 ^/ l* T* \1 ]& z+ j
1. **初始化**:" n. E2 T% S. I3 J6 J6 [
- 选择一个初始可行解 \(x_0\)。 2 u& F" {( ? [+ p8 B - 确定初始的起作用集(即当前活动的约束条件)。 0 `* T3 m. a: D1 A- D) ], o8 f: m1 [7 k) g& A
2. **构造拉格朗日函数**: . S! C! Z9 }8 x/ Q7 B - 对于当前的起作用集,构造拉格朗日函数:+ N' Y4 X. v- n6 C3 E+ t/ E
$ R G- U9 b( C
\[- e1 v3 R/ s. [, P+ I! u
L(x, \lambda) = \frac{1}{2} x^T Q x + c^T x + \lambda^T (b - Ax) : W0 ^& _' q3 Q4 d! H \] ( O' {' O1 P& E. W7 O; x3 d5 P+ p0 K: n* \2 w6 x5 y
3. **求解一阶条件**: 6 [) }" k* K. M( j2 F - 对 \(L\) 关于 \(x\) 和 \(\lambda\) 分别求偏导数,并令其等于零,得到一个方程组。 , Z" i% z; s" e0 O; F8 h0 S$ B6 f9 `3 C) I, ^6 m+ s
4. **更新解**:. {) n! r- S5 W6 Y" ^- b) q5 ?; L, | e
- 通过求解上述方程组,得到新的解 \(x\)。 3 n" E# W8 @9 w; l6 p9 \2 ~4 ` - 检查新的解是否满足所有约束条件。 " _* z& m! D- E) i, c6 Z1 \, d- o# P" r( A. E2 y3 i
5. **更新起作用集**: + c8 u& U: b/ u4 W; t( V - 如果新的解违反了某些约束条件,则将这些约束条件加入起作用集。 ) H8 q# w" x9 _# \5 h - 如果新的解满足所有约束条件,则检查是否可以退出当前的起作用集。# m. R# Q4 k+ K" ?
' m' X& ?- X) o, M% g& [) f6. **迭代**:3 D! x+ o/ m) S: L
- 重复步骤 2 到 5,直到满足收敛条件(例如,目标函数值的变化小于某个阈值)。 8 q% X* M D' c. `; O* }8 c! V# f7 Z
7. **确定最优解**:+ x& o# N! K7 W( T! Q
- 当达到收敛条件时,当前解即为最优解。% h. o: Q/ A J9 v. t
9 Y$ Q8 u1 X" J" W### 示例% M; k/ h$ W8 ]2 y* C
' q3 Q5 f, Q' Y' i/ _
假设我们有一个简单的二次规划问题:( K! e8 T, x" Y$ K