单纯形法解线性规划初探(停更,高三毕业填坑)

原文地址:戳这里

因为博主不会LaTex所以公式和数学表达就都用图片啦

我们来介绍一种解决线性规划的一般的方法,叫做单纯形法。现在我们在一个简单的例子上模拟一下这个算法:

为了能够执行我们的算法,我们选择了一种非常"数学"的做法:将其转化为一个我们已经知道该如何解决的问题。因为这个问题的格式是严格线性的,所以我们先尝试着将这个问题变成一个线性方程组的格式,呃……或者一系列的这种格式。用这种方式解决线性规划的的具体做法将在下文进行阐述。

为了能够将这种线性规划问题转化为线性方程组解答,我们需要将这些不等式转化为等式。通过引入松弛变量的方式,这个问题就得以解决了,我们为每一个不等式引入一个松弛变量之后,这个线性组合变成了这个样子:

并且,引入一个Z表示目标函数

将这个线性组合移项,使所有变量在一边,常数在另一边

扫描二维码关注公众号,回复: 3686415 查看本文章

新引入的变量x4,x5,x6就是松弛变量,其存在的意义是将原问题转化为一个松弛形式

这种情况下,这个线性组合就可以用矩阵来表示了

其中各矩阵的具体值如下

由此可以得出这个式子的增广矩阵(译者注:类比高斯消元的增广矩阵)

这就是本例的初始单纯形表

现在我们回到这个例子上来

现在这个系统定义了x4,x5,x6,z作为原本的x1,x2,x3的线性组合,我们如此形式的线性表达称为线性规划的字典化表达,并将当前这个称为初始字典(译者菌:感觉好怪啊……有没有更好的说法请在评论区说),这个初始字典中,后来引入的松弛变量x4,x5,x6和目标函数z全部由初始变量x1,x2,x3表达,这种形式下,在等式左边的变量称为基本变量,等式右边的称为非基本变量,集合S为所有基本变量的集合,这个线性组合的一个基本解就是将所有的非基本变量置为0,在这种情况下,我们可以得出:

记录下这个解

这个基本解同时也是可行的,因为所有变量的值都是非负的,我们称其为这个线性组合的一个可行表,并且这个线性规划有解。

一般的,这个线性组合的一个表的形式应该是由x1,x2,x3...x6中的三个变量来表达剩余的三个变量和目标函数z,并且和初始解有着相同的可行域,如同z一样属于"被定义者"的变量(上图等式左边的那几个)被称为基本变量,而剩余的三个变量被称为非基本变量,每一个如此的表都对应这线性组合的一个解,这个解具体的值就是将所有非基本变量置为0时的值。当这样的一个解中所有的值,即向量每一维的坐标值都是非负的数时这个解所对应的点(类比平面直角坐标系中的定义)才处在该线性组合的可行域中,因此这个解被称为基本可行解(BFS)。

单纯形法的大体思路就是将一个可行表转化为另一个可行表(即从一个基本可行解转移到另一个)同时增大目标函数z的值,那么,在当前的情况下,我们要如何才能找到一个新的可行解,并使其对应的z值更大,也就是使z的值相对当前增大?

每一个可行表与且仅与一个可行的点相关联,将表中的非基本变量置为0即可得到这个点(解),这也就是我们如何获取上图中的解的方式。

猜你喜欢

转载自blog.csdn.net/qq_37666409/article/details/82764574