当前位置:文档之家› 线性规划的方法及应用

线性规划的方法及应用

线性规划的方法及应用1 引言运筹学最初是由于第二次世界大战的军事需要而发展起来的,它是一种科学方法,是一种以定量的研究优化问题并寻求其确定解答的方法体系.线性规划(Linear Progromming ,简称LP )是运筹学的一个重要分支,其研究始于20世纪30年代末,许多人把线性规划的发展列为20世纪中期最重要的科学进步之一.1947年美国的数学家丹泽格提出了一般的线性规划数学模型和求解线性规划问题的通用方法――单纯形法,从而使线性规划在理论上趋于成熟.此后随着电子计算机的出现,计算技术发展到一个高阶段,单纯形法步骤可以编成计算机程序,从而使线性规划在实际中的应用日益广泛和深入.目前,从解决工程问题的最优化问题到工业、农业、交通运输、军事国防等部门的计划管理与决策分析,乃至整个国民经济的综合平衡,线性规划都有用武之地,它已成为现代管理科学的重要基础之一.2 线性规划的提出经营管理中如何有效地利用现有人力物力完成更多的任务,或在预定的任务目标下,如何耗用最少的人力物力去实现.这类问题可以用数学语言表达,即先根据问题要达到的目标选取适当的变量,问题的目标通常用变量的函数形式(称为目标函数),对问题的限制条件用有关变量的等式或不等式表达(称为约束条件).当变量连续取值,且目标函数和约束条件为线性时,称这类模型为线性规划的模型.有关对线性规划问题建模、求解和应用的研究构成了运筹学中的线性规划分支.线性规划实际上是:求一组变量的值,在满足一组约束条件下,求得目标函数的最优解.从而线性规划模型的基本结构为: ①变量:变量又叫未知数,它是实际系统的位置因素,也是决策系统中的可控因素,一般称为决策变量,常引用英文字母加下标来表示,如n x x x ,,,21 等.②目标函数:将实际系统的目标用数学形式表示出来,就称为目标函数,线性规划的目标函数是求系统目标的数值,即极大值(如产值极大值,利润极大值)或极小值(如成本极小值,费用极小值等等). ③约束条件:约束条件是指实现系统目标的限制因素.它涉及到企业内部条件和外部环境的各个方面,如原材料供应设备能力、计划指标.产品质量要求和市场销售状态等等,这些因素都对模型的变量起约束作用,故称其为约束条件.约束条件的数学表示有三种,即≤=≥,,,线性规划的变量应为非负值,因为变量在实际问题中所代表的均为实物,所以不能为负.线性规划问题有多种形式,函数有的要求实现最大化,有的要求最小化;约束条件可以是“≤”,也可以是“≥”,还可以是“=”,这种多样性给讨论带来不便. 为了便于讨论其一般解法,我们通常将线性规划问题的约束条件归结为线性方程和一组非负性限制条件,并且对目标函数统一成求最大值,也就是说,将线性规划问题的数学模型化成如下形式,并称它为线性规划问题的标准形式:),,2,1(..max11m i b x at s x c f ij nj ijjnj j ===∑∑==),,2,1(0n j x j =≥任何非标准形式的线性规划问题都能化成上述标准形式,这是由于不等式约束k j nj ijb x a≤∑=1等价于约束条件0,1≥=+++=∑k n k k n nj j ijx b x x a;不等式约束l j nj ijb x a≥∑=1等价于约束条件;0,1≥=-++=∑l n l l n nj j ijx b x x a这里增添的变量k n x +和l n x +称为松弛变量.还有,求函数f 的最小值解可转化为求函数f -的最 大值解.以下讨论线性规划问题时以标准型为主.3 线性规划的解法3.1 图解法满足约束条件的决策变量的一组值叫做这个线性规划的一个可行解;把所有可行解构成的集合叫做这个线性规划的可行域.因此,求解一个线性规划的问题,使目标函数取得最大值或最小值的可行解称为线性规划的最优解.一般求解线性规划问题是讨论它的最优解.下面介绍只有两个决策变量的线性规划问题的图解法.例1 用图解法求解21m axx x f +-=22..21-≥-x x t s2221≤-x x 521≤+x x12,0x x ≥解 第一步 先画出可行域 以21,x x 为坐标轴作直角坐标系,因为0,021≥≥x x ,所以问题的可行解必在第一象限(含坐标轴);约束条件222-≥-x x 要求问题的可行解必在直线222-=-x x 的右下方的半平面上;约束条件2221≤-x x ,要求问题的可行解必在直线2221=-x x 的左上方的半平面上;约束条件521≤+x x ,要求问题的可行解必在直线521=+x x 的左下方的半平面上.因为所有的约束条件都必须同时满足,所以问题的可行解域必为闭区域4321Q Q Q OQ ,如图3.1.1中的阴影部分. 第二步 从可行域中找出最优解现在分析目标函数21x x f +-=,在坐标平面上,它可以看作是以f 为参数的一族平行线:f x x +=12位于同一条直线上的点,都有相同的目标函数值,因而称它为等值线.当f 由小变大时,直线f x x +=12沿其法线方向向左上方移动.当移动到2Q 点时,f 的取值最大,这就得出了本题的最优解,如图3.1.2 ,此时f 最大,得 3411max =+⨯-=f .显然用图解法求解线性规划问题时,简单直观;但是当决策变量多于两个的时候,用图解法就失效了.3.2 单纯形法这一方法是丹泽格在1947年提出的,它以成熟的算法理论和完善的算法及软件统治线性规划近30年.单纯形法是求解线性规划问题的最重要、最基本的方法,它的解题思路[7](p27)是:将线性规划问题化为标准型后,先找出一个单位可行基,对这个可行基给出可行解,然后用判定定理——称为检验数,判定其是否为最优解.若是,求解过程结束;若不是,在单位可行基的基础上,进行换基迭代,该过程叫做迭代,直到得出最优解或证明无最优解为止.它有很强的程序性,它的具体操作是从一张叫做初始表的表格开始的.初始表由四部分构成[7](p27-28):第一部分A A B =-1(B 是单位可行基) 即约束方程组的系数矩阵.第二部分b b B =-1(B 是单位可行基) 即约束方程组的常数项构成的列向量.第三部分是检验数C A CB --1 (B C 为单位可行基变量所对应的目标函数中的系数列向量;C 是目标函数的系数行向量).第四部分b C B 该数为目标函数值.它的表格形式为:例2 用单纯形法求解 2136m axx x f +=40x 23..21≤+x t s 21421≤+x x12,0x x ≥ .解 第一步 将原问题化为标准型 43210036m ax x x x x f +++=40x 23..321=++x x t s214421=++x x x )4,3,2,1(0=≥j x j .第二步 观察原问题是否存在现成的单位可行基 因为约束方程组的系数矩阵为),,,(101401234321p p p p A =⎪⎪⎭⎫⎝⎛= ,所以原问题存在现成的单位可行基()1341001B p p ⎛⎫== ⎪⎝⎭,第三步 列出初始表,计算⎪⎪⎭⎫⎝⎛==-10140123)111A A B ,⎪⎪⎭⎫⎝⎛==-2140)211b b B , 3)1B C 是目标函数中基变量43,x x 的系数构成的列向量⎪⎪⎭⎫⎝⎛00,)0,0,3,6()4111--=-=--C C A B C B ,15)0B C b = ,1346)B x X x ⎛⎫= ⎪⎝⎭ .由上面计算结果,列出初始表(如下表)表3.2.1第四步 判定由初始表知,检验数中含有负数,故可行解Tx )21,40,0,0(=不是最优解,还需 要进行迭代运算(若检验数均为非负数,则可行解即为最优解) 第五步 迭代运算迭代一:①确定主元在检验数中,找出最小负数。

该题最小负数是6-,将6-所在列中各个正数元素与相应的常数列各元素相比,求出421}421,140min{=——称为最小比原则,选4(21a )为主元,并加方括号. ②换基主元4所在行对应的基变量(初始表左端4x 为出基变量;主元4所在列对应的非基变量(初始表最上端)1x 为进基变量.这样将基1B 换为基),(132p p B =.③迭代运算将主元化为1,即将主元所在行(包括约束常数)各元素乘以41,得42141,0,41,1(*);将主元所在列——称为主元列,其他元素(包括检验数及目标函数值)化为0.即把(*) 乘以3-,加到第一行,得49743,1,45,0-(**); 把(*)乘以6加到检验数所在行,得 26323,0,23,0-(***); 将以上三次迭代运算(与矩阵的初等行变换相同)的结果,列表如下 表3.2.2完成第一次迭代后,必须注意仍需01≥-b B ,再观察检验数中是否有负数,若均为负数,则迭代停止,该问题已取得最优解和最优值;若仍有负数,则进行第二次迭代.显然在迭代一中,检验数中有负数,且23-为最小负数,故进行第二次迭代,第二次迭代方法与第一次迭代完全相同.迭代后运算的结果,列表如下 表3.2.3显然在迭代二中,检验数均为非负,故停止迭代,得最优解T x )0,0,5,5(=,最优值10=f . 3.3 对偶单纯形法在上述线性规划问题中,有现成的单位可行基,但在实际求解过程中,经常会遇到没有现成的单位可行基,这就需要对约束方程组经过同解变形,那么变形后,得到的新问题与原问题等价,所以我们通过同解变形,若变出了一个单位可行基,就不必添加人工变量,直接用单纯形求解;若变不出单位可行基,也一定能够变出一个单位基,这就引出了对偶单纯形法的求解问题.下面以具体模型展示对偶单纯形法的基本计算步骤及其理论.例3[7](p65-69)212m inx x f +=,6354..2121121≥≥+≤≥+x x x x x x x t s .解 (1) 化为标准型 543210002'm axx x x x x f +++--=,6354..2152141321≥=-+=+=-+x x x x x x x x x x t s ,显然不存在现成的单位可行基.(2) 确定对偶单位可行基B . 写出它的增广矩阵,并进行初等行变换(同解变形).⎪⎪⎪⎭⎫ ⎝⎛--=610013501001400121A ⎪⎪⎪⎭⎫⎝⎛------−→−610013501001400121,变换出了一个单位基),,(543p p p B =,但B 并不是单位可行基(因为常数列各分量不满足非负数的要求),我们把这样的基B 叫做对偶单位可行基(其中i b 不全为非负数)(3) 计算1) A A B =-1=⎪⎪⎪⎭⎫ ⎝⎛----100130100100121,2)()Tb b B 6,5,41--==-,3)0=B C , 4) 0=b C B ,5)()0,0,0,2,11=-=--C C A B C B ,6)()TB x x x X 543,,=.(4) 列出初始表并进行迭代运算.在该迭代过程中,确定主元时要运用最大比原则(因为该方法是在检验数非负的条件下进行的)逐次迭代,使0≥i b ,当每一个i b 都大于或等于0时,得问题的最优解,见下表表3.3.1显然在上表中常数列存在非负数,所以进行第一次迭代,通过确定主元、换基、迭代运算,得下表: 表3.3.2进行一次迭代后,常数列仍有负值存在,所以进行第二次迭代.同样通过确定主元、换基、迭代运算,得下表:表3.3.3在迭代二中,所有的0≥i b ,则停止迭代,得最优解Tx )0,5,0,5,5(=,最优值 4=f . 3.4 软件法解线性规划问题还可以用软件来做,下面介绍用MATLAB 软件求解线性规划问题。

相关主题