B站老师学习视频
1. 概述
- 线性规划的标准形式;
- 多面体的几何分解;
- 单纯形法;
- 对偶单纯形法
2. 线性规划定义
- 线性规划
Linear Programming
:目标函数为决策变量的线性函数,同时约束条件为线性等式或线性不等式约束 - 标准形式:
( L P ) min c T x s t . A x = b , x ≥ 0 \begin{equation}\begin{aligned} &(LP)\; \;\min\; c^Tx\\ &st.\;\;Ax=b,x\ge 0\\ \end{aligned}\end{equation} (LP)mincTxst.Ax=b,x≥0
其中, c ∈ R n , A ∈ R m × n , b ∈ R m c\in R^n,A\in R^{m\times n},b\in R^m c∈Rn,A∈Rm×n,b∈Rm,通常假设系数矩阵A行满秩,即 r ( A ) = m r(A)=m r(A)=m
将非标准形的线性规划问题转换为标准形式, - 1)要求最大,就取负号求最小
max d T x → min { − d T x } \begin{equation}\begin{aligned} &\max d^Tx\to \min \{-d^Tx\} \end{aligned}\end{equation} maxdTx→min{−dTx} - 2)实际给的是不等式
a
i
T
x
≤
b
i
a_i^Tx\le b_i
aiTx≤bi,标准型是等式,那么我们需要凑等式,引入变量s
a i T x ≤ b i → a i T x + s = b i , s ≥ 0 \begin{equation}\begin{aligned} &a_i^Tx\le b_i\to a_i^Tx+s=b_i,s\ge0 \end{aligned}\end{equation} aiTx≤bi→aiTx+s=bi,s≥0 - 3)实际无要求
x
≥
0
x\ge0
x≥0,需要转换变量,假设有两个正的变量,通过差值来表示负值:
x i 无需求 → x i = x i + − x i − , x i + ≥ 0 , x i − ≥ 0 \begin{equation}\begin{aligned} &x_i 无需求\to x_i=x_i^+-x_i^-,x_i^+\ge0,x_i^-\ge0 \end{aligned}\end{equation} xi无需求→xi=xi+−xi−,xi+≥0,xi−≥0 - 我们记S为可行集,
S
=
{
x
∣
A
x
=
b
,
x
≥
0
}
S=\{x\big|Ax=b,x\ge0\}
S={x
Ax=b,x≥0},容易看出S是由线性约束的描述的。这里相当于S就是多面体集合。
– 多面体 S 1 S_1 S1: 可以用四个定点P1,P2,P3,P4表示凸集合S1,并且任一点X可以由四个点的凸组合形式表示。
– 多面体 S 2 S_2 S2,假设过X点作两个边的平行线,这样得到一个M1锥区域
,这区域的线可以向右上无限延伸。
3. 多面体的基本性质
3.1 定义
极点(extremepoint)
:给凸集C,若 x ∈ C x\in C x∈C不能表示成C另外两点的凸组合,则称x为C的极点。方向(recession direction):
给出凸集C,若非零向量d满足:对于任意 x ∈ C x\in C x∈C均有
x + λ d ∈ C , ∀ λ > 0 \begin{equation} x+\lambda d \in C,\forall \lambda>0 \end{equation} x+λd∈C,∀λ>0
则称d为集合C的方向极方向(extreme direction):
若方向d不能表示成另外两个方向的正线性组合,即不存在 λ 1 , λ 2 > 0 \lambda_1,\lambda_2>0 λ1,λ2>0,使得 d = λ 1 d 1 + λ 2 d 2 d=\lambda_1d_1+\lambda_2d_2 d=λ1d1+λ2d2,则称d为C的极方向- 这个极方向很类似于矩阵里面的特征向量
- 考虑多面体 S = { x ∣ A x = b , x ≥ 0 } S=\{x\big|Ax=b,x\ge0\} S={x Ax=b,x≥0},这里假设 A m × n A_{m\times n} Am×n行满秩
-
x
∈
S
x\in S
x∈S是S的极点当且仅当x 可表示为
x
=
(
B
−
1
b
0
)
x=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}
x=
B−1b0
,其中
A=(B,N),B可逆且 B − 1 b ≥ 0 B^{-1}b\ge 0 B−1b≥0 - 解释:
— 因为A行满秩,所以可得 A A T AA^T AAT是一个 m × m m\times m m×m满秩矩阵,可得:
A = ( B , N ) , x = [ x b T x n T ] → A x = b → B x b T + N x n T = b \begin{equation} A=(B,N),x=\begin{bmatrix}x_b^T\\\\x_n^T\end{bmatrix}\to Ax=b\to Bx_b^T+Nx_n^T=b \end{equation} A=(B,N),x= xbTxnT →Ax=b→BxbT+NxnT=b - 这里的B可以看做是极大线性无关组,
x
n
T
x_n^T
xnT为非零解,即
N
x
n
T
=
0
Nx_n^T=0
NxnT=0
B x b T + N x n T = b → B x b T = b → x b T = B − 1 b \begin{equation} Bx_b^T+Nx_n^T=b\to Bx_b^T=b\to x_b^T=B^{-1}b \end{equation} BxbT+NxnT=b→BxbT=b→xbT=B−1b - 这里线性规划中需要 x ≥ 0 x\ge0 x≥0,所以就必须保证 B − 1 b ≥ 0 B^{-1}b\ge 0 B−1b≥0
- 这里的
x
n
T
x_n^T
xnT解可以由
x
b
T
x_b^T
xbT通过线性组合表出,所以通解x表示为:
x = ( x b T x n T ) = ( B − 1 b 0 ) \begin{equation} x=\begin{pmatrix}x_b^T\\\\x_n^T\end{pmatrix}=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix} \end{equation} x= xbTxnT = B−1b0
3.2 证明1
- 已知 : x = ( B − 1 b 0 ) x=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix} x= B−1b0 ,其中A=(B,N),B可逆且 B − 1 b ≥ 0 B^{-1}b\ge 0 B−1b≥0
- 证明: x ∈ S x\in S x∈S是S的极点
- 证明:
– 代入可得Ax=b ,所以可得 x ∈ S x\in S x∈S
A x = ( B N ) ( B − 1 b 0 ) = b \begin{equation} Ax=\begin{pmatrix}B&N\end{pmatrix}\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}=b \end{equation} Ax=(BN) B−1b0 =b
– 不妨设 x = λ x ˉ + ( 1 − λ ) x ~ x=\lambda \bar{x}+(1-\lambda)\tilde{x} x=λxˉ+(1−λ)x~,其中 λ ∈ ( 0 , 1 ) , x ˉ , x ~ ∈ S \lambda \in(0,1),\bar{x},\tilde{x}\in S λ∈(0,1),xˉ,x~∈S
– 可知 A x ˉ = b , x ˉ ≥ 0 , A x ~ = b , x ~ ≥ 0 A\bar{x}=b,\bar{x}\ge0,A\tilde{x}=b,\tilde{x}\ge0 Axˉ=b,xˉ≥0,Ax~=b,x~≥0
– 可将 x ˉ , x ~ \bar{x},\tilde{x} xˉ,x~分解为通解形式:
x ˉ = [ x B ˉ x N ˉ ] ; x ~ = [ x B ~ x N ~ ] ; x = ( B − 1 b 0 ) \begin{equation} \bar{x}=\begin{bmatrix}\bar{x_B}\\\\\bar{x_N}\end{bmatrix};\tilde{x}=\begin{bmatrix}\tilde{x_B}\\\\\tilde{x_N}\end{bmatrix};x=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix} \end{equation} xˉ= xBˉxNˉ ;x~= xB~xN~ ;x= B−1b0
– 代入方程可得:
( B − 1 b 0 ) = λ [ x B ˉ x N ˉ ] + ( 1 − λ ) [ x B ~ x N ~ ] ; \begin{equation} \begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}=\lambda\begin{bmatrix}\bar{x_B}\\\\\bar{x_N}\end{bmatrix}+(1-\lambda)\begin{bmatrix}\tilde{x_B}\\\\\tilde{x_N}\end{bmatrix}; \end{equation} B−1b0 =λ xBˉxNˉ +(1−λ) xB~xN~ ; - 整理可得:
0 = λ x N ˉ + ( 1 − λ ) x N ~ \begin{equation} 0=\lambda\bar{x_N}+(1-\lambda)\tilde{x_N} \end{equation} 0=λxNˉ+(1−λ)xN~ - 因为
λ
≥
0
,
1
−
λ
≥
0
,
x
N
ˉ
≥
0
,
x
N
~
≥
0
\lambda\ge0,1-\lambda\ge 0,\bar{x_N}\ge0,\tilde{x_N}\ge0
λ≥0,1−λ≥0,xNˉ≥0,xN~≥0 可得:
x N ˉ = x N ~ = 0 \begin{equation}\bar{x_N}=\tilde{x_N}=0\end{equation} xNˉ=xN~=0 - 又因为
A
x
ˉ
=
b
A\bar{x}=b
Axˉ=b,即
( B N ) ( x B ˉ 0 ) = B x B ˉ = b → x B ˉ = B − 1 b \begin{equation} \begin{pmatrix}B&N\end{pmatrix}\begin{pmatrix}\bar{x_B}\\\\0\end{pmatrix}=B\bar{x_B}=b\to \bar{x_B}=B^{-1}b \end{equation} (BN) xBˉ0 =BxBˉ=b→xBˉ=B−1b - 这样可得:
x ˉ = ( B − 1 b 0 ) \begin{equation}\bar{x}=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}\end{equation} xˉ= B−1b0 - 同理可得:
x ~ = ( B − 1 b 0 ) \begin{equation}\tilde{x}=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}\end{equation} x~= B−1b0 - 所以x点无法由两个不同的点进行凸组合,所以x是极值点
3.3 证明2
- 已知 : x ∈ S x\in S x∈S是S的极点, A x = b , x ≥ 0 Ax=b,x\ge0 Ax=b,x≥0
- 证明: x = ( B − 1 b 0 ) x=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix} x= B−1b0 ,其中A=(B,N),B可逆且 B − 1 b ≥ 0 B^{-1}b\ge 0 B−1b≥0
- 证明:
- 不妨设:
x = ( x 1 , x 2 , ⋯ , x k , 0 , ⋯ , 0 ) T , x 1 , ⋯ , x k ≥ 0 \begin{equation} x=(x_1,x_2,\cdots,x_k,0,\cdots,0)^T,x_1,\cdots,x_k\ge0 \end{equation} x=(x1,x2,⋯,xk,0,⋯,0)T,x1,⋯,xk≥0 - 考虑A的对应列
a
1
,
a
2
,
⋯
,
a
k
a_1,a_2,\cdots,a_k
a1,a2,⋯,ak,假如
a
1
,
a
2
,
⋯
,
a
k
a_1,a_2,\cdots,a_k
a1,a2,⋯,ak线性相关,则存在不全为0的系数,使得如下方程成立
θ 1 a 1 + θ 2 a 2 + ⋯ + θ k a k = 0 \begin{equation} \theta_1a_1+\theta_2a_2+\cdots+\theta_ka_k=0 \end{equation} θ1a1+θ2a2+⋯+θkak=0 - 构造n维向量
θ
=
(
θ
1
,
θ
2
,
⋯
,
θ
k
,
0
,
⋯
,
0
)
\theta = (\theta_1,\theta_2,\cdots,\theta_k,0,\cdots,0)
θ=(θ1,θ2,⋯,θk,0,⋯,0),前k列不为零,其他为0,则可得
A
θ
A\theta
Aθ如下:
A θ = θ 1 a 1 + θ 2 a 2 + ⋯ + θ k a k = 0 \begin{equation} A\theta = \theta_1a_1+\theta_2a_2+\cdots+\theta_ka_k=0 \end{equation} Aθ=θ1a1+θ2a2+⋯+θkak=0 - 只要取充分小的
ϵ
>
0
\epsilon >0
ϵ>0,使得
x ˉ = x + ϵ θ ≥ 0 , x ~ = x − ϵ θ ≥ 0 \begin{equation} \bar{x}=x+\epsilon \theta \ge 0,\tilde{x}=x-\epsilon \theta\ge 0 \end{equation} xˉ=x+ϵθ≥0,x~=x−ϵθ≥0 - 乘以A可得:
A x ˉ = A x + A ϵ θ = b , A x ~ = A x − A ϵ θ = b \begin{equation} A\bar{x}=Ax+A\epsilon \theta=b,A\tilde{x}=Ax-A\epsilon \theta=b \end{equation} Axˉ=Ax+Aϵθ=b,Ax~=Ax−Aϵθ=b - 则可得:
x ˉ , x ~ ∈ S , x = 1 2 x ˉ + 1 2 x ~ \begin{equation} \bar{x},\tilde{x}\in S,x=\frac{1}{2}\bar{x}+\frac{1}{2}\tilde{x} \end{equation} xˉ,x~∈S,x=21xˉ+21x~ - 根据上面可得,x点可以由两个点
x
ˉ
,
x
~
\bar{x},\tilde{x}
xˉ,x~线性组合,与x是极点矛盾!!!所以我们假设的假如
a
1
,
a
2
,
⋯
,
a
k
a_1,a_2,\cdots,a_k
a1,a2,⋯,ak线性相关
不成立
- 结论:
a
1
,
a
2
,
⋯
,
a
k
a_1,a_2,\cdots,a_k
a1,a2,⋯,ak线性无关,
r
(
A
)
=
m
→
k
≤
m
r(A)=m\to k\le m
r(A)=m→k≤m
– 若情况1,k=m,记
x B = ( x 1 x 2 ⋯ x m ) T , x N = 0 \begin{equation} x_B=\begin{pmatrix}x_1&x_2&\cdots&x_m\end{pmatrix}^T,x_N=0 \end{equation} xB=(x1x2⋯xm)T,xN=0 - 可得:
A x = ( B , N ) ( x B 0 ) = B x B = b → x B = B − 1 b \begin{equation} Ax=(B,N)\begin{pmatrix}x_B\\\\0\end{pmatrix}=Bx_B=b\to x_B=B^{-1}b \end{equation} Ax=(B,N) xB0 =BxB=b→xB=B−1b - 结论:
x = ( B − 1 b 0 ) \begin{equation} x=\begin{pmatrix}B^{-1}b\\\\0\end{pmatrix}\end{equation} x= B−1b0
– 若情况2:
k
<
m
k<m
k<m,那么我们可以凑m项为B,
B
=
(
a
1
a
2
⋯
a
k
a
k
+
1
⋯
a
m
)
\begin{equation} B=\begin{pmatrix}a_1&a_2&\cdots&a_k&a_{k+1}&\cdots&a_m\end{pmatrix} \end{equation}
B=(a1a2⋯akak+1⋯am)
x
B
=
(
x
1
x
2
⋯
x
k
0
⋯
0
)
\begin{equation} x_B=\begin{pmatrix}x_1&x_2&\cdots&x_k&0&\cdots&0\end{pmatrix} \end{equation}
xB=(x1x2⋯xk0⋯0)
- 可得:
A x = ( B , N ) ( x B 0 ) = B x B = b → x B = B − 1 b \begin{equation} Ax=(B,N)\begin{pmatrix}x_B\\\\0\end{pmatrix}=Bx_B=b\to x_B=B^{-1}b \end{equation} Ax=(B,N) xB0 =BxB=b→xB=B−1b