OSDN Git Service

fix title
authorXeonacid <h.dwwwwww@gmail.com>
Wed, 31 Jul 2019 16:09:19 +0000 (00:09 +0800)
committerXeonacid <h.dwwwwww@gmail.com>
Wed, 31 Jul 2019 16:09:19 +0000 (00:09 +0800)
docs/math/simplex.md

index 4a0a26a..21dca27 100644 (file)
@@ -1,10 +1,8 @@
-# 单纯形
-
-## 1. 作用
+## 作用
 
 单纯形法是解决线性规划问题的一个有效的算法。线性规划就是在一组线性约束条件下,求解目标函数最优解的问题。
 
-## 2. 线性规划的一般形式
+## 线性规划的一般形式
 
 在约束条件下,寻找目标函数 $z$ 的最大值:
 
@@ -20,7 +18,7 @@ x_1, x_2 \geq 0
 \end{cases}
 $$
 
-## 3. 线性规划的可行域
+## 线性规划的可行域
 
 满足线性规划问题约束条件的所有点组成的集合就是线性规划的可行域。若可行域有界(以下主要考虑有界可行域),线性规划问题的目标函数最优解必然在可行域的顶点上达到最优。
 
@@ -30,7 +28,7 @@ $$
 
 <center>图1 可行域</center>
 
-## 4. 线性规划的标准形式
+## 线性规划的标准形式
 
 在说明单纯形法的原理之前,需要明白线性规划的标准形式。因为单纯形算法是通过线性规划的标准形来求解的。一般,规定线性规划的标准形式为:
 
@@ -116,9 +114,9 @@ x_1, x_2, x_3, x_4 \geq 0
 \end{cases}
 $$
 
-## 5. 单纯形法
+## 单纯形法
 
