Posted on 2012-05-01 22:39
lenohoo 阅读(1700)
评论(0) 编辑 收藏 引用
单纯形法,求解线性规划问题的通用方法。单纯形是美国数学家G.B.丹齐克于1947年首先提出来的。它的理论根据是:线性规划问题的可行域是 n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处达到。顶点所对应的可行解称为基本可行解。单纯形法的基本思想是:先找出一个基本可 行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。因基本可行解的个 数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解也可用此法判别。
概述
根据单纯形法的原理,在线性规划问题中,决策变量(控制变量)x1,x2,…x n的值称为一个解,满足所有的
约束条件的解称为可行解。使目标函数达到最大值(或最小值)的可行解称为最优解。这样,一个最优解能在整个由约束条件所确定的可行区域内使目标函数达到最大值(或最小值)。求解线性规划问题的目的就是要找出最优解。 最优解可能出现下列情况之一:①存在着一个最优解;②存在着无穷多个最优解;③不存在最优解,这只在两种情况下发生,即没有可行解或各项约束条件不阻止目标函数的值无限增大(或向负的方向无限增大)。 单纯形法的一般解题步骤可归纳如下:①把线性规划问题的约束方程组表达成典范型方程组,找出基 本可行解作为初始基本可行解。②若基本可行解不存在,即约束条件有矛盾,则问题无解。③若基本可行解存在,从初始基本可行解作为起点,根据最优性条件和可 行性条件,引入非基变量取代某一基变量,找出目标函数值更优的另一基本可行解。④按步骤3进行迭代,直到对应检验数满足最优性条件(这时目标函数值不能再 改善),即得到问题的最优解。⑤若迭代过程中发现问题的目标函数值无界,则终止迭代。 用单纯形法求解线性规划问题所需的迭代次数主要取决于约束条件的个数。现在一般的线性规划问题都是应用单纯形法标准软件在计算机上求解,对于具有106个决策变量和104个约束条件的线性规划问题已能在计算机上解得。
附:1.决策变量:
又称控制变量,设计变量,操作变量等。在描述过程系统的所有变量中,决策变量可以由设计人员按照最能符合系统的目标选择适当的数值,用来描述系统的特性。决策变量的个数称为自由度,自由度不能超过变量的总数和状态方程数目之差,并且决策变量的选择往往受到一定约束条件(热力学,动力学或过程、设备条件)的限制。
内生变量是管理者作决策时的可选项, 因此又被称为模型的决策变量。、
2.约束条件:
运用单纯形法解某些线性规划问题时,该问题已知的并须遵守的前提条件称为约束条件。
约束条件:
a11x1+a12x2+…+a1nxn≤b1
a21x1+a22x2+…+a2nxn≤b2
…………………………
am1x1+am2x2+…+amnxn≤bm
x1,x2,…,xn≥0 式中x1,x2,…,xn为企业生产的各种产品;b1,b2,…,bm为可供使用的各种投入要素的数量;aij(i=1,2…m;j=1,2,… n)为第j种产品每生产1个单位所需要的第i种投入要素的数量;最后,非负值约束条件表示各种产品的产量必须是正值,负值是没有意义的。
改进单纯形法
原单纯形法不是很经济的算法。 1953年美国数学家G.B.丹齐克为了改进单纯形法每次迭代中积累起来的进位误差,提出改进单纯形法。其基本步骤和单纯形法大致相同,主要区别是在逐次 迭代中不再以高斯消元法为基础,而是由旧基阵的逆去直接计算新基阵的逆,再由此确定检验数。这样做可以减少迭代中的累积误差,提高计算精度,同时也减少了 在计算机上的存储量。
对偶单纯形法
(Dual Simplex Method)1954年美国数学家C.莱姆基提出对偶单纯形法。单纯形法是从原始问题的一个可行解通过迭代转到另一个可行解,直到检验数满足最优性条件为止。对偶单纯形法则是从满足对偶可行性条件出发通过迭代逐步搜索原始问题的最优解。在迭代过程中始终保持基解的对偶可行性,而使不可行性逐步消失。设原始问题为min{cx|Ax=b,x≥0},则其对偶问题(Dual Problem)为 max{yb|yA≤c}。当原始问题的一个基解满足最优性条件时,其检验数cBB-1A-c≤0。即知y=cBB-1(称为单纯形算子)为对偶问题的可 行解。所谓满足对偶可行性,即指其检验数满足最优性条件。因此在保持对偶可行性的前提下,一当基解成为可行解时,便也就是最优解。
其他信息
数学优化中,由George Dantzig发明的单纯形法是线性规划问题的数值求解的流行技术。有一个算法与此无关,但名称类似,它是Nelder-Mead法或称下山单纯形法,由Nelder和Mead发现(1965年),这是用于优化多维无约束问题的一种数值方法,属于更一般的搜索算法的类别。 这二者都使用了单纯形的概念,它是N维中的N + 1个顶点的凸包,是一个多胞体:直线上的一个线段,平面上的一个三角形,
三维空间中的一个四面体,等等。