1 . 前置概念
1.1 线性规划向量形式
线性规划 向量形式 : 其中 矩阵 C C C , 矩阵 X X X , 矩阵 b b b 与上面的矩阵形式内容一致 , 本公式之比上个公式多了一个 向量 P j P_j Pj ;
m a x Z = C X s . t { ∑ j = 1 n P j x j = b x j ≥ 0 j = 1 , 2 , ⋯ , n \begin{array}{lcl}max Z = CX \\ \\ s.t \begin{cases} \sum_{j = 1}^{n} P_j x_j = b \\ \\ x_j \geq 0 & j=1,2,\cdots,n \end{cases}\end{array} maxZ=CXs.t⎩⎪⎨⎪⎧∑j=1nPjxj=bxj≥0j=1,2,⋯,n
其中
∑ j = 1 n P j x j = b \sum_{j = 1}^{n} P_j x_j = b j=1∑nPjxj=b
展开后是 :
P 1 x 1 + P 2 x 2 + ⋯ + P n x n = b P_1x_1 + P_2x_2 + \cdots + P_nx_n = b P1x1+P2x2+⋯+Pnxn=b
其中的 P j P_j Pj 为 :
P j = [ a 1 j a 2 j ⋮ a m j ] P_j=\begin{bmatrix}\\\\ a_{1j}\\\\ a_{2j}\\\\ \vdots\\\\ a_{mj}\\\\ \end{bmatrix} Pj=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a1ja2j⋮amj⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
举例 对应的 P 1 P_1 P1 就是
P 1 = [ a 11 a 21 ⋮ a m 1 ] P_1=\begin{bmatrix}\\\\ a_{11}\\\\ a_{21}\\\\ \vdots\\\\ a_{m1}\\\\ \end{bmatrix} P1=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a11a21⋮am1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
对应的 P n P_n Pn 就是
P n = [ a 1 n a 2 n ⋮ a m n ] P_n=\begin{bmatrix}\\\\ a_{1n}\\\\ a_{2n}\\\\ \vdots\\\\ a_{mn}\\\\ \end{bmatrix} Pn=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a1na2n⋮amn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
1.2 可行基概念
1 . 基的概念
系数矩阵 : 约束方程的 系数 可以组成一个 m × n m \times n m×n 阶 矩阵 , 即 m m m 行 , n n n 列 , 代表 有 m m m 个约束方程 , 每个约束方程有 n n n 个变量 ;
基 :
- ① 矩阵秩 : 设 A A A 为上述 m × n m \times n m×n 阶系数矩阵 ( m < n ) ( m < n ) (m<n) , 其秩 为 m m m ; ( 该矩阵的秩的最大取值是 m i n ( m , n ) min(m , n) min(m,n) )
- ② 满秩矩阵 : 矩阵
B
B
B 是矩阵
A
A
A 的
m
m
m 阶满秩子矩阵 , 其中
∣
B
∣
≠
0
|B| \not=0
∣B∣=0 ,
B = [ a 11 ⋯ a 1 m ⋮ ⋮ ⋮ a m 1 ⋯ a m m ] = ( p 1 ⋯ p m ) B= \begin{bmatrix} & a_{11} & \cdots & a_{1m} \\ \\ &\vdots &\vdots &\vdots \\ \\ & a_{m1} & \cdots & a_{mm} \end{bmatrix} = ( p_1 \cdots p_m ) B=⎣⎢⎢⎢⎢⎢⎡a11⋮am1⋯⋮⋯a1m⋮amm⎦⎥⎥⎥⎥⎥⎤=(p1⋯pm) - ③ 基引入 : 则称 B B B 是线性规划问题的 一个基 ;
2 . 基解概念
基解 :
- ① 确定基 : 确定一个基 B B B , 该矩阵是系数矩阵 A A A 的满秩子矩阵 , 即一个 m × m m \times m m×m 阶矩阵 ;
- ② 处理非基变量 : 将非基变量 设置成 0 0 0 ;
- ③ 解出基解 : 将 基 代入约束方程 , 解出对应的变量值 , 即基解 ;
- ④ 基解个数 : 基解中变量取值 非 0 0 0 个数 , 小于等于 约束方程个数 m m m , 基解的总数 不超过 C n m C_n^m Cnm
3 . 可行基概念
基可行解 : 解出的基解 , 有一部分满足 变量的 非负 约束 , 即解大于等于 0 0 0 , 这些解称为基可行解 ;
可行基 : 基可行解 对应的基 , 称为 可行基 ;
详细的概念参考 : 【运筹学】线性规划问题的解 ( 可行解 | 可行域 | 最优解 | 秩的概念 | 极大线性无关组 | 向量秩 | 矩阵秩 | 基 | 基变量 | 非基变量 | 基解 | 基可行解 | 可行基 )
1.3 线性规划求解步骤
1 . 线性规划向量形式为 :
m a x Z = C X s . t { ∑ j = 1 n P j x j = b x j ≥ 0 j = 1 , 2 , ⋯ , n \begin{array}{lcl}max Z = CX \\ \\ s.t \begin{cases} \sum_{j = 1}^{n} P_j x_j = b \\ \\ x_j \geq 0 & j=1,2,\cdots,n \end{cases}\end{array} maxZ=CXs.t⎩⎪⎨⎪⎧∑j=1nPjxj=bxj≥0j=1,2,⋯,n
2 . 找可行基 : 使用单纯形法求解最优解的第一个步骤 , 就是找到一个可行基 ;
3 . 构造初始可行基方法 : 已知一个线性规划问题的标准数学模型 , 构造初始可行基的三种方法 :
- ① 观察 : 通过观察 , 直接从系数矩阵中发现一个可行基 , 即 m m m 阶方阵 ∣ B ∣ ≠ 0 |B| \not= 0 ∣B∣=0 ;
- ② 松弛变量法 : 如果约束方程是 ≤ \leq ≤ 约束 , 那么加入松弛变量 , 这些松弛变量的每个系数的列向量都是单位向量 ;
- ③ 人工变量法 : 如果约束方程式 ≥ \geq ≥ 约束 , 那么需要加入人工变量 ;
线性规划问题求解 , 第一步就是根据上面三种方法 , 构造出初始的可行基 ;
4 . 求线性规划最优解流程 : 先构造初始可行基 , 然后解出该解 , 判定是否是基可行解 , 如果是基可行解 , 那么判断该解是否是最优解 , 如是 , 那么该解就是最优解 , 如果不是 , 那么继续迭代 ;
5 . 这里就两个问题 : ① 如何判定该解是否是最优解 , ② 如何进行迭代 ;
2 . 构造初始可行基
2.1 构造初始可行基 并 解出基解
1 . 前提条件 : 先做一个假设 , 假设由一个线性规划问题 , 有 m m m 个约束方程 , 有 n n n 个决策变量 , x 1 , x 2 , ⋯ , x m x_1 , x_2 , \cdots , x_m x1,x2,⋯,xm ; 这 m m m 个约束方程都是 ≤ \leq ≤ 约束 ;
2 . 构造可行基方法 ( 添加松弛变量 ) : 给所有的约束方程 , 添加一个松弛变量 , 即需要添加 m m m 个松弛变量 ;
线性规划的约束方程为 : 该约束方程有 n − m n-m n−m 个决策变量 , 有 m m m 个约束不等式 ;
s . t { a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n − m ≤ b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n − m ≤ b 2 ⋯ ⋯ ⋯ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n − m ≤ b m x 1 , x 2 , ⋯ , x n − m ≥ 0 s.t \begin{cases} a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n}x_{n-m} \leq b_1 \\ \\ a_{21} x_1 + a_{22} x_2 + \cdots + a_{2n}x_{n-m} \leq b_2 \\ \\ \cdots\cdots\cdots \\ \\ a_{m1} x_1 + a_{m2} x_2 + \cdots + a_{mn}x_{n-m} \leq b_m \\ \\ x_1, x_2 , \cdots , x_{n-m} \geq 0 \end{cases} s.t⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn−m≤b1a21x1+a22x2+⋯+a2nxn−m≤b2⋯⋯⋯am1x1+am2x2+⋯+amnxn−m≤bmx1,x2,⋯,xn−m≥0
由于是 ≤ \leq ≤ 约束 , 添加松弛变量 , 有 m m m 个不等式 , 需要添加 m m m 个松弛变量 ; 添加松弛变量后 , ≤ \leq ≤ 不等式变成 等式 :
s . t { x 1 + a 1 m + 1 x m + 1 + a 1 m + 2 x m + 2 + ⋯ + a 1 n x n = b 1 x 2 + a 2 m + 1 x m + 1 + a 2 m + 2 x m + 2 + ⋯ + a 2 n x n = b 2 ⋯ ⋯ ⋯ x m + a m m + 1 x m + 1 + a m m + 2 x m + 2 + ⋯ + a m n x n = b m x 1 , x 2 , ⋯ , x n ≥ 0 s.t \begin{cases} x_1 & & +a_{1 m+1} x_{m+1} + a_{1 m+2} x_{m+2} + \cdots + a_{1n}x_{n} = b_1 & \\ \\ & x_2 & + a_{2 m+1} x_{m+1} + a_{2 m+2} x_{m+2} + \cdots + a_{2n}x_{n} = b_2& \\ \\ \cdots\cdots\cdots \\ \\ & & x_m + a_{m m+1} x_{m+1} + a_{m m+2} x_{m+2} + \cdots + a_{mn}x_{n} = b_m& \\ \\ x_1, x_2 , \cdots , x_{n} \geq 0 \end{cases} s.t⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧x1⋯⋯⋯x1,x2,⋯,xn≥0x2+a1m+1xm+1+a1m+2xm+2+⋯+a1nxn=b1+a2m+1xm+1+a2m+2xm+2+⋯+a2nxn=b2xm+amm+1xm+1+amm+2xm+2+⋯+amnxn=bm
修改下标标号 : 上述式子将添加的松弛变量的下标修改成了 x 1 ⋯ x m x_1 \cdots x_m x1⋯xm , 上述公式中下标的次序可以修改 ;
3 . 构造初始可行基 : 该初始可行基 , 假设由 系数矩阵 前面的 m m m 个向量组成的 方阵 ; 该方阵是 x 1 ⋯ x m x_1 \cdots x_m x1⋯xm 变量的系数矩阵 ;
该 x 1 ⋯ x m x_1 \cdots x_m x1⋯xm 就是基变量 ; 该基变量的系数 ( P 1 , ⋯ , P m ) (P_1 , \cdots , P_m) (P1,⋯,Pm) 就是初始可行基 ;
基是在 线性规划 约束方程组 的系数矩阵 中 的一个 m m m 阶方阵 , 其行列式不等于 0 0 0 , 行列式不等于 0 0 0 的方阵最基本最简单的就是单位阵 , 为了讨论方便 , 假设该初始可行基是单位阵 ; 即构造以下初始可行基 :
B = [ P 1 P 2 ⋯ P m ] = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋮ 0 0 ⋯ 1 ] B=\begin{bmatrix}& P_1 & P_2 & \cdots & P_m & \end{bmatrix}= \begin{bmatrix} & 1 & 0 & \cdots & 0 & \\ & 0 & 1 & \cdots & 0 & \\ & \vdots & \vdots & & \vdots & \\ & 0 & 0 & \cdots & 1 & \\ \end{bmatrix} B=[P1P2⋯Pm]=⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋯00⋮1⎦⎥⎥⎥⎤
初始可行基 : 上述的松弛变量的系数矩阵 , 刚好构成一个 m × m m \times m m×m 阶 的 单位阵 , 该单位阵是一个可行基 , 因为每个变量只添加一个松弛变量 , 其它 m − 1 m-1 m−1 个不等式添加的对应松弛变量在本式子中 系数肯定是 0 0 0 ;
如在第一个约束方程中 , 添加了 x 1 x_1 x1 , 那么在第一个约束方程中 , 对应的 x 2 ⋯ x m x_2 \cdots x_m x2⋯xm 这 m − 1 m-1 m−1 个变量的系数肯定是 0 0 0 ;
4 . 初始基可行解 : X ( 0 ) = ( x 1 0 , x 2 0 , ⋯ , x m 0 , 0 , ⋯ , 0 ) T X^{(0)}=( x_1^0 , x_2^0, \cdots , x_m^0 , 0 , \cdots , 0 )^T X(0)=(x10,x20,⋯,xm0,0,⋯,0)T , 其中右上角的 0 0 0 表示这是第 0 0 0 次迭代 , 是初始基可行解 ;
3 . 基变换
3.1 基变换 概念
1 . 基变换 引入 : 如果初始可行基的基可行解不是最优解 , 那么就需要进行迭代 , 迭代 就是进行 基变换 ; 整个单纯形法的迭代就是不停的进行基变换 ;
2 . 基变换 概念 : 如果两个基可行解相邻 , 两者可以变换 , 并且只能变换一个基变量 ;
举例 : 基可行解对应的基变量是 x 1 , x 2 , x 3 , x 4 x_1 , x_2 , x_3 , x_4 x1,x2,x3,x4 , 将其中的某一个迭代出来 , 使用 x 5 x_5 x5 替换其中的某一个 ;
3.2 线性规划 向量形式 按照基变量 非基变量 进行拆解
1 . 解 基可行解 方法 : 令所有的非基变量等于 0 0 0 , 可以得到基解 , 因为是单位阵 , 因此基解的取值是各自右端的常数值 b 1 ⋯ b m b_1 \cdots b_m b1⋯bm ; 即 x 1 = b 1 , x 2 = b 2 , ⋯ , x m = b m x_1 = b_1 , x_2 = b_2 , \cdots , x_m = b_m x1=b1,x2=b2,⋯,xm=bm , 这些值肯定大于 0 0 0 , 因此这些基解是基可行解 ;
2 . 初始基可行解 : X ( 0 ) = ( x 1 0 , x 2 0 , ⋯ , x m 0 , 0 , ⋯ , 0 ) T X^{(0)}=( x_1^0 , x_2^0, \cdots , x_m^0 , 0 , \cdots , 0 )^T X(0)=(x10,x20,⋯,xm0,0,⋯,0)T , 其中右上角的 0 0 0 表示这是第 0 0 0 次迭代 , 是初始基可行解 ;
其中 x 1 0 x_1^0 x10 是对应基变量 x 1 x_1 x1 的解 , x m 0 x_m^0 xm0 是对应基变量 x m x_m xm 的解 ;
3 . 这是线性规划的向量形式 :
m a x Z = C X s . t { ∑ j = 1 n P j x j = b x j ≥ 0 j = 1 , 2 , ⋯ , n \begin{array}{lcl}max Z = CX \\ \\ s.t \begin{cases} \sum_{j = 1}^{n} P_j x_j = b \\ \\ x_j \geq 0 & j=1,2,\cdots,n \end{cases}\end{array} maxZ=CXs.t⎩⎪⎨⎪⎧∑j=1nPjxj=bxj≥0j=1,2,⋯,n
4 . 拆解约束方程 : 将上面的向量形式的 约束方程 , ∑ j = 1 n P j x j = b \sum_{j = 1}^{n} P_j x_j = b ∑j=1nPjxj=b , 写成两部分 ;
- ① 前半部分 : ∑ i = 1 m P i x i \sum_{i=1}^{m}P_ix_i ∑i=1mPixi , 由 x 1 ⋯ x m x_1 \cdots x_m x1⋯xm 基变量及其系数组成 ;
- ② 后半部分 : ∑ j = m + 1 n P j x j \sum_{j=m+1}^{n}P_jx_j ∑j=m+1nPjxj 由 x m + 1 ⋯ x n x_{m+1} \cdots x_n xm+1⋯xn 组成 ;
3.3 初始基可行解 代入 拆解后的 线性规划 约束方程中
1 . 拆解后 线性规划的 向量形式为 :
m a x Z = C X s . t { ∑ i = 1 m P i x i + ∑ j = m + 1 n P j x j = b x j ≥ 0 j = 1 , 2 , ⋯ , n \begin{array}{lcl}max Z = CX \\ \\ s.t \begin{cases} \sum_{i=1}^{m}P_ix_i + \sum_{j=m+1}^{n}P_jx_j = b \\ \\ x_j \geq 0 & j=1,2,\cdots,n \end{cases}\end{array} maxZ=CXs.t⎩⎪⎨⎪⎧∑i=1mPixi+∑j=m+1nPjxj=bxj≥0j=1,2,⋯,n
2 . 初始基可行解代入约束方程 : 将初始的基可行解 X ( 0 ) = ( x 1 0 , x 2 0 , ⋯ , x m 0 , 0 , ⋯ , 0 ) T X^{(0)}=( x_1^0 , x_2^0, \cdots , x_m^0 , 0 , \cdots , 0 )^T X(0)=(x10,x20,⋯,xm0,0,⋯,0)T 代入上述约束方程 ;
其中 x 1 0 x_1^0 x10 是对应基变量 x 1 x_1 x1 的解 , x m 0 x_m^0 xm0 是对应基变量 x m x_m xm 的解 ;
其中后半部分 ∑ j = m + 1 n P j x j \sum_{j=m+1}^{n}P_jx_j ∑j=m+1nPjxj 的变量是非基变量 , 都等于 0 0 0 , 其乘以系数后的结果也等于 0 , 因此有
∑ j = m + 1 n P j x j = 0 \sum_{j=m+1}^{n}P_jx_j = 0 j=m+1∑nPjxj=0
在约束方程中可以直接消去 ; 约束方程变成如下形式 , 得到 :
∑ i = 1 m P i x i 0 = b \sum_{i=1}^{m}P_ix_i^0 = b i=1∑mPixi0=b
3.4 系数矩阵的 增广矩阵 概念
1 . 线性规划 系数矩阵 的 增广矩阵 : 增广矩阵 就是 将 约束方程的右端项 b 1 b_1 b1 到 b m b_m bm 常数 , 写到矩阵中 , 当做最右侧的向量 ;
2 . 下面是 线性规划标准形式的 约束方程 :
s
.
t
{
x
1
+
a
1
m
+
1
x
m
+
1
+
a
1
m
+
2
x
m
+
2
+
⋯
+
a
1
n
x
n
=
b
1
x
2
+
a
2
m
+
1
x
m
+
1
+
a
2
m
+
2
x
m
+
2
+
⋯
+
a
2
n
x
n
=
b
2
⋯
⋯
⋯
x
m
+
a
m
m
+
1
x
m
+
1
+
a
m
m
+
2
x
m
+
2
+
⋯
+
a
m
n
x
n
=
b
m
x
1
,
x
2
,
⋯
,
x
n
≥
0
s.t \begin{cases} x_1 & & +a_{1 m+1} x_{m+1} + a_{1 m+2} x_{m+2} + \cdots + a_{1n}x_{n} = b_1 & \\ \\ & x_2 & + a_{2 m+1} x_{m+1} + a_{2 m+2} x_{m+2} + \cdots + a_{2n}x_{n} = b_2& \\ \\ \cdots\cdots\cdots \\ \\ & & x_m + a_{m m+1} x_{m+1} + a_{m m+2} x_{m+2} + \cdots + a_{mn}x_{n} = b_m& \\ \\ x_1, x_2 , \cdots , x_{n} \geq 0 \end{cases}
s.t⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧x1⋯⋯⋯x1,x2,⋯,xn≥0x2+a1m+1xm+1+a1m+2xm+2+⋯+a1nxn=b1+a2m+1xm+1+a2m+2xm+2+⋯+a2nxn=b2xm+amm+1xm+1+amm+2xm+2+⋯+amnxn=bm
3 . 增广矩阵是 :
[ 1 0 ⋯ 0 a 1 , m + 1 ⋯ a 1 j ⋯ a 1 n b 1 0 1 ⋯ 0 a 2 , m + 1 ⋯ a 2 j ⋯ a 2 n b 2 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 1 a m , m + 1 ⋯ a m j ⋯ a m n b m ] \begin{array}{lcl} \begin{bmatrix} & 1 & 0 & \cdots & 0 & a_{1 , m+1} & \cdots & a_{1j} & \cdots a_{1n} & b_1 \\ & 0 & 1 & \cdots & 0 & a_{2 , m+1} & \cdots & a_{2j} & \cdots a_{2n} & b_2\\ & \vdots & \vdots & & \vdots & \vdots & & \vdots & \vdots & \vdots\\ & 0 & 0 & \cdots & 1 & a_{m , m+1} & \cdots & a_{mj} & \cdots a_{mn} & b_m\\ \end{bmatrix}\end{array} ⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋯00⋮1a1,m+1a2,m+1⋮am,m+1⋯⋯⋯a1ja2j⋮amj⋯a1n⋯a2n⋮⋯amnb1b2⋮bm⎦⎥⎥⎥⎤
为该增广矩阵中的向量标号 P 1 P_1 P1 到 P n P_n Pn 方便下面讨论 ;
4 . 增广矩阵的前 m m m 个向量 : P 1 P_1 P1 到 P m P_m Pm 是 基变量前的系数 , 基向量 , 也是 单位向量 :
[ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋮ 0 0 ⋯ 1 ] \begin{array}{lcl} \begin{bmatrix} & 1 & 0 & \cdots & 0 & \\ & 0 & 1 & \cdots & 0 & \\ & \vdots & \vdots & & \vdots & \\ & 0 & 0 & \cdots & 1 &\\ \end{bmatrix}\end{array} ⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋯00⋮1⎦⎥⎥⎥⎤
5 . 增广矩阵的 第 m + 1 m+1 m+1 到 n n n 个向量 : P m + 1 P_{m+1} Pm+1 到 P n P_n Pn 是正常的列向量 , 写到 单位向量右侧 , 常数向量左侧 :
[ a 1 , m + 1 ⋯ a 1 j ⋯ a 1 n b 1 a 2 , m + 1 ⋯ a 2 j ⋯ a 2 n b 2 ⋮ ⋮ ⋮ ⋮ a m , m + 1 ⋯ a m j ⋯ a m n b m ] \begin{array}{lcl} \begin{bmatrix} & & a_{1 , m+1} & \cdots & a_{1j} & \cdots a_{1n} & b_1 \\ & & a_{2 , m+1} & \cdots & a_{2j} & \cdots a_{2n} & b_2\\ & & \vdots & \vdots & & \vdots & \vdots & \\ & & a_{m , m+1} & \cdots & a_{mj} & \cdots a_{mn} & b_m\\ \end{bmatrix}\end{array} ⎣⎢⎢⎢⎡a1,m+1a2,m+1⋮am,m+1⋯⋯⋮⋯a1ja2jamj⋯a1n⋯a2n⋮⋯amnb1b2⋮bm⎦⎥⎥⎥⎤
3.5 向量间的线性表达
6 . 向量之间的线性表达 : 使用 P 1 P_1 P1 到 P m P_m Pm 单位向量 表达 P j P_j Pj 向量 ;
n n n 维的单位向量可以表示任何 n n n 维向量 ;
表示公式 : 其中的
P
j
P_j
Pj 向量在下面有解释
P
j
=
a
1
j
P
1
+
a
2
j
P
2
+
a
3
j
P
3
+
⋯
+
a
m
j
P
m
=
∑
i
=
1
m
a
i
j
P
i
\begin{array}{lcl}P_j & = & a_{1j} P_1 + a_{2j} P_2 + a_{3j} P_3 + \cdots + a_{mj}P_m \\\\ & = & \sum_{i=1}^m a_{ij}P_i \end{array}
Pj==a1jP1+a2jP2+a3jP3+⋯+amjPm∑i=1maijPi
a 1 j P 1 a_{1j} P_1 a1jP1 计算 : 其中 a 1 j a_{1j} a1j 是个常数 , P 1 P_1 P1 是个向量 , 运算方式就是 常数 乘以 向量中每个值 , 然后相加 , P 1 P_1 P1 中只有第一项是 1 , 其它项都是 0 0 0 , 因此结果是 a 1 j a_{1j} a1j ;
P
1
P_1
P1 到
P
m
P_m
Pm 单位向量是 :
[
1
0
⋯
0
0
1
⋯
0
⋮
⋮
⋮
0
0
⋯
1
]
\begin{array}{lcl} \begin{bmatrix} & 1 & 0 & \cdots & 0 & \\ & 0 & 1 & \cdots & 0 & \\ & \vdots & \vdots & & \vdots & \\ & 0 & 0 & \cdots & 1 &\\ \end{bmatrix}\end{array}
⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋯00⋮1⎦⎥⎥⎥⎤
P
j
P_j
Pj 向量是 :
[
a
1
j
a
2
j
⋮
a
m
j
]
\begin{array}{lcl} \begin{bmatrix} & a_{1j} & \\ & a_{2j} & \\ & \vdots & \\ & a_{mj} &\\ \end{bmatrix}\end{array}
⎣⎢⎢⎢⎡a1ja2j⋮amj⎦⎥⎥⎥⎤
7 . 线性表达移项 :
将上述线性表达式结果进行移项 :
P j = a 1 j P 1 + a 2 j P 2 + a 3 j P 3 + ⋯ + a m j P m = ∑ i = 1 m a i j P i \begin{array}{lcl}P_j & = & a_{1j} P_1 + a_{2j} P_2 + a_{3j} P_3 + \cdots + a_{mj}P_m \\\\ & = & \sum_{i=1}^m a_{ij}P_i \end{array} Pj==a1jP1+a2jP2+a3jP3+⋯+amjPm∑i=1maijPi
移项后结果 :
P j − ∑ i = 1 m a i j P i = 0 P_j - \sum_{i=1}^m a_{ij}P_i = 0 Pj−i=1∑maijPi=0
将上述式子左右两边乘以一个正数 θ \theta θ :
θ ( P j − ∑ i = 1 m a i j P i ) = 0 \theta ( P_j - \sum_{i=1}^m a_{ij}P_i ) = 0 θ(Pj−i=1∑maijPi)=0
3.6 将 向量线性表达结果 与 初始基可行解代入结果 结合
1 . 初始基可行解代入 拆解后的向量公式中 : 将线性规划 向量形式 根据 基向量 非基向量 进行拆解 , 并将初始基可行解代入到拆解后的约束方程中 , 结果是 :
∑ i = 1 m P i x i 0 = b \sum_{i=1}^{m}P_ix_i^0 = b i=1∑mPixi0=b
2 . 向量间线性表达最终结果是 :
θ ( P j − ∑ i = 1 m a i j P i ) = 0 \theta ( P_j - \sum_{i=1}^m a_{ij}P_i ) = 0 θ(Pj−i=1∑maijPi)=0
3 . 向量线性表达结果 与 初始基可行解代入结果 结合 : 将 上述 二者结合这样我们得到了下面的方程组 :
{ θ ( P j − ∑ i = 1 m a i j P i ) = 0 ∑ i = 1 m P i x i 0 = b \begin{cases} \theta ( P_j - \sum_{i=1}^m a_{ij}P_i ) = 0 \\\\ \sum_{i=1}^{m}P_ix_i^0 = b \end{cases} ⎩⎪⎨⎪⎧θ(Pj−∑i=1maijPi)=0∑i=1mPixi0=b
4 . 将方程组两边分别相加 并计算 :
θ ( P j − ∑ i = 1 m a i j P i ) + ∑ i = 1 m P i x i 0 = 0 + b θ P j − θ ∑ i = 1 m a i j P i + ∑ i = 1 m P i x i 0 = b ∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j = b \begin{array}{lcl} \theta ( P_j - \sum_{i=1}^m a_{ij}P_i ) + \sum_{i=1}^{m}P_ix_i^0 & = &0 + b \\\\ \theta P_j - \theta \sum_{i=1}^m a_{ij}P_i + \sum_{i=1}^{m}P_ix_i^0 & = & b \\\\ \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij}) P_i + \theta P_j & = & b \\\\ \end{array} θ(Pj−∑i=1maijPi)+∑i=1mPixi0θPj−θ∑i=1maijPi+∑i=1mPixi0∑i=1m(xi0−θaij)Pi+θPj===0+bbb
最终结果是 :
∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j = b \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij} ) P_i + \theta P_j = b i=1∑m(xi0−θaij)Pi+θPj=b
3.7 分析初始的约束方程
上面得到式子 :
∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j = b \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij} ) P_i + \theta P_j = b i=1∑m(xi0−θaij)Pi+θPj=b
该结果 正好是 满足 约束方程的 一个解 ; 初始的约束方程组为 :
∑ j = 1 n P j x j = b \sum_{j = 1}^{n} P_j x_j = b j=1∑nPjxj=b
展开后为 :
P 1 x 1 + P 2 x 2 + ⋯ + P j x j = b P_1x_1 + P_2x_2 + \cdots + P_jx_j = b P1x1+P2x2+⋯+Pjxj=b
都是 x j x_j xj 取某些值 , 满足 让 ∑ j = 1 n P j x j \sum_{j = 1}^{n} P_j x_j ∑j=1nPjxj 结果等于 b b b ;
只要满足让 P j P_j Pj 乘以一个数 x_j , 将这些 P j x j P_j x_j Pjxj 相加 , 结果等于 b b b , 那么这些 x j x_j xj 就是其中的一个解 ;
这个解如果都大于 0 , 那么这些解都是可行解 ;
3.8 分析 经过 方程组变换后的 式子 引入 变换后的 基可行解
1 . 向量形式分析 :
将 向量线性表达结果 与 初始基可行解代入结果 结合 经过各种变换后的 最终结果是 :
∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j = b \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij} ) P_i + \theta P_j = b i=1∑m(xi0−θaij)Pi+θPj=b
由此发现 , 该形式 与 初始的线性规划向量形式的 约束方程 的 形式 几乎一致 :
∑ j = 1 n P j x j = b \sum_{j = 1}^{n} P_j x_j = b j=1∑nPjxj=b
2 . 展开式分析 :
将上面的
∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j = b \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij} ) P_i + \theta P_j = b i=1∑m(xi0−θaij)Pi+θPj=b
展开后为 :
(
x
1
0
−
θ
a
1
j
)
P
1
+
(
x
2
0
−
θ
a
2
j
)
P
2
+
⋯
+
(
x
i
0
−
θ
a
i
j
)
P
i
+
θ
P
j
=
b
( x_1^0 - \theta a_{1j}) P_1 + ( x_2^0 - \theta a_{2j}) P_2 + \cdots + ( x_i^0 - \theta a_{ij}) P_i + \theta P_j = b
(x10−θa1j)P1+(x20−θa2j)P2+⋯+(xi0−θaij)Pi+θPj=b
线性方程标准形式展开后的结果 :
P 1 x 1 + P 2 x 2 + ⋯ + P j x j = b P_1x_1 + P_2x_2 + \cdots + P_jx_j = b P1x1+P2x2+⋯+Pjxj=b
3 . 关于解的说明 :
P 1 , P 2 , ⋯ , P i , P j P_1 , P_2 , \cdots , P_i , P_j P1,P2,⋯,Pi,Pj 都是系数向量 , 前面乘以的数就是 对应的解 ;
∑ i = 1 m ( x i 0 − θ a i j ) P i + θ P j \sum_{i=1}^{m} ( x_i^0 - \theta a_{ij}) P_i + \theta P_j ∑i=1m(xi0−θaij)Pi+θPj 式子中 P i P_i Pi 和 P j P_j Pj 系数相乘的取值就是满足 约束方程 ∑ j = 1 n P j x j = b \sum_{j = 1}^{n} P_j x_j = b ∑j=1nPjxj=b 的一个解 ;
即 :
系数向量
P
1
P_1
P1 对应的解是
(
x
1
0
−
θ
a
1
j
)
( x_1^0 - \theta a_{1j})
(x10−θa1j) ;
系数向量
P
2
P_2
P2 对应的解是
(
x
2
0
−
θ
a
2
j
)
( x_2^0 - \theta a_{2j})
(x20−θa2j) ;
⋮
\vdots
⋮
系数向量
P
i
P_i
Pi 对应的解是
(
x
i
0
−
θ
a
i
j
)
( x_i^0 - \theta a_{ij})
(xi0−θaij) ;
系数向量
P
j
P_j
Pj 对应的解是
θ
\theta
θ ;
第一次迭代后的 解 为 :
X ( 1 ) = ( x 1 0 − θ a 1 j , x 2 0 − θ a 2 j , ⋯ , x m 0 − θ a m j , 0 , ⋯ , θ , ⋯ , 0 ) T X^{(1)}=( x_1^0 - \theta a_{1j} ,x_2^0 - \theta a_{2j} , \cdots , x_m^0 - \theta a_{mj} , 0 , \cdots , \theta , \cdots , 0 )^T X(1)=(x10−θa1j,x20−θa2j,⋯,xm0−θamj,0,⋯,θ,⋯,0)T
初始线性规划的基可行解为 X ( 0 ) = ( x 1 0 , x 2 0 , ⋯ , x m 0 , 0 , ⋯ , 0 ) T X^{(0)}=( x_1^0 , x_2^0, \cdots , x_m^0 , 0 , \cdots , 0 )^T X(0)=(x10,x20,⋯,xm0,0,⋯,0)T ;
3.9 θ \theta θ 的取值分析
1 . 可行解的非负约束 : 线性规划 解出的基解 , 满足约束方程组的另外一个条件是 , 这一组解是基可行解 , 即这些解都要大于等于 0 , 要满足解的非负约束 ;
满足所有约束条件的解才是基可行解 , 约束条件除了满足约束方程约束外 , 还要满足变量的非负约束 ;
2 . 分析解 : 下面是第一次迭代出的解 , 如果下面的解都是可行解 , 则所有的解必须大于等于 0 ;
X ( 1 ) = ( x 1 0 − θ a 1 j , x 2 0 − θ a 2 j , ⋯ , x m 0 − θ a m j , 0 , ⋯ , θ , ⋯ , 0 ) T X^{(1)}=( x_1^0 - \theta a_{1j} ,x_2^0 - \theta a_{2j} , \cdots , x_m^0 - \theta a_{mj} , 0 , \cdots , \theta , \cdots , 0 )^T X(1)=(x10−θa1j,x20−θa2j,⋯,xm0−θamj,0,⋯,θ,⋯,0)T
上述解都必须大于等于 0 0 0 , 才是可行解 , 因此有下面的式子 :
x i 0 − θ a i j ≥ 0 i = 1 , 2 , ⋯ , m x i 0 ≥ θ a i j \begin{array}{lcl} x_i^0 - \theta a_{ij} \geq 0 & i = 1 , 2 , \cdots , m \\\\ x_i^0 \geq \theta a_{ij} \end{array} xi0−θaij≥0xi0≥θaiji=1,2,⋯,m
因为 θ \theta θ 是正数 , 可以在等式两边都除以 θ \theta θ , 得到下面的表达式 :
a i j ≤ x i 0 θ a_{ij} \leq \frac{x_i^0}{\theta} aij≤θxi0
a i j a_{ij} aij 要满足上面的条件 , 该解才是可行解 ;
3 . a i j a_{ij} aij 取值有两种情况 :
- ① a i j ≤ 0 a_{ij} \leq 0 aij≤0 ;
- ② a i j > 0 a_{ij} > 0 aij>0 ;
下面会 根据 a i j a_{ij} aij 的取值 , 分情况讨论 θ \theta θ 取值 ;
4 . a i j ≤ 0 a_{ij} \leq 0 aij≤0 的情况 :
如果 a i j ≤ 0 a_{ij} \leq 0 aij≤0 , a i j ≤ x i 0 θ a_{ij} \leq \frac{x_i^0}{\theta} aij≤θxi0 肯定成立 , 因为 x i 0 x_i^0 xi0 和 θ \theta θ 都是整数 , 两个数相除 , 肯定也是正数 , 正数肯定大于负数 ;
令 m m m 个约束不等式 至少有一个等号是成立的 , 当 a i j ≤ 0 a_{ij} \leq 0 aij≤0 时 , 式子 a i j ≤ x i 0 θ a_{ij} \leq \frac{x_i^0}{\theta} aij≤θxi0 肯定成立 ;
5 . a i j > 0 a_{ij} > 0 aij>0 时的情况 :
假设 a i j , a 2 j , ⋯ , a m j a_{ij} , a_{2j} , \cdots , a_{mj} aij,a2j,⋯,amj 中最小的是第 l l l 个 , 即 a l j a_{lj} alj , 那么有下面的式子 :
θ = m i n { x i 0 a i j ∣ a i j > 0 } = x l 0 a l j \theta = min\begin{Bmatrix}\\\\ \frac{x_i^0}{a_{ij}} | a_{ij} > 0 \\\\ \end{Bmatrix} =\frac{x_l^0}{a_{lj}} θ=min⎩⎪⎨⎪⎧aijxi0∣aij>0⎭⎪⎬⎪⎫=aljxl0
令 θ \theta θ 是 x i 0 a i j \frac{x_i^0}{a_{ij}} aijxi0 中最小的那个值 , 当 i = l i=l i=l 时 , 该值最小 ;
这样可以确保 :
- ① 当 x i 0 − θ a i j = 0 x_i^0 - \theta a_{ij} = 0 xi0−θaij=0 时 , i = l i=l i=l ;
- ② 当 x i 0 − θ a i j ≥ 0 x_i^0 - \theta a_{ij} \geq 0 xi0−θaij≥0 时 , i ≠ l i \not=l i=l ;
这个 θ \theta θ 是单纯形法中最重要的 最小比值规则 ;
将上述 θ \theta θ 代入初始的基解 X ( 1 ) X^{(1)} X(1) 得到的就是可行解 : 下面的解都是可行解 ;
X ( 1 ) = ( x 1 0 − θ a 1 j , x 2 0 − θ a 2 j , ⋯ , x m 0 − θ a m j , 0 , ⋯ , θ , ⋯ , 0 ) T X^{(1)}=( x_1^0 - \theta a_{1j} ,x_2^0 - \theta a_{2j} , \cdots , x_m^0 - \theta a_{mj} , 0 , \cdots , \theta , \cdots , 0 )^T X(1)=(x10−θa1j,x20−θa2j,⋯,xm0−θamj,0,⋯,θ,⋯,0)T
3.10 验证基矩阵 及 初等行变换
1 . 判定解是否可行 : 上面的解是可行解 , 下面需要验证这些可行解对应的向量是否能组成一个基 , 即 判定这个解是否是基可行解 ;
2 . 向量替换 : 将第一次变换的 P j P_j Pj 放到原基中 , 原来的初始基是单位阵 , 即 P 1 , P 2 , ⋯ , P m P_1 , P_2 , \cdots , P_m P1,P2,⋯,Pm , 将其中的 P l P_l Pl 替换成 P j P_j Pj , 已经验证过解出的解是可行解 , 现在要验证 P j P_j Pj 向量替换 P l P_l Pl 后 , 该矩阵是不是基矩阵 ;
3 . 判定基 : 新的矩阵的行列式值不等于 0 0 0 , 则说明该矩阵是基矩阵 , 因为除 P j P_j Pj 外其余都是单位阵 , 显然该行列式不等于 0 0 0 , 该矩阵是基矩阵 ;
4 . 单位阵转换 : 该解作为迭代后的新的基可行解 , 为了方便下一步推导 , 我们希望对应的基向量都是单位向量 ; 这里需要使用矩阵的初等行变换 , 将其转为单位向量 ;
5 . 初等行变换 : 将 P j P_j Pj 列 , 替换成单位列 , P j P_j Pj 向量中 , a l j a_{lj} alj 除以 a l j a_{lj} alj , 变成 1 1 1 ,
4 . 最优性检验 和 解的判别
4.1 将 基可行解 代入方程
将上述 初始基可行解
X
(
0
)
=
(
x
1
0
,
x
2
0
,
⋯
,
x
m
0
,
0
,
⋯
,
0
)
T
X^{(0)}=( x_1^0 , x_2^0, \cdots , x_m^0 , 0 , \cdots , 0 )^T
X(0)=(x10,x20,⋯,xm0,0,⋯,0)T , 和 第一次迭代后的基可行解
X
(
1
)
=
(
x
1
0
−
θ
a
1
j
,
x
2
0
−
θ
a
2
j
,
⋯
,
x
m
0
−
θ
a
m
j
,
0
,
⋯
,
θ
,
⋯
,
0
)
T
X^{(1)}=( x_1^0 - \theta a_{1j} ,x_2^0 - \theta a_{2j} , \cdots , x_m^0 - \theta a_{mj} , 0 , \cdots , \theta , \cdots , 0 )^T
X(1)=(x10−θa1j,x20−θa2j,⋯,xm0−θamj,0,⋯,θ,⋯,0)T , 分别代入约束方程的目标函数 :
m a x Z = C X = ∑ j = 1 n c j x j max Z = CX = \sum_{j=1}^n c_j x_j maxZ=CX=j=1∑ncjxj
代入 X ( 0 ) X^{(0)} X(0) , 因为只有前 m m m 项是非 0 0 0 的 , 后面的解都是 0 0 0 , 代入后的结果 :
Z ( 0 ) = ∑ i = 1 m c i x i 0 Z^{(0)} = \sum_{i = 1}^m c_i x_i^0 Z(0)=i=1∑mcixi0
代入 X ( 1 ) X^{(1)} X(1) , 只有前 m m m 项 , 和第 j j j 项的解是非 0 0 0 的 , 其余的解都是 0 0 0 , 前 m m m 项 解为 ( x i 0 − θ a i j ) (x_i^0 - \theta a_{ij}) (xi0−θaij) 其中 ( i = 1 , 2 , ⋯ , m ) ( i = 1 , 2 , \cdots , m) (i=1,2,⋯,m) 代入后为
∑ i = 1 m c i ( x i 0 − θ a i j ) \sum_{i = 1}^m c_i ( x_i^0 - \theta a_{ij} ) i=1∑mci(xi0−θaij)
第 j j j 项解为 θ \theta θ , 代入后为 θ c j \theta c_j θcj ;
整体目标函数代入结果 :
Z ( 1 ) = ∑ i = 1 m c i ( x i 0 − θ a i j ) + θ c j Z^{(1)} = \sum_{i = 1}^m c_i ( x_i^0 - \theta a_{ij} ) + \theta c_j Z(1)=i=1∑mci(xi0−θaij)+θcj
4.2 引入 检验数
1 . 合并同类项 :
在上面的 Z ( 1 ) Z^{(1)} Z(1) 基础上 , 将其中的 ∑ i = 1 m c i x i 0 \sum_{i = 1}^m c_i x_i^0 ∑i=1mcixi0 通过合并同类项 , 提取出来 :
Z
(
1
)
=
∑
i
=
1
m
c
i
(
x
i
0
−
θ
a
i
j
)
+
θ
c
j
Z^{(1)} = \sum_{i = 1}^m c_i ( x_i^0 - \theta a_{ij} ) + \theta c_j
Z(1)=i=1∑mci(xi0−θaij)+θcj
Z
(
1
)
=
∑
i
=
1
m
c
i
x
i
0
−
∑
i
=
1
m
c
i
θ
a
i
j
+
θ
c
j
Z^{(1)} = \sum_{i = 1}^m c_i x_i^0 - \sum_{i = 1}^m c_i \theta a_{ij} + \theta c_j
Z(1)=i=1∑mcixi0−i=1∑mciθaij+θcj
Z
(
1
)
=
∑
i
=
1
m
c
i
x
i
0
+
θ
c
j
−
∑
i
=
1
m
c
i
θ
a
i
j
Z^{(1)} = \sum_{i = 1}^m c_i x_i^0 + \theta c_j - \sum_{i = 1}^m c_i \theta a_{ij}
Z(1)=i=1∑mcixi0+θcj−i=1∑mciθaij
Z
(
1
)
=
∑
i
=
1
m
c
i
x
i
0
+
θ
(
c
j
−
∑
i
=
1
m
c
i
a
i
j
)
Z^{(1)} = \sum_{i = 1}^m c_i x_i^0 + \theta ( c_j - \sum_{i = 1}^m c_i a_{ij} )
Z(1)=i=1∑mcixi0+θ(cj−i=1∑mciaij)
2 . 代入 Z ( 0 ) Z^{(0)} Z(0) :
其中 Z ( 1 ) = ∑ i = 1 m c i x i 0 Z^{(1)} = \sum_{i = 1}^m c_i x_i^0 Z(1)=∑i=1mcixi0 , 将 ∑ i = 1 m c i x i 0 \sum_{i = 1}^m c_i x_i^0 ∑i=1mcixi0 使用 Z ( 0 ) Z^{(0)} Z(0) 替换 , 得到 :
Z ( 1 ) = Z ( 0 ) + θ ( c j − ∑ i = 1 m c i a i j ) Z^{(1)} = Z^{(0)} + \theta ( c_j - \sum_{i = 1}^m c_i a_{ij} ) Z(1)=Z(0)+θ(cj−i=1∑mciaij)
3 . 引入检验数 :
分析下面的式子 :
Z ( 1 ) = Z ( 0 ) + θ ( c j − ∑ i = 1 m c i a i j ) Z^{(1)} = Z^{(0)} + \theta ( c_j - \sum_{i = 1}^m c_i a_{ij} ) Z(1)=Z(0)+θ(cj−i=1∑mciaij)
-
① 分析差距 : X ( 1 ) X^{(1)} X(1) 对应的目标函数值 Z ( 1 ) Z^{(1)} Z(1) , 与 X ( 0 ) X^{(0)} X(0) 对应的目标函数值 Z ( 0 ) Z^{(0)} Z(0) , 其唯一的差距就是 θ ( c j − ∑ i = 1 m c i a i j ) \theta ( c_j - \sum_{i = 1}^m c_i a_{ij} ) θ(cj−∑i=1mciaij) 值 , θ \theta θ 是正数 ;
-
② 目标函数增大趋势 : 如果后面的这部分 ( c j − ∑ i = 1 m c i a i j ) ( c_j - \sum_{i = 1}^m c_i a_{ij} ) (cj−∑i=1mciaij) 大于 0 0 0 , 说明目标函数值是增大的 , 即目标函数值还有增大的可能性 ;
-
③ 目标函数减小趋势 : 如果后面的这部分 ( c j − ∑ i = 1 m c i a i j ) ( c_j - \sum_{i = 1}^m c_i a_{ij} ) (cj−∑i=1mciaij) 小于 0 0 0 , 说明迭代后目标函数值会变小 , 那么当前函数的值就是最优解 ;
检验数引入 : 下面的值非常重要 , 称为 “检验数” , 用于判断当前基可行解是否最优的检验数 , 记为符号
σ
j
\sigma_j
σj :
σ
j
=
c
j
−
∑
i
=
1
m
c
i
a
i
j
\sigma_j = c_j - \sum_{i = 1}^m c_i a_{ij}
σj=cj−i=1∑mciaij
4.3 解判别的方法
1 . 之前推导的内容 :
迭代前的解 :
Z ( 0 ) = ∑ i = 1 m c i x i 0 Z^{(0)} = \sum_{i = 1}^m c_i x_i^0 Z(0)=i=1∑mcixi0
迭代后的解 :
Z ( 1 ) = Z ( 0 ) + θ ( c j − ∑ i = 1 m c i a i j ) Z^{(1)} = Z^{(0)} + \theta ( c_j - \sum_{i = 1}^m c_i a_{ij} ) Z(1)=Z(0)+θ(cj−i=1∑mciaij)
将后者减去前者 , 得到一个检验数 σ j \sigma_j σj :
σ j = c j − ∑ i = 1 m c i a i j \sigma_j = c_j - \sum_{i = 1}^m c_i a_{ij} σj=cj−i=1∑mciaij
2 . 最优解 : 当所有的非基变量检验数 σ j ≤ 0 \sigma_j \leq 0 σj≤0 时 , 即 任何 基变换 后的目标函数 Z ( 1 ) Z^{(1)} Z(1) , 其都是 Z ( 0 ) Z^{(0)} Z(0) 与一个小于等于 0 0 0 的数之和 , 任何基变换都会导致目标函数值减小 , 该解 Z ( 0 ) Z^{(0)} Z(0) 对应的的目标函数值是最大值 , 该解是最优解 ;
3 . 无穷多最优解 : 当所有的非基变量检验数 σ j ≤ 0 \sigma_j \leq 0 σj≤0 时 , 其中有非基变量 x j x_j xj 的检验数 σ j = 0 \sigma_j = 0 σj=0 , 那么说明有两个点可以使目标函数达到最大值 , 这两个点之间的连线都是最优解 , 这种情况下有无穷多最优解 ;
4 . 唯一最优解 : 当所有的非基变量检验数 σ j < 0 \sigma_j < 0 σj<0 时 , 当前解是最优解 ;
5 . 无界解 : 如果存在某个非基变量的检验数 σ j > 0 \sigma_j > 0 σj>0 , 而该非基变量对应的非基向量 P j ≤ 0 P_j \leq 0 Pj≤0 , 则该线性规划有无界解 ;
-
① 分析检验数 与 P j P_j Pj : 如果 P j ≤ 0 P_j \leq 0 Pj≤0 , 那么 该向量中所有的数 a i j a_{ij} aij ( i = 1 , 2 , ⋯ , m i = 1 , 2 , \cdots , m i=1,2,⋯,m ) 都是小于等于 0 0 0 的 , 此时检验数
σ j = c j − ∑ i = 1 m c i a i j \sigma_j = c_j - \sum_{i = 1}^m c_i a_{ij} σj=cj−i=1∑mciaij 此时 σ j \sigma_j σj变成正数 ; -
② 分析 Z ( 1 ) Z^{(1)} Z(1) 目标函数值 :
Z ( 1 ) = ∑ i = 1 m c i ( x i 0 − θ a i j ) + θ c j Z^{(1)} = \sum_{i = 1}^m c_i ( x_i^0 - \theta a_{ij} ) + \theta c_j Z(1)=i=1∑mci(xi0−θaij)+θcj
如果 a i j a_{ij} aij ( i = 1 , 2 , ⋯ , m i = 1 , 2 , \cdots , m i=1,2,⋯,m ) 都是小于等于 0 0 0 的 , x i 0 − θ a i j x_i^0 - \theta a_{ij} xi0−θaij 值肯定大于 0 0 0 , θ \theta θ 取任意大的值 , 都符合要求 , 此时目标函数 Z ( 1 ) Z^{(1)} Z(1) 值会无限大 ;
4.4 线性规划解判别定理
1 . 最优解判别定理 :
- ① 条件 1 : 若 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 为基可行解 ;
- ② 条件 2 : 并且全部的检验数 σ j ≤ 0 \sigma_j \leq 0 σj≤0 , j = m + 1 , ⋯ , n j = m+1 , \cdots , n j=m+1,⋯,n ;
- ③ 结论 : 此时的 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 是 最优解 ;
2 . 唯一最优解判别定理 :
- ① 条件 1 : 若 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 为基可行解 ;
- ② 条件 2 : 并且全部的检验数 σ j < 0 \sigma_j < 0 σj<0 , j = m + 1 , ⋯ , n j = m+1 , \cdots , n j=m+1,⋯,n ;
- ③ 结论 : 此时的 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 是 唯一最优解 ;
3 . 无穷多最优解判别定理 :
- ① 条件 1 : 若 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 为基可行解 ;
- ② 条件 2 : 并且全部的检验数 σ j ≤ 0 \sigma_j \leq 0 σj≤0 , j = m + 1 , ⋯ , n j = m+1 , \cdots , n j=m+1,⋯,n ;
- ③ 条件 3 : 存在一个 非基变量 x m + k x_{m+k} xm+k 的检验数 σ m + k = 0 \sigma_{m+k} = 0 σm+k=0 ;
- ④ 结论 : 此时的 X ( 0 ) = ( b 1 ′ , b 2 ′ , ⋯ , b m ′ , 0 , ⋯ , 0 ) T X^{( 0 )} = ( b_1^{'} , b_2^{'} , \cdots , b_m^{'} , 0 , \cdots , 0 ) ^T X(0)=(b1′,b2′,⋯,bm′,0,⋯,0)T 是 唯一最优解 ;
如果两个顶点都能取得最优值 , 那么两个顶点之间的连线 ( 有无穷多个点 ) 肯定也能取得最优值 ;
4. 无界解判别定理 :
- ① 条件 1 : 若 存在一个 非基变量 x m + k x_{m+k} xm+k 的 检验数 σ m + k > 0 \sigma_{m+k} > 0 σm+k>0 ;
- ② 条件 2 : 其对应的非基变量的所有系数 a i , m + k ≤ 0 a_{i , m+k} \leq 0 ai,m+k≤0 , i = 1 , 2 , ⋯ , m i = 1 , 2 , \cdots , m i=1,2,⋯,m ;
- ③ 结论 : 此时的 线性规划 具有无界解 ;