-### 5.1 几何意义
+### 几何意义
 
 在标准形中,有 $m$ 个约束条件(不包括非负约束), $n$ 个决策变量,且 $n \geq m$ 。首先选取 $m$ 个基变量 $x_j^{'}(j = 1, 2, \ldots, m )$ ,基变量对应约束系数矩阵的列向量线性无关。通过矩阵的线性变换,基变量可由非基变量表示:
 
@@ -162,7 +160,7 @@ $$
 
 所以,通过选择不同的基变量,可以获得不同的可行域的顶点。
 
-### 5.2 如何判断最优
+### 如何判断最优
 
 如前所述,基变量可由非基变量表示:
 
@@ -180,11 +178,11 @@ $$
 
 当前的目标函数值为 $z_0$ ,其中所有的非基变量值均取 $0$ 。由之前分析可知, $x_j^{'} = 0$ 代表可行域的某个边界,是 $x_j^{'}$ 的最小值。如果可行解逐步离开这个边界, $x_j^{'}$ 会变大,因为 $\sigma_j > 0$ ,显然目标函数的取值也会变大,所以当前解不是最优解。我们需要寻找新的基变量。
 
-### 5.3 如何选择新的基变量
+### 如何选择新的基变量
 
 如果存在多个 $\sigma_j > 0$ ,选择最大的 $\sigma_j > 0$ 对应的变量作为基变量,这表示目标函数随着 $x_j^{'}$ 的增加,增长的最快。
 
-### 5.4 如何选择被替换的基变量
+### 如何选择被替换的基变量
 
 假如我们选择非基变量 $x_s^{'}$ 作为下一轮的基变量,那么被替换基变量 $x_j^{'}$ 在下一轮中作为非基变量,等于 $0$ 。选择 $x_j^{'}$ 的原则:替换后应该尽量使 $x_s^{'}$ 值最大(因为上面已分析过,目标函数会随着 $x_s^{'}$ 的增大而增大)。
 
@@ -204,7 +202,7 @@ $$
 
 显然,应该把 $x_2$ 作为非基变量。
 
-### 5.5 终止条件
+### 终止条件
 
 当目标函数用非基变量的线性组合表示时,所有的系数均不大于 $0$ ,则表示目标函数达到最优。
 
@@ -431,9 +429,9 @@ int main(int argc, char *argv[]) {
 
 ![answer](./images/answer.png)
 
-## 6. 理论罗列
+## 理论罗列
 
-### 6.1 标准型
+### 标准型
 
  $m+n$ 个约束 $n$ 个变量用 $x$ 向量表示, $A$ 是一个 $m\times n$ 的矩阵, $c$ 是一个 $n$ 的向量, $b$ 是一个 $m$ 的向量,最大化 $cx$ 满足约束 $Ax \leq b,x > 0$ 。
 
@@ -459,11 +457,11 @@ $$
 x \geq 0
 $$
 
-### 6.2 转换为标准型
+### 转换为标准型
 
 若目标函数要求取最小值,那么可以对其取相反数变成取最大值。对于限制条件 $f(x_1, x_2, \ldots ,x_n) = b$ ,可以用两个不等式 $f(x_1, x_2, \ldots, x_n) \leq b,-f(x_1,x_2,\ldots,x_n) \leq -b$ 描述,对于限制条件 $f(x_1,x_2,\ldots,x_n) \geq b$ ,可以用不等式 $-f(x_1,x_2,\ldots,x_n) \leq -b$ 描述。对于无限制的变量 $x$ ,可以将其拆为两个非负变量 $x_0,x_1$ ,使得 $x = x_0 - x_1$ 。
 
-### 6.3 松弛型
+### 松弛型
 
 基本变量 $B$ , $|B|=m$ ,一个约束对应一个,表示松弛量,叫做松弛变量(基本变量)
 
@@ -477,12 +475,12 @@ $$
 
 等式左侧为基本变量,右侧为非基本变量。
 
-### 6.4 变量
+### 变量
 
 -   替入变量 $x_e$ (非基变量)
 -   替出变量 $x_l$ (基本变量)
 
-### 6.5 可行解
+### 可行解
 
 -   基本解:所有非基变量设为 $0​$ ,基本变量为右侧的常数
 
@@ -490,17 +488,17 @@ $$
 
 > 注:单纯形法的过程中 B 和 N 不断交换,在 n 维空间中不断走,“相当于不等式上的高斯消元”。
 
-### 6.6 转轴
+### 转轴
 
 选取一个非基本变量 $x_e​$ 为替入变量,基本变量 $x_l​$ 为替出变量,将其互换,为了防止循环,根据 **Bland 规则** ,选择下标最小的变量。
 
 >  **Bland 规则** 可以参看:[最优化方法](https://github.com/AngelKitty/review_the_national_post-graduate_entrance_examination/blob/master/books_and_notes/professional_courses/data_structures_and_algorithms/sources/extra_books/%E6%9C%80%E4%BC%98%E5%8C%96%E6%96%B9%E6%B3%95.pdf)
 
-### 6.7 初始化
+### 初始化
 
 在所有 $b_i < 0$ 的约束中随机选一个作为 $x_l$ ,再随机选一个 $a_{le} < 0$ 作为 $x_e$ ,然后 $pivot(l,e)$ 后 $b_i$ 就变正了。
 
-## 7. 算法实现
+## 算法实现
 
 每个约束定义了 $n$ 维空间中的一个半空间(超平面),交集形成的可行域是一个凸区域称为单纯型。目标函数是一个超平面,最优解在凸区域定点处取得。通过不断的转轴操作,在 $n$ 维凸区域的顶点上不断移动(转轴),使得基本解的目标值不断变大,最终达到最优解。
 
@@ -611,7 +609,7 @@ int main() {
 }
 ```
 
-## 8. 对偶原理
+## 对偶原理
 
 最大化与最小化互换,常数与目标函数互换,改变不等号,变量与约束对应。
 
@@ -651,7 +649,7 @@ p_u, p_v \geq 0
 \end{cases}
 $$
 
-## 9. 全幺模矩阵(Totally Unimodular Matrix)
+## 全幺模矩阵(Totally Unimodular Matrix)
 
  **充分条件:** 
 
@@ -669,11 +667,11 @@ $$
 
 更多详细的解释参看:<https://www.cnblogs.com/ECJTUACM-873284962/p/7097864.html>
 
-## 10. 习题练习
+## 习题练习
 
 -   [UOJ#179. 线性规划](http://uoj.ac/problem/179)
 
-## 11. 参考文献
+## 参考资料
 
 -   [线性规划之单纯形法【超详解 + 图解】](https://www.cnblogs.com/ECJTUACM-873284962/p/7097864.html)
 -   [2016 国家集训队论文](https://github.com/OI-wiki/libs/blob/master/%E9%9B%86%E8%AE%AD%E9%98%9F%E5%8E%86%E5%B9%B4%E8%AE%BA%E6%96%87/%E5%9B%BD%E5%AE%B6%E9%9B%86%E8%AE%AD%E9%98%9F2016%E8%AE%BA%E6%96%87%E9%9B%86.pdf)