对于只有两变量的线性规划问题,可以用图解法求最优解,其特点是过程清楚、图形清晰。
例4 设有一线性规划问题表达式(包括目标函数、约束条件)如下
fmax=50X1 +40X2
X1+X2≤450 (1)
2 X1+X2≤800 (2)
X1+3 X2≤900 (3)
X1,X2≥0 (4)
以X1,X2为坐标,当式(l)为等式,即X1+X2=450时,在X1 ,X2坐标系,它是一条直线,但式(l)不是等式,而是X1+X2≤450,即在式(1)表示的约束条件中给定的不仅是在直线上的所有点,而是在直线X1+X2= 450左下部一个广大的区域(包括直线在内的阴影线部分),见图1-1,例如X1=0、X2=0,X1=-5、X2=0, X1=3、X2=-3等等,都是满足式(1)的点。
图1-1 某线性规划问题
同理,也可以在X1,X2坐标系中画出式(2)、(3)、(4)所决定的4条直线,连同式(1),共5条直线,如图1-2所示。
由图1-2所示的5条直线所围成的一个凸多边形,就是约束条件给定的区域,其中所有的点都满足约束条件的要求。实际上,它表示一个由凸多边形内无数多个点所组成的集合,称为凸集。那么,怎样从无穷多中求出使目标函数值最大的点呢?
图1-2 某线性规划问题中的约束条件
解 由于目标函数f=50X1+40X2,在f为一定值时也是一条直线,其斜率为-40/50。当f为不同值时,在X1,X2坐标系中实际上是一系列的平行线,则尽管在每一条直线上X1,X2取不同的值,f总是某一定值。例如图1-3中的直线I,当X1=0、 X2=0时;当X1=4、X2=-5时f=0;因此称直线I为f的某一等直线(此处为零)。
图1-3 目标函数f的等值线
由于直线I是等直线,而且斜率相等,它们又是一系列平行线,因此只要画出其中任意的一条线,将它们平移到某个与凸集相交的极限位置,所得的交点就是既满足约束条件(在凸集范围内),又使f值为最大的现代战争最优解。如下图1-4中的点,X1=350,X2=100,f=21500。
图1-4 某线性规划问题的最优解
上面介绍的图解法虽然简单直观,但只有在变量为两个的情况下才能实现;当变量数增多时,图解法就无法满足了。这时,就要用解析计算的方法—单纯形法来求解。单纯形法的基本思路是:根据问题的标准型(等价的把不等式改为等式),从可行域中一个基本可行解(顶点) 开始转换到另一个可行解(顶点)。这种过程叫“迭代”,每迭代一次都使目标函数达到最大值时,问题就得到了最优解。
在实际应用中,即使有了单纯形的解法,仍不能应付复杂情况的求解,如以一个有77个变量,9个约束条件的线性规划问题为例,用单纯形法进行手工计算约需120工作小时,这样大的计算量必须借助于计算机来完成(该题用计算机求解仅需12min)。