1、第二章 单纯形法,单纯形法(Simplex Method)是著名的美国运筹学家丹茨格于1947年首创的一种求解LP问题的通用有效算法。,第一节 单纯形法的基本思想,本节将通过方程组形式举例说明单纯形法的运用及其基本思想。 1.1 方程组形式的单纯形法 单纯型法的基本思路是:基于LP问题的标准形,先设法找出一个基本可行解,并由此开始逐次施行从一个基本可行解到另一个基本可行解的转换。这种转换不仅易于实现,还能改善(起码是保持)目标函数值。如此下去,直到取得最优值或判明问题无解为止。 下面就范例说明方程组形式的单纯形法及其基本思想。 例1 试用方程组形成的单纯形法求解范例(见书52页) 。,1.2
2、单纯形法的几何意义,第二节 单纯形法的计算过程,2.1 单纯形表 表2-1 初始单纯形表的一般形式,2.2 单纯形法的计算步骤: 下面给出表格形式的单纯型法的计算步骤: 1 把LP问题化成标准形。 2 在系数阵中找出或构造一个m阶排列矩阵作为初始可行基,建立初始单纯形表。 3 如所有检验数 ,就得到一个最优基本解,停止计算;否则转4。 4 在所有 中,只要有一个 所对应的系数列向量 ,即一切 ,则该LP问题无最优解,停止计算;否则转5。,5 按最小检验数规则 确定进基变量 和主列 ;再按最小比值规则 确定主元alk,同时也就确定l行的基变量离基。 6 以alk为主元对当前表格进行一次换基运算,
3、得到一个新单纯形表,返3 其中1,2为预备步骤或第0次迭代;36为迭代步骤。,2.3 单纯形法计算之例 第一节例1就是方程组形式的单纯形法计算之例。下面再用单纯形表的形式重新计算一遍,以便说明单纯形法的计算步骤和单纯形法的使用方法。计算过程如下: (第0次迭代) 1 由前已知范例的标准形,2 取松弛变量x3,x4,x5为基变量,可得到3 阶排列阵(单位阵)为初始基。建立初始单纯形表如下: 表2-2,表2-2检验行的数字是按公式(2-6)、(2-7)算出的。 其余 是基变量的检验数,它们肯定为0。按公式计算(27)也得同样结果。 3 因 ,都小于0,故未得最优解。 4 因 所定义的系数列向量 中
4、都存在正分量,故不是解无界的情况,应继续迭代,(第1次迭代 ) 5 由 确定x2进基;又由 可确定比值6所在行的基变量x4离基;x2列与x4行的交叉处给出主元2。为醒目起见,在表中x2列和x4行都标有箭头,分别表示主列和主行,而且主元2被套上圆圈。 6 按主元2对表22进行一次换基运算,于是得到新单纯形表(见表23),返3。由,3 因 ,故仍未得最优解。 4 因 对应的列向量 中有正分量,故转5继续迭代。 (第二次迭代) 5 此时仅 ,故x1进基;又由 ,可知x5离基;从而得主元3。 6 按主元3对表2-3进行一次换基运算,又得一新表(见表24)。 表24,由于表24中所有的检验数 ,因此已得到最优解 例2 用单纯形法求解下述LP问题,第三节 人工变量法,单纯形法要求先从系数阵中找出一个m阶排列阵,这往往不易做到。 考虑标准形LP问题:,分别给每个约束方程硬行加入一个非负变量, 得到,以 为基变量,可以得到(29)的一个初始基本可行解: 这个解x0完全是人为地加入m个变量 而得到的,因此称为人造基本解, 而把变量 称为人工变量。,下面举例加以具体说明。 例3 用大M法求解下述LP问题:,