文章目录
线性规划问题…定义!
-
一组非负变量
-
满足一定的线性约束
-
使一个线性函数取得极值的问题
-
称为线性规划问题,用 L P LP LP表示
-
模型如下: min S = C X \min S=CX minS=CX s . t . { A X = b X ≥ 0 s.t.\begin{cases}AX=b\\X\ge 0\end{cases} s.t.{AX=bX≥0
不同形式的线性规划模型转化为标准形式
极大化极小
- 求 max S = C X ⇔ \max S=CX\Leftrightarrow maxS=CX⇔ min ( − S ) = − C X \min(-S)=-CX min(−S)=−CX
不等式约束化为等式约束
- 引入松弛变量 y i ≥ 0 y_i\ge 0 yi≥0:若 a i 1 x 1 + . . . + a i n x n ≤ b i a_{i1}x_1+...+a_{in}x_n\le b_i ai1x1+...+ainxn≤bi a i 1 x 1 + . . . + a i n x n + y i = b i a_{i1}x_1+...+a_{in}x_n+y_i= b_i ai1x1+...+ainxn+yi=bi
- 引入剩余变量 y i ≥ 0 y_i\ge 0 yi≥0:若 a i 1 x 1 + . . . + a i n x n ≥ b i a_{i1}x_1+...+a_{in}x_n\ge b_i ai1x1+...+ainxn≥bi a i 1 x 1 + . . . + a i n x n − y i = b i a_{i1}x_1+...+a_{in}x_n-y_i= b_i ai1x1+...+ainxn−yi=bi
自由变量化为非负变量
- 若某个变量 x k x_k xk没有非负的要求,则称 x k x_k xk为自由变量
- 令 x k = x k ′ − x k ′ ′ , x k ′ ≥ 0 , x k ′ ′ ≥ 0 x_k = x'_k-x''_{k},x'_k\ge0,x''_k\ge0 xk=xk′−xk′′,xk′≥0,xk′′≥0
- 再代入原模型中,消去原 x k x_k xk
- 或者直接勇敢消去 x k x_k xk
例题
将
max
S
=
x
1
+
3
x
2
+
4
x
3
\max S=x_1+3x_2+4x_3
maxS=x1+3x2+4x3
s
.
t
.
{
x
1
+
2
x
2
+
x
3
≤
5
2
x
1
+
3
x
2
+
x
3
≥
6
x
2
,
x
3
≥
0
s.t.\begin{cases}x_1+2x_2+x_3\le5\\2x_1+3x_2+x_3\ge6\\x_2,x_3\ge0\end{cases}
s.t.⎩⎪⎨⎪⎧x1+2x2+x3≤52x1+3x2+x3≥6x2,x3≥0化为标准形式
解
- 先化为如下形式: min ( − S ) = − x 1 − 3 x 2 − 4 x 3 \min (-S)=-x_1-3x_2-4x_3 min(−S)=−x1−3x2−4x3 s . t . { x 1 + 2 x 2 + x 3 + y 1 = 5 2 x 1 + 3 x 2 + x 3 − y 2 = 6 x 2 , x 3 , y 1 , y 2 ≥ 0 (1) s.t.\begin{cases}x_1+2x_2+x_3+y_1=5\\2x_1+3x_2+x_3-y_2=6\\x_2,x_3,y_1,y_2\ge0\end{cases}\tag{1} s.t.⎩⎪⎨⎪⎧x1+2x2+x3+y1=52x1+3x2+x3−y2=6x2,x3,y1,y2≥0(1)
- 法①:令
x
1
=
x
1
′
−
x
1
′
′
,
x
1
′
,
x
1
′
′
≥
0
x_1=x'_1-x''_1,x'_1,x''_1\ge0
x1=x1′−x1′′,x1′,x1′′≥0
- 代入上式中得 min ( − S ) = − x 1 ′ + x 1 ′ ′ − 3 x 2 − 4 x 3 \min (-S)=-x'_1+x''_1-3x_2-4x_3 min(−S)=−x1′+x1′′−3x2−4x3 s . t . { x 1 ′ − x 1 ′ ′ + 2 x 2 + x 3 + y 1 = 5 2 x 1 ′ − 2 x 1 ′ ′ + 3 x 2 + x 3 − y 2 = 6 x 2 , x 3 , y 1 , y 2 ≥ 0 s.t.\begin{cases}x'_1-x''_1+2x_2+x_3+y_1=5\\2x'_1-2x''_1+3x_2+x_3-y_2=6\\x_2,x_3,y_1,y_2\ge0\end{cases} s.t.⎩⎪⎨⎪⎧x1′−x1′′+2x2+x3+y1=52x1′−2x1′′+3x2+x3−y2=6x2,x3,y1,y2≥0
- 法②:在式(1)中,令①×2-②,得 x 2 + x 3 + 2 y 1 + y 2 = 4 x_2+x_3+2y_1+y_2=4 x2+x3+2y1+y2=4从①中解出 − x 1 = 2 x 2 + x 3 + y 1 − 5 -x_1=2x_2+x_3+y_1-5 −x1=2x2+x3+y1−5代入目标函数中,于是就化成了: min ( − S ) = − x 2 − 3 x 3 + y 1 − 5 \min(-S)=-x_2-3x_3+y_1-5 min(−S)=−x2−3x3+y1−5 s . t . { x 2 + x 3 + 2 y 1 + y 2 = 4 x 2 , x 3 , y 1 , y 2 ≥ 0 s.t.\begin{cases}x_2+x_3+2y_1+y_2=4\\x_2,x_3,y_1,y_2\ge0\end{cases} s.t.{x2+x3+2y1+y2=4x2,x3,y1,y2≥0
1.2一些基本概念
可行解与最优解
- 若 X X X满足s.t.,那么 X X X就能称为 L P LP LP的一个可行解了
- 若 再满足 min S \min S minS,那就妥妥的最优解啦
- 可行解组成的集合称为可行域
基,基本解,可行基,基本可行解
- 设矩阵 A A A的秩为 m m m,不妨假设前m列线性无关,令 B = ( P 1 , . . . , P m ) B=(P_1,...,P_m) B=(P1,...,Pm)那么这个 B B B就是 L P LP LP的一个基
- A A A被划分为 ( B , N ) (B,N) (B,N) X X X被相应的分为 ( X B X N ) (\begin{matrix}X_B\\X_N\end{matrix}) (XBXN)
- B B B的列称为基列, X B X_B XB的分量,即 x 1 , . . . , x m x_1,...,x_m x1,...,xm称为基变量
- A X = ( B , N ) ( X B X N ) = B X B + N X N = b AX=(B,N)(\begin{matrix}X_B\\X_N\end{matrix})=BX_B+NX_N=b AX=(B,N)(XBXN)=BXB+NXN=b解出 X B X_B XB: X B = B − 1 b − B − 1 N X N X_B=B^{-1}b-B^{-1}NX_N XB=B−1b−B−1NXN
- 不妨令 X N = 0 X_N=0 XN=0,于是有 X = ( B − 1 b 0 ) X=(\begin{matrix}B^{-1}b\\0\end{matrix}) X=(B−1b0)
- 以上
X
X
X是
A
X
=
b
AX=b
AX=b的一个解,称为
L
P
LP
LP的关于基
B
B
B的基本解——为啥叫基本解呢?有点搞混了,在
A
X
=
b
AX=b
AX=b里不是有个基础解系来着吗,那个好像是让
X
N
X_N
XN分别取1来着,让
X
N
X_N
XN都=0解出来的是特解,这里的基本可能是因为这个解太简单了吧,俺瞎猜的
- 若 B − 1 b ≥ 0 B^{-1}b\ge0 B−1b≥0—— B B B称为可行基,此时的 X X X称为 L P LP LP的关于基 B B B的基本可行解
- 基——基本解,可行基——基本可行解
- X N = 0 ⇒ 可 行 基 , X N = 0 + B − 1 b ≥ 0 ⇒ 基 本 可 行 解 X_N=0\Rightarrow 可行基,X_N=0+B^{-1}b\ge0\Rightarrow 基本可行解 XN=0⇒可行基,XN=0+B−1b≥0⇒基本可行解
- 根据B,N,将 C C C对应的分成 ( C B , C N ) (C_B,C_N) (CB,CN),目标函数: C X = C B X B + C N X N CX=C_BX_B+C_NX_N CX=CBXB+CNXN 将 X B = B − 1 b − B − 1 N X N X_B=B^{-1}b-B^{-1}NX_N XB=B−1b−B−1NXN代入,有 C X = C B B − 1 b + ( C N − C B B − 1 N ) X N CX=C_BB^{-1}b+(C_N-C_BB^{-1}N)X_N CX=CBB−1b+(CN−CBB−1N)XN
最优性判别定理
- 对 L P LP LP的基 B B B
- 若 B − 1 b ≥ 0 B^{-1}b\ge0 B−1b≥0
- 且 C − C B B − 1 A ≥ 0 C-C_BB^{-1}A\ge0 C−CBB−1A≥0
- 那磨, X ∗ = ( X B ∗ 0 ) X^*=(\begin{matrix}X^*_B\\0\end{matrix}) X∗=(XB∗0)是模型的最优解,称为最优基本可行解,基 B B B称为最优基
- 为啥叫最优基本可行解呢?这么长,因为满足第一个条件就能 称为基本可行解啦!再加个条件可不就最优了嘛!
证明:
- 对所有的可行解 X X X,有 C X = C B B − 1 b + ( C N − C B B − 1 N ) X N ≥ C B B − 1 b CX=C_BB^{-1}b+(C_N-C_BB^{-1}N)X_N\ge C_BB^{-1}b CX=CBB−1b+(CN−CBB−1N)XN≥CBB−1b
- 看看,这 X X X还不是最优解??
退化解
- 基本解中,就是 ( B − 1 b , 0 ) T (B^{-1}b,0)^T (B−1b,0)T里,但凡有一个基变量=0,就称这个解为退化解
一些基本定理
一些设定
- A — — m × n 矩 阵 , r ( A ) = m A——m\times n矩阵,r(A)=m A——m×n矩阵,r(A)=m
- C — — n 维 行 向 量 C——n维行向量 C——n维行向量
- b — — n 维 列 向 量 b——n维列向量 b——n维列向量
- X — — n 维 列 向 量 X——n维列向量 X——n维列向量
引理
- 设 X X X是 L P LP LP的一个可行解
- 若X中非零分量对应得到列向量线性无关
- 则 X X X是 L P LP LP的一个基本可行解( X = ( B − 1 b , 0 ) T ≥ 0 X=(B^{-1}b,0)^T\ge0 X=(B−1b,0)T≥0)
证明:
- 记 A = ( P 1 , P 2 , . . . , P n ) A=(P_1,P_2,...,P_n) A=(P1,P2,...,Pn)
- 设 X X X中有 r r r个分量>0
- 不失一般性,不妨设前r个分量>0,已知它们对应的列向量线性无关
-
r
≤
m
r\le m
r≤m是一定的
- 当 r = m r=m r=m时,则 B = ( P 1 , P 2 , . . . , P m ) B=(P_1,P_2,...,P_m) B=(P1,P2,...,Pm)是(LP)可行基, X X X是关于基B的基本可行解???为啥呀怎么就让 B − 1 b ≥ 0 B^{-1}b\ge0 B−1b≥0了呢
- 若
r
<
m
r<m
r<m,由于
r
(
A
)
=
m
r(A)=m
r(A)=m,故一定能从后
n
−
r
n-r
n−r个向量里找到
m
−
r
m-r
m−r个列向量,和
P
1
,
P
2
,
.
.
.
,
P
r
P_1,P_2,...,P_r
P1,P2,...,Pr组成
m
m
m个线性无关的列向量,构成一个基
- 上面的基对应的变量有r个>0,m-r个=0,故是退化的基本可行解
重要定理及证明
- 对于标准形式线性规划问题
- (1)若存在一个可行解,就一定存在一个基本可行解
- (2)若存在一个最优解,那也一定存在一个最优基本可行解
- 意思就是:如果有一个可行解,即满足s.t.的条件,那么它就暴露了,肯定还能给它化成一个基本可行解 X = ( B − 1 b , 0 ) T ≥ 0 X=(B^{-1}b,0)^T\ge0 X=(B−1b,0)T≥0
- 而如果最优解都让你找到了,那再努力一下,把它化成最优基本可行解
证明:
(1)
- 若存在一个可行解 X = ( x 1 , x 2 , . . . , x n ) T X=(x_1,x_2,...,x_n)^T X=(x1,x2,...,xn)T,有 x 1 P 1 + x 2 P 2 + . . . + x n P n = b x_1P_1+x_2P_2+...+x_nP_n=b x1P1+x2P2+...+xnPn=b
- 设 X X X上有 r r r个分量>0,不妨设是前 r r r个,于是上式变成 x 1 P 1 + x 2 P 2 + . . . + x r P r = b (1) x_1P_1+x_2P_2+...+x_rP_r=b\tag{1} x1P1+x2P2+...+xrPr=b(1)
- 然后就有分情况了: P 1 , P 2 , . . . , P r P_1,P_2,...,P_r P1,P2,...,Pr线性相关/无关,无关就直接上引理, X X X直接是基本可行解,下面讨论线性相关的情况:
- 线性相关 ⇒ ∃ \Rightarrow\exist ⇒∃一组全为0的常数 δ 1 , . . . , δ r \delta_1,...,\delta_r δ1,...,δr(这里我假定它们中至少有一个>0),为啥捏,看下面: δ 1 P 1 + δ 2 P 2 + . . . + δ r P r = 0 (2) \delta_1P_1+\delta_2P_2+...+\delta_rP_r=0\tag{2} δ1P1+δ2P2+...+δrPr=0(2)就算全为负,我提一个负号出去不就有正的了吗!
- ( 1 ) − ε ( 2 ) (1)-\varepsilon(2) (1)−ε(2)得 ( x 1 − ε δ 1 ) P 1 + ( x 2 − ε δ 2 ) P 2 + . . . + ( x r − ε δ r ) P r = b (x_1-\varepsilon\delta_1)P_1+(x_2-\varepsilon\delta_2)P_2+...+(x_r-\varepsilon\delta_r)P_r=b (x1−εδ1)P1+(x2−εδ2)P2+...+(xr−εδr)Pr=b
- 设 δ = ( δ 1 , . . . , δ r , 0 , . . . , 0 ) T \delta=(\delta_1,...,\delta_r,0,...,0)^T δ=(δ1,...,δr,0,...,0)T,这样是为了构造 X ′ = X − ε δ X'=X-\varepsilon\delta X′=X−εδ,这也是满足 A X = b AX=b AX=b的解哟
- 当
ε
\varepsilon
ε从0慢慢往上加时,对应的各分量有三种情况:
- δ j > 0 \delta_j>0 δj>0时, x j ′ ↓ x_j'\downarrow xj′↓
- δ j < 0 \delta_j<0 δj<0时, x j ′ ↑ x_j'\uparrow xj′↑
- δ j = 0 \delta_j=0 δj=0时, x j ′ x_j' xj′不变
- 由于之前设定至少有一个 δ j > 0 \delta_j>0 δj>0,所以至少有一个分量随 ε \varepsilon ε的增加而减少
- 现令 ε = min { x i δ i ∣ δ i > 0 , i = 1 , . . . , r } \varepsilon=\min\{\frac{x_i}{\delta_i}|\delta_i>0,i=1,...,r\} ε=min{δixi∣δi>0,i=1,...,r}这样构造 ε \varepsilon ε可以保证至少有一个分量由>0变成=0
- 分析一下用这样的
ε
\varepsilon
ε构造的
X
′
X'
X′:
- 构造完之后的 X ′ X' X′至多只有 r − 1 r-1 r−1个正的了,而且无论 δ i \delta_i δi是正是负都能保证 x i − ε δ i ≥ 0 x_i-\varepsilon\delta_i\ge0 xi−εδi≥0 所以 X ′ X' X′也是可行解了
- 如果此时 X ′ X' X′中的正分量对应的列向量线性无关,那么由引理证毕,如果还有,就给我继续消,直到线性无关
(2)
- 依然只考虑线性无关的
- 除了(1)里的证明,还需要说明一点,就是具有更少正分量的 X ′ X' X′依然是最优解,这样才能说明最后的得到的基本可行解是最优的
- 下面来证明
- 对于 X ′ = X − ε δ , X'=X-\varepsilon\delta, X′=X−εδ,目标函数变成 C X − ε C δ CX-\varepsilon C\delta CX−εCδ只需证明 C δ = 0 , 这 样 依 然 有 C X ′ = C X C\delta=0,这样依然有CX'=CX Cδ=0,这样依然有CX′=CX是最优解
- 反证:设 C δ ≠ 0 C\delta\ne0 Cδ=0,对于足够小的 ε \varepsilon ε, X − ε δ X-\varepsilon\delta X−εδ还是可行解,这一点(1)中已经证过了,无论 ε \varepsilon ε是正是负都如此
- 所以我就根据 C δ C\delta Cδ的值来选 ε \varepsilon ε, C δ > 0 , 那 就 取 ε > 0 , C\delta>0,那就取\varepsilon>0, Cδ>0,那就取ε>0,反之取负
- 这样就能让 C X ′ < C X CX'<CX CX′<CX,与 X X X是最优解矛盾了哦
- 所以证明 C δ = 0 C\delta=0 Cδ=0
- 其余证明类似(1)
- 这个定理为后续单纯形法埋下了种子,即只有找到了基本可行解,一定能根据它找到一个最优基本可行解
1.3几何理论
凸凸定义
凸组合
- X 1 , X 2 , . . . , X k X_1,X_2,...,X_k X1,X2,...,Xk是 R n R_n Rn已知的k个点
- 若:对某点 X ∈ R n , ∃ λ 1 , λ 2 , . . , λ k ≥ 0 X\in R^n,\exist\lambda_1,\lambda_2,..,\lambda_k\ge0 X∈Rn,∃λ1,λ2,..,λk≥0使得 X = ∑ i = 1 k λ i X i , 且 ∑ i = 1 k λ i = 1 X=\sum\limits_{i=1}^{k}\lambda_iX_i,且\sum\limits_{i=1}^k\lambda_i=1 X=i=1∑kλiXi,且i=1∑kλi=1
- 就称 X 是 X 1 , . . . , X k X是X_1,...,X_k X是X1,...,Xk的凸组合
凸集
- 点集 D ⊂ R n D\sub R^n D⊂Rn
- 对 ∀ 两 点 X 1 , X 2 ∈ D \forall两点X_1,X_2\in D ∀两点X1,X2∈D
- 他们的凸组合都在D里
- 就称 D D D为凸集
- 也可以这样理解:若一个集合任意两点的连接线段都在集合内,则称这个集合为凸集
凸集的极点
- X 是 D 内 一 点 X是D内一点 X是D内一点
- 若X不能表示成D内互异两点的凸组合
- 称X是D的极点
- 多面体的顶点,球体表面上的每个点都是极点
等价性定理
- X 是 D = { X ∣ A X = b , X ≥ 0 } X是D=\{X|AX=b,X\ge0\} X是D={X∣AX=b,X≥0}的极点
- ⇔ X 是 下 面 柿 子 的 基 本 可 行 解 \Leftrightarrow X是下面柿子的基本可行解 ⇔X是下面柿子的基本可行解 min S = C X \min S=CX minS=CX s . t . { A X = b X ≥ 0 s.t.\begin{cases}AX = b\\X\ge0\end{cases} s.t.{AX=bX≥0
证明:
- 极点 ⇒ \Rightarrow ⇒基本可行解
- 设 X X X是 D D D的一个极点,不妨设 X X X的前 k k k个分量非零,则有 x 1 P 1 + . . . x k P k = b x_1P_1+...x_kP_k=b x1P1+...xkPk=b
- 要证 X X X是基本可行解,只要证 P 1 , . . . P k P_1,...P_k P1,...Pk线性无关!
- 反证:假设它还就相关了,就又存在一组不全为0 的常数 δ 1 , . . . , δ k \delta_1,...,\delta_k δ1,...,δk使得 δ 1 P 1 + . . . δ k P k = 0 \delta_1P_1+...\delta_kP_k=0 δ1P1+...δkPk=0
- 依然是令 δ = ( δ 1 , . . . , δ k , 0 , . . . , 0 ) T \delta=(\delta_1,...,\delta_k,0,...,0)^T δ=(δ1,...,δk,0,...,0)T,有 A δ = 0 A\delta=0 Aδ=0
- 还是让 ε = min { x i ∣ δ i ∣ ∣ δ i > 0 , i = 1 , . . . , r } \varepsilon=\min\{\frac{x_i}{|\delta_i|}|\delta_i>0,i=1,...,r\} ε=min{∣δi∣xi∣δi>0,i=1,...,r}
- 构造变量 X 1 , X 2 X_1,X_2 X1,X2满足 { X 1 = X + ε δ X 2 = X − ε δ \begin{cases}X_1=X+\varepsilon\delta\\X_2=X-\varepsilon\delta\end{cases} {X1=X+εδX2=X−εδ
- 因为 ε \varepsilon ε的选取中,分母是绝对值,所以有 X 1 , X 2 X_1,X_2 X1,X2都 ≥ 0 , 且 X 1 ≠ X 2 \ge0,且X_1\ne X_2 ≥0,且X1=X2
- 由于 A δ = 0 ⇒ A X 1 = A X 2 = b ⇒ X 1 , X 2 ∈ D A\delta=0\Rightarrow AX_1=AX_2=b\Rightarrow X_1,X_2\in D Aδ=0⇒AX1=AX2=b⇒X1,X2∈D,然后!!这样就有 X = 1 2 X 1 + 1 2 X 2 X=\frac12X_1+\frac12X_2 X=21X1+21X2与 X X X是极点矛盾了
- 故可证得 P 1 , . . . , P k P_1,...,P_k P1,...,Pk线性无关, X X X是基本可行解
- 基本可行解 ⇒ \Rightarrow ⇒极点
- 设 X = ( x 1 , . . . , x m , 0 , . . . , 0 ) T X=(x_1,...,x_m,0,...,0)^T X=(x1,...,xm,0,...,0)T是基本可行解,就有 x 1 P 1 + . . . + x m P m = b x_1P_1+...+x_mP_m=b x1P1+...+xmPm=b也不知道为啥这里定的是 m , 是 为 了 区 分 k m,是为了区分k m,是为了区分k吗,还是表示 A A A的秩啊?
- 以上的 P 1 , . . . , P m P_1,...,P_m P1,...,Pm线性无关
- 反证:假设 X X X不是D的极点,那么 X X X可以表示成D中两个不同点 Y , Z Y,Z Y,Z的线性组合(凸组合): X = λ 1 Y + λ 2 Z X=\lambda_1Y+\lambda_2Z X=λ1Y+λ2Z λ 1 + λ 2 = 1 , 且 λ 1 , 2 > 0 \lambda_1+\lambda_2=1,且\lambda_{1,2}>0 λ1+λ2=1,且λ1,2>0
- 由于 X , Y , Z ∈ D X,Y,Z\in D X,Y,Z∈D,于是它们都 ≥ 0 \ge0 ≥0,那么 Y , Z Y,Z Y,Z就和 X X X一样,后 n − m n-m n−m列是0,即 Y = ( y 1 , y 2 , . . . , y m , 0 , . . . , 0 ) T Y=(y_1,y_2,...,y_m,0,...,0)^T Y=(y1,y2,...,ym,0,...,0)T Z = ( z 1 , z 2 , . . . , z m , 0 , . . . , 0 ) T Z=(z_1,z_2,...,z_m,0,...,0)^T Z=(z1,z2,...,zm,0,...,0)T
- 于是有 y 1 P 1 + . . . + y m P m = b y_1P_1+...+y_mP_m=b y1P1+...+ymPm=b z 1 P 1 + . . . + z m P m = b z_1P_1+...+z_mP_m=b z1P1+...+zmPm=b这又是为啥啊啊?