线性规划
线性规划的标准型
线性规划模型 ( LP )
- 一组决策变量
- 一个线性目标函数
- 一组线性约束条件
一般形式:
标准型:
其中,记 \(c=\left(c_{1}, c_{2}, \cdots, c_{n}\right)^{T}, b=\left(b_{1}, b_{2}, \cdots, b_{m}\right)^{T}, x=\left(x_{1}, x_{2}, \cdots, x_{n}\right)^{T},\boldsymbol{A}=\left(a_{i j}\right)_{m \times n}\),则线性规划标准型记为
化标准型
-
目标函数
原问题目标函数:\(\min \quad c^{T} x \quad \Rightarrow \max \quad-c^{T} x\)
-
约束条件
-
原问题条件:\(a_{i 1} x_{1}+a_{i 2} x_{2}+\cdots+a_{i n} x_{n} \leq b_{i}\)
\(\Rightarrow\left\{\begin{array}{c}{a_{i 1} x_{1}+a_{i 2} x_{2}+\cdots+a_{i n} x_{n}+x_{n+i}=b_{i}} \\ {x_{n+i} \geq 0}\end{array}\right.\),\(x_{n+i}\) 称为松弛变量
-
原问题条件:\(a_{i 1} x_{1}+a_{i 2} x_{2}+\cdots+a_{i n} x_{n} \geq b_{i}\)
\(\Rightarrow\left\{\begin{array}{c}{a_{i 1} x_{1}+a_{i 2} x_{2}+\cdots+a_{i n} x_{n}-x_{n+i}=b_{i}} \\ {x_{n+i} \geq 0}\end{array}\right.\),\(x_{n+i}\) 称为剩余变量
-
原问题:\(x_i\) 无非负约束,则令\(\left\{\begin{aligned} \boldsymbol{x}_{i} &=\boldsymbol{u}_{i}-\boldsymbol{v}_{i} \\ \boldsymbol{u}_{i}, \boldsymbol{v}_{i} & \geq \mathbf{0} \end{aligned}\right.\)
-
图解法
- 画出可行域范围
- 利用等值线平移方法求极值点
线性规划解的概念和性质
可行解:满足 (2)(3) 式的解 \(x=(x_1,x_2,...,x_n)^T\) 称为 \((LP)\) 的可行解
可行域:\(D=\{x | A x=b, x \geq 0\}\)
- 线性规划问题的可行域 \(D\) 是凸集
线性规划解的概念
基:设 \(A\) 为 \(m \times n\) 的系数矩阵,秩为 \(m\) 。若 \(B\) 为 \(A\) 中 \(m \times m\) 阶的非退化子阵,则称 \(B\) 为 \(A\) 的 (或 \((LP )\) 问题) 一个基。
- 非退化子阵:又称 “非异矩阵”、“满秩矩阵”,矩阵行列式 \(|A|\ne0\)。\(n\) 阶方阵 \(A\) 是非退化的充要条件为 \(A\) 是可逆矩阵。
基向量:设基 \(\boldsymbol{B}=\left(\boldsymbol{P}_{i 1}, \boldsymbol{P}_{i 2}, \cdots, \boldsymbol{P}_{i m}\right)\),称 \(\left(\boldsymbol{P}_{i 1}, \boldsymbol{P}_{i 2}, \cdots, \boldsymbol{P}_{i m}\right)\) 为基向量。
基变量:\(\boldsymbol{P}_{i m}\)对应的变量 \(x_m\),不是基变量的变量称为非基变量。
基本解:取线性规划的基 \(B\),令非基变量取0,\(\left(B^{-1} b, 0\right)^{T}\) 为对应于基 \(B\) 的基本解。
基本可行解:满足线性规划 \((LP)\) 问题条件(3) 的基本解为基本可行解。
- 线性规划 \((LP)\) 问题的解 \(x\) 是基本可行解的充要条件是 \(x\) 是可行域 \(D\) 的顶点
单纯形法
算法思路
从一个基本可行解开始,判断其是否为最优解,若不是则跳到下一个基本可行解,直到找到最优解。
- 如何得到第一个基本可行解
- 如何判断是否是最优解
- 如何从一个基本可行解变换到另一个基本可行解
初始基本可行解
大 \(M\) 法:增加人工变量使得 \(z=\sum_{i=1}^{n} c_{i} x_{i}-M x_{n+1}-\cdots-M x_{n+m}\),取 \(\boldsymbol{x}_{n+1}, \cdots, \boldsymbol{x}_{n+m}\) 为初始基变量。
最优解判定条件
设经过迭代后有
则 \(x_1,...,x_m\) 为基变量,\(x_{m+1},...,x_n\) 为非基变量。
代入目标函数有
令 \(z_0=\sum_{i=1}^{m} c_{i} b_{i}^{\prime}\),\(\sigma_j=c_{j}-\sum_{i=1}^{m} c_{i} a_{i j}^{\prime}\),则
称 \(\sigma_j\) 为检验函数。
- 若 \(x^*=(b_1^*,...,b_m^*,0,...,0)^T\) 是对应于基 \(B\) 的一个基本可行解,且对任意 \(m+1 \le j \le n\),有 \(\sigma_j \le 0\),则 \(x^*\) 是最优解。
- 若 \(x^*=(b_1^*,...,b_m^*,0,...,0)^T\) 是对应于基 \(B\) 的一个基本可行解,且对任意 \(m+1 \le j \le n\),有 \(\sigma_j \le 0\),且存在 \(\sigma_{m+k}=0(k \ge 0)\) ,则线性规划问题有无穷多最优解。
单纯形表
根据上节,将线性规划问题 \((LP)\) ,改写成
则单纯形表为
\(x_ 1\) | \(x_2\) | \(x_ m\) | \(x_ {m+1}\) | \(x_n\) | \(b\) | ||
---|---|---|---|---|---|---|---|
1 | 0 | \(\cdots\) | 0 | \(a_{1,m+1}\) | $\cdots $ | \(a_{1n}\) | \(b_1\) |
0 | 1 | \(\cdots\) | 0 | \(a_{2,m+1}\) | \(\cdots\) | \(a_{2n}\) | \(b_2\) |
$\vdots $ | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | $\vdots $ | ||
0 | 0 | \(\cdots\) | 1 | \(a_{m,m+1}\) | \(\cdots\) | \(a_{mn}\) | \(b_m\) |
0 | 0 | $ \cdots $ | 0 | \(\sigma_{m+1}\) | $ \cdots$ | \(\sigma_n\) | \(-z_0\) |
- 包含一个单位子矩阵作为基矩阵,它所对应的变量是基变量
- 最后一行称为检验数行,其中基变量的检验数为0
- 最后一列的元素对应当前基变量的取值
- 第 \(m+1\) 行、第 \(n+1\) 列的元素 \(-z_0\) ,表示当前基本可行解对应的目标函数值的相反数
基变换
入基变量:可选取最大的 \(\sigma_j\) 对应的变量作为入基变量
离基变量:设入基变量 \(x_k\),由(1)式计算
-
用 \(x:=y\) 表示命题 \(x\) 定义为等于 \(y\)
-
结合(1)式计算需注意,\(a_{lk}\) 前面符号是减号
\({x_{m}=b_{m}^{\prime}-\sum_{j=m+1}^{n} a_{m j}^{\prime} x_{j}}\)
选取 \(x_l\) 为离基变量。
单纯性法算法步骤
-
确定初始基本可行解,建立初始单纯形表
-
看检验数,若 \(\sigma_j \le 0(j=m+1,..,n)\) 则当前基本可行解就是最优解,算法结束。否则转(3)
-
若存在 \(\sigma_k>0\) 使得其对应的变量 \(x_k\) 的系数列向量 \(P_k\le0\),则线性规划问题的解无界,算法结束。否则转(4)
-
设 \(\max \left(\sigma_{j}>0\right)=\sigma_{k}\),选取 \(x_k\) 为入基变量。计算
\[\boldsymbol{\theta}=\min \left\{\frac{\boldsymbol{b}_{i}}{\boldsymbol{a}_{i k}} | \boldsymbol{a}_{i k}>\boldsymbol{0}\right\} :=\frac{\boldsymbol{b}_{l}}{\boldsymbol{a}_{l k}} \]选取 \(x_l\) 为离基变量。转(5)
-
以 \(a_{lk}\) 为主元旋转。即利用行变换,将第 \(k\) 个系数列向量变换为只有 \(a_{lk}=1\) 其他元素都为 0 的列。