最优化方法Python计算:标准型线性规划的轴转操作

标准型线性规划
{ 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) minimizecxs.t.Ax=bxo(1)
其中, c \boldsymbol{c} c x ∈ R n \boldsymbol{x}\in\text{R}^n xRn A ∈ R m × n \boldsymbol{A}\in\text{R}^{m\times n} ARm×n m ≤ n m\leq n mn且rank A = m \boldsymbol{A}=m A=m b ∈ R m \boldsymbol{b}\in\text{R}^m bRm b ≥ o \boldsymbol{b}\geq\boldsymbol{o} bo。设 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} B1bb,称为标准型线性规划(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=B1bB1NxN.
令自由未知量 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)=(B1bo)称为问题(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)=cx0=cBxB+cNxN=cBxB=cBB1b。对任意的 x N ≥ o \boldsymbol{x}_{\boldsymbol{N}}\geq\boldsymbol{o} xNo 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 −

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值