水熊虫
水熊虫
不认命,就拼命!
263文章 52分类

运筹规划(一)-运筹规划基础

经过之前的入门,我们来系统的看看运筹规划这门数学科学。
通过我们之前举的例子,我们知道是根据业务问题,列出符合业务需求的方程,然后求解这个方程,然后接下来要介绍的实际上是我们要解决一个问题的时候,往往将现有的问题变化成标准型。然后求解。下面我们就来看看如何转换标准型。

$$ max\ z=\sum_{j=1}^{n} c_{j}x_{j} $$

受限条件

$$ \begin{cases} \begin{align} \sum_{j=1}^{n} a_{ij}x_{j}=b_{i} \\ x >=0 \end{align} \end{cases} $$

标准形式下,$b_i>0$,如果不是,就是等式两边同时乘以-1,当$b_i=0$,表示出现退化,需要单独讨论。

我们可以通过矩阵形式表示。

$$ \begin{cases} \begin{align} max\ z = CX \\ AX=b \\ X>=0 \\ \end{align} \end{cases} $$

A:约束条件 是m*n的矩阵
b:资源向量
C:价值向量
X:决策变量

举个例子

下面我们就来看看如何化简成标准形式。

$$ max\ z=2x_1+3x_2 $$

$$ \begin{cases} \begin{align} x_1+2x_2<=8\\ 4x_1<=16 \\ 4x_2<=12 \\ x_1,x_2>=0 \\ \end{align} \end{cases} $$

变成标准形式

$$ max\ z=2x_1+3x_2+0x_3+0x_4+0x_5 $$

$$ \begin{cases} \begin{align} x_1+2x_2+x_3<=8\\ 4x_1+x_4<=16 \\ 4x_2+x_5<=12 \\ x_1,x_2,x_3,x_4,x_5>=0 \\ \end{align} \end{cases} $$

这里添加松弛变量$x_3,x_4,x_5$,对应的系数为0。这里我们能看到添加的松弛变量都是大于0的,如果我们存在一个变量没有范围这样应该怎么办呢?

$$ min\ z=-x_1+2x_2-3x_3 $$

约束条件为

$$ \begin{cases} \begin{align} x_1+x_2+x_3<=7\\ x_1-x_2+x_3>=2 \\ -3x_1+x_2+2x_3=5 \\ x_1,x_2>=0,x_3无约束 \\ \end{align} \end{cases} $$

变为标准形式的时候,我们使用$x_4-x_5=x_3$.所以标准形式就如下。

$$ max\ z=-x_1-2x_2+3(x_4-x_5)+0x_6+0x_7 $$

$$ \begin{cases} \begin{align} x_1+x_2+(x_4-x_5)+x_6<=7\\ x_1-x_2+(x_4-x_5)-x_7>=2 \\ -3x_1+x_2+2(x_4-x_5)=5 \\ x_1,x_2,x_3,x_4,x_5,x_6,x_7>=0 \\ \end{align} \end{cases} $$

概念

接下来我们来介绍几个概念,方便我们以后来解释一些原理。首先我们来回溯一下基本型。

$$ max\ z=\sum_{j=1}^{n} c_j x_j \tag{1.0} $$

$$ \begin{cases} \begin{align} \sum_{j=1}^{n} a_{ij}x_j=b_i \tag{1.1} \\ x_j>=0\\ \end{align} \tag{1.2} \end{cases} $$

可行解

上述条件的1.1 和 1.2的解 $X=(x_1,x_2,...x_n)^T$,就称为线性规划问题的可行解,如果能够使函数变成最大值,那么就是最优解。

基

我们假设A是约束方程组的约束系数 mn,其秩为m,B是矩阵A的mn阶非奇异子矩阵,就称B是线性规划问题的一个基。且有一个基,就有一个基解。

基可行解

满足1.2的解,就是基可行解

有用的定理

若线性规划存在可行域,那么可行域的

$$ D=\{X|\sum P_{i}X_j=b,x_j>=0\} $$

就是一个凸集合。

如果可行域有界,线性规划问题的目标函数一定可以在其顶点上达到最优。

单纯形法例子

我们这里来举例一个使用单纯形法的例子,过程比较复杂,后面我们也会介绍一下比较通用的描述过程。

$$ max\ z = 2x_{1}+3x_{2}+0x_{3}+0x_{4}+0x_{5} $$

$$ \begin{cases} \begin{align} x_{1}+2x_{2}+x_{3}=8 \\ 4x_{1} + x_{4}=16 \\ 4x_{2}+x_{5}=12 \\ \end{align} \end{cases} $$

约束方程的系数矩阵为

$$ \begin{equation} A=(P_{1},P_{2},P_{3},P_{4},P_{5})= \left( \begin{array}{ccc} 1 & 2 & 1 & 0 & 0\\ 4 & 0 & 0 & 1 & 0\\ 0 & 4 & 0 & 0 & 1\\ \end{array} \right) \end{equation} $$

构成一个基

$$ B=(P_3,P_4,P_5) $$

对应的B的变量$x_{3},x_{4},x_{5}$为基变量,就能的到如下等式。

$$ \begin{cases} \begin{align} x_3=8-x_1-2x_2 \\ x_4=16-x_1 \\ x_5=12-4x_2 \\ \end{align} \tag{1.3} \end{cases} $$

另非基变量$x_1=x_2=0$,多的一个可行解。

$$ X_0=(0,0,8,16,12)^T $$

一般选择系数最大的非基变量$x_2$作为还入变量,将它换入到基变量中,同时还要确定基变量中一个要换出来一个非基变量,可以按照如下的方法确定换出变量。
可以看公式1.3,当把$x_2$作为还入变量的时候,必须要确定一个换出变量,当$x_1=0$的时候,

$$ \begin{cases} \begin{align} x_3=8-2x_2 >=0 \\ x_4=16 >=0 \\ x_5=12-4x_2 >=0\\ \end{align} \tag{1.4} \end{cases} $$

由公式1.4能够看出,

$$ x_2=min(8/2,12/3)=3 $$

当$x_2=3$的时候,基变量$x_5=0$,这就决定我们要使用$x_2$替换$x_5$,为了求得$x_2,x_3,x_4$为基变量的一个基可行解和进一步分析问题,需要将公式1.3改写成如下。

$$ \begin{cases} \begin{align} x_3+2x_2=8-x_1 >=0 \\ x_4=16-4x_1 >=0 \\ 4x_2=12-x_5 >=0\\ \end{align} \tag{1.5} \end{cases} $$

经过变换

$$ \begin{cases} \begin{align} x_3=2-x_1+\frac{1}{2}x_5 >=0 \\ x_4=16-4x_1 >=0 \\ x_2=4-\frac{1}{4}x_5 >=0\\ \end{align} \tag{1.6} \end{cases} $$

目标函数为

$$ Z=9+2x_1-\frac{3}{4}x_5 $$

另$x_1,x_5=0$,就获得另一个可行解

$$ X_1=(0,3,2,16,0) $$

然后经过类似的迭代,直到我们求的最终解。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×