最优化问题——线性规划
1、线性规划问题的提出
我们首先从一个例子开始:
某个工厂利用原材料来生成A、B、C三种产品,它们的单位产品所需要的数量和耗费的加工时间各不相同,如下表所示。A、B、C单位产品的利润分别为4、5、7千元,问:应该如何安排生产计划,才能使得获得利润最大?

对于这个问题,我们首先整理一下题目中的变量,目标函数,以及约束条件。
变量:
根据题目的描述,可以知道变量为ABC三种产品的产量,假设用x1,x2,x3来表示。
目标函数:
根据题目的描述可知,我们的目标是希望利润最大,我们用变量来表示利润,最终确定目标函数为:
S=4x1+5x2+7x3
约束条件:
根据题目的描述,可以知道,变量的取值不是任意的,其取值需要满足资源总量和总的工时的约束。所以,根据这两个方面的约束,和变量自身的特性,我们可以确定约束条件为:
2x1+1.5x2+3x3≤100x1+2x2+2x3≤150xi≥0,i=1,2,3
在确定目标,变量和约束条件之后,我们进一步将该问题抽象成一个数学模型,用如下的公式进行描述:
minS=4x1+5x2+7x3
s.t.⎩⎪⎨⎪⎧2x1+1.5x2+3x3≤100x1+2x2+2x3≤150xi≥0,i=1,2,3
总结:
上述形式的问题被称为是一个线性规划问题,对于线性规划模型而言,其有如下几个基本的组成部分。包括
- 一组决策变量,在例子中就是A,B,C的产量x1,x2,x3。
- 一个目标函数,在例子中就是利润S。
- 一组线性的约束条件。
2、线性规划问题的形式
对于线性规划问题而言,我们可以抽象出其一般的形式如下:
上述的式子中,目标函数是一个求最大或者最小值的目标函数,约束条件由多个不等式所组成,进一步,我们将上面的一般形式转换为线性规划问题的标准形式。如下图所示:

在LP的标准形式中,我们将目标函数统一转换为求最小值的形式,对于由不等式所组成的约束条件,我们也统一将其转换为等式的形式。下面,我们来讲述一下这个求解的过程。

在上面的转换过程中,需要着重注意的是松弛变量的引入。同时,对于变量xi,如果其没有有非负的条件约束,就引入ui,vi,同时对ui,vi进行非负数约束。
下面,我们举一个具体例子来计算一下这种转换的过程。

首先,我们对目标函数进行转换的过程,对于目标函数,将其转换成求最小值的过程:
min(−2x1+3x2−x3−3x4)
进一步,对于约束条件,引入松弛变量进行转换有:
2x1−x2+3x3+x4−x5=33x1+2x2+2x4=7−x1+4x2−3x3−x4+x6=6x1,x3,x4,x6,x5≥0,x2无约束
由于x2不存在非负约束,所以引入变量u,v来生成一个新的约束,令x2=u2−v2,综上所述,转换成一个标准的LP形式为:
2x1−u2+v2+3x3+x4−x5=33x1+2u2−2v2+2x4=7−x1+4u2−4v2−3x3−x4+x6=6x1,x3,x4,x5,x6,u2,v2≥0
3、线性规划求解方法
3.1 图解法
对于线性规划问题,最简单的思路就是采用图解法,这种方法简单的来讲就是将各个约束条件画出来,按照不等式的各个约束条件来确定各个变量的可行区域。最终寻找各个可行域之间的交集,最后确定解。
我们下面举一个例子来说明这种方法:

首先,我们可以根据各个约束条件来确定可行域的交集,如下图所示:
根据各个约束条件,我们可以确定最终的可行域就是ABCO组成的四边形。然后,做出关于4x1+3x2=z的等值线,最终可以确定B为极大值点。
例子2:

根据上面的约束条件,我们可以确定变量的可行区域为下图所示:

进一步,我们可以做出4x1+3x2=z的等值线,最终可以发现,在可行区域内不存在最大值。
3.2 图解法总结
- 图解法适合变量比较少的情况,因为能够作图,变量较多,作图很困难。
- 图解法的思想比较简单。
3.3 线性规划问题的求解
通过上面的例子,我们可以总结一下LP问题的解是否存在的特点。

4、参考
1.最优化方法——BIliBIli