标准型线性规划
{ minimize c ⊤ x s.t. A x = b x ≥ o ( 1 ) \begin{cases} \text{minimize}\quad\boldsymbol{c}^\top\boldsymbol{x}\\ \text{s.t.}\quad\quad\boldsymbol{Ax}=\boldsymbol{b}\\ \quad\quad\quad\quad\boldsymbol{x}\geq\boldsymbol{o} \end{cases}\quad\quad\quad(1) ⎩
⎨
⎧minimizec⊤xs.t.Ax=bx≥o(1)
其中, c \boldsymbol{c} c、 x ∈ R n \boldsymbol{x}\in\text{R}^n x∈Rn, A ∈ R m × n \boldsymbol{A}\in\text{R}^{m\times n} A∈Rm×n, m ≤ n m\leq n m≤n且rank A = m \boldsymbol{A}=m A=m, b ∈ R m \boldsymbol{b}\in\text{R}^m b∈Rm且 b ≥ o \boldsymbol{b}\geq\boldsymbol{o} b≥o。设 A = ( α 1 , α 2 ⋯ , α n ) \boldsymbol{A}=(\boldsymbol{\alpha}_1,\boldsymbol{\alpha}_2\cdots,\boldsymbol{\alpha}_n) A=(α1,α2⋯,αn)。 B \boldsymbol{B} B由 A \boldsymbol{A} A中 m m m个线性无关列向量构成,满足 B − 1 b ≥ b \boldsymbol{B}^{-1}\boldsymbol{b}\geq\boldsymbol{b} B−1b≥b,称为标准型线性规划(1)的一个基矩阵,其列向量下标集记为 B i n d B_{ind} Bind。 A \boldsymbol{A} A中去掉 B \boldsymbol{B} B剩下部分记为 N \boldsymbol{N} N,称为(1)的对应 B \boldsymbol{B} B的非基矩阵,其列向量下标集记为 N i n d N_{ind} Nind。于是线性方程组 A x = b \boldsymbol{Ax}=\boldsymbol{b} Ax=b可写为 ( B , N ) ( x B x N ) = b (\boldsymbol{B},\boldsymbol{N})\begin{pmatrix}\boldsymbol{x}_{\boldsymbol{B}}\\\boldsymbol{x}_{\boldsymbol{N}}\end{pmatrix}=\boldsymbol{b} (B,N)(xBxN)=b,即
B x B + N x N = b , \boldsymbol{B}\boldsymbol{x}_{\boldsymbol{B}}+\boldsymbol{N}\boldsymbol{x}_{\boldsymbol{N}}=\boldsymbol{b}, BxB+NxN=b,
亦即
x B = B − 1 b − B − 1 N x N . \boldsymbol{x}_{\boldsymbol{B}}=\boldsymbol{B}^{-1}\boldsymbol{b}-\boldsymbol{B}^{-1}\boldsymbol{N}\boldsymbol{x}_{\boldsymbol{N}}. xB=B−1b−B−1NxN.
令自由未知量 x N = o \boldsymbol{x}_{\boldsymbol{N}}=\boldsymbol{o} xN=o得到 A x = b \boldsymbol{Ax}=\boldsymbol{b} Ax=b的解 x 0 = ( x B x N ) = ( B − 1 b o ) \boldsymbol{x}_0=\begin{pmatrix}\boldsymbol{x}_{\boldsymbol{B}}\\\boldsymbol{x}_{\boldsymbol{N}}\end{pmatrix}=\begin{pmatrix}\boldsymbol{B}^{-1}\boldsymbol{b}\\\boldsymbol{o}\end{pmatrix} x0=(xBxN)=(B−1bo)称为问题(1)的一个初始基本可行解。对初始基本可行解,对应的目标函数值 f ( x 0 ) = c ⊤ x 0 = c B ⊤ x B + c N ⊤ x N = c B ⊤ x B = c B ⊤ B − 1 b f(\boldsymbol{x}_0)=\boldsymbol{c}^\top\boldsymbol{x}_0=\boldsymbol{c}_{\boldsymbol{B}}^\top\boldsymbol{x}_{\boldsymbol{B}}+\boldsymbol{c}_{\boldsymbol{N}}^\top\boldsymbol{x}_{\boldsymbol{N}}=\boldsymbol{c}_{\boldsymbol{B}}^\top\boldsymbol{x}_{\boldsymbol{B}}=\boldsymbol{c}_{\boldsymbol{B}}^\top\boldsymbol{B}^{-1}\boldsymbol{b} f(x0)=c⊤x0=cB⊤xB+cN⊤xN=cB⊤xB=cB⊤B−1b。对任意的 x N ≥ o \boldsymbol{x}_{\boldsymbol{N}}\geq\boldsymbol{o} xN≥o, x = ( x B x N ) \boldsymbol{x}=\begin{pmatrix}\boldsymbol{x}_{\boldsymbol{B}}\\\boldsymbol{x}_{\boldsymbol{N}}\end{pmatrix} x=(xBxN),考虑目标函数
f ( x ) = c ⊤ x = c B ⊤ x B + c N ⊤ x N = c B ⊤ ( B − 1 b − B − 1 N x N ) + c N ⊤ x N = c B ⊤ B −
最优化方法Python计算:标准型线性规划的轴转操作
于 2024-07-01 15:27:17 首次发布