单纯形法及应用举例
- 格式:ppt
- 大小:422.50 KB
- 文档页数:22
单纯形法原理及例题
单纯形法原理:
单纯形法是求解线性规划问题的一种数学方法,它是由美国数学家卢克·单纯形于1947年发明的。
用单纯形法求解线性规划的过程,往往利用线性规划的对偶形式,将原问题变换为无约束极大化问题,逐步把极大化问题转换为标准型问题,最后利用单纯形法的搜索方法求解满足所有约束条件的最优解。
例题:
问题:求解最小化目标函数z=2x1+x2的线性规划问题,约束条件如下:
x1+2x2≥3
3x1+x2≥6
x1,x2≥0
解:将上述线性规划问题转换为无约束极大化问题,可得:
极大化问题:
Max z=-2x1-x2
s.t. x1+2x2≤3
3x1+x2≤6
x1,x2≥0
将极大化问题转换为标准型问题,可得:
Max z=-2x1-x2
s.t. x1+2x2+s1=3
3x1+x2+s2=6
x1,x2,s1,s2≥0
运用单纯形法的搜索方法求解:
令x1=0,x2=0,则可得s1=3,s2=6,即(0,0,3,6)是单纯形的初始解;
令z=-2x1-x2=0,代入约束条件,可得x1=3,x2=3,则可得s1=0,s2=0,即(3,3,0,0)是新的单纯形解。
由于s1=s2=0,说明x1=3,x2=3是线性规划问题的最优解,且最小值为z=2*3+3=9。
毕业论文文献综述数学与应用数学单纯形法的综述及其应用一、 前言部分(说明写作的目的,介绍有关概念、综述范围,扼要说明有关主题争论焦点)1.写作目的本文主要在于介绍单纯形法的历史背景,基本计算方法,改进的计算方法,以及单纯形法的应用.目的在于对单纯形法的历史背景,计算方法等进行综述,并总结单纯形法在生活各个领域的应用,单纯形法是求解线性规划问题很有效的方法,通过对单纯形法的进一步了解,最后提出一实际问题利用单纯法进行分析求解.2.有关概念LP 问题的一般形式[1]()1122. Max min n n ob Z c x c x c x =+++L()()()1111221121122222112212..: ,,,0 n n n n m m mn n m n a x a x a x b a x a x a x b s t a x a x a x b x x x +++≤≥⎧⎪+++≤≥⎪⎪⎨⎪+++≤≥⎪⎪≥⎩L L LL L 线性规划问题的标准型为[2]()()()11221111221121122222m112212min a a s.t.a 01,2,,,,,n n n n n n m mn n m j n S c x c x c x S x a x a x b x a x a x b x a x a x b x j n x x x =+++⎧+++=⎪+++=⎪⎪⎨⎪+++=⎪⎪≥=⎩L L L L L L 为目标函数(1)为决策变量 其矩阵形式为min s.t.0S CXAX b X ==⎧⎨≥⎩(2)其中,()12,,,n C c c c =L ,决策向量()()1212,,,,,,,T T n m X x x x b b b b ==L L .A 为约束条件中的系数矩阵, 即111212122212n n m m mm a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦L L M M M M L 本文除了介绍线性规划问题的一般形式、标准形式和矩阵形式以外还列举了一些定义. 定义1[3]:设矩阵A 的秩为m ,矩阵B 是A 中的一个m 阶满秩子方阵,则B 为一个基矩阵.矩阵A 中剩余元素组成的子阵为N ,即[]A BN =.把x 的分量相应地分成两部分,记成B x 和N x ,B x 的分量与B 的列对应,称为基变量;N x 的分量与N 中的列对应,称为非基变量.在约束Ax b =中令所有的非基变量取值为零时,得到解10B N x B b x x -⎡⎤⎡⎤==⎢⎥⎢⎥⎣⎦⎣⎦,称为相应于B 的基本解.定义2[3]:基本解得基变量都取非负值时,即满足10B x B b -=≥的基本解为基本可行解.定义3[4]:满足式(1)各约束条件的解()12,,,T n X x x x =L 称为可行解.全部可行解的集合称为可行域.目标函数1min n j j j Z c x ==∑达到最大值的可行解称为最优解.定义4[4]:设A 为约束方程组1(1,...,)n ij j i j a x b i m ===∑的m n ⨯阶系数矩阵,设(n m >),其秩为m ,B 为矩阵A 中的一个m m ⨯阶的满秩子矩阵,称B 为线性规划问题的一个基.不失一般性,设11111...(,...,)...m m m mm a a B a a αα⎡⎤⎢⎥==⎢⎥⎢⎥⎣⎦M M B 中每一个向量(1,..,)j j m α=称为基向量;与基向量j α对应的变量j x 称为基变量.基变量以外的的变量称为非基变量.定义5[4]:在约束方程组1(1,...,)n ijj i j a x b i m ===∑中,令所有非基变量12...0m m n x x x ++====.此时约束方程组有唯一解()12,,,TB m X x x x =L .将此解加上非基变量取0的值,有()12,,,,0, 0m X x x x =L ,称X 为线性规划问题的基本解.基本解总数不超过m n C 个.3.综述范围通常,求解LP 模型时,常用基本单纯形方法、大M 法、两阶段法等,所以在文献[5-8]具体介绍了求解线性规划的单纯形法的一些计算方法.根据对模型中是否存在单位基矩阵、存在怎么样的基矩阵等特征的判断来选择方法或判断解的存在与否等情况.这就是说,在求解线性规划的单纯形法中,初始基(矩阵)的确定是一个基本问题.通常使用大M 法和两阶段法,通过人工构造,人为地在系数矩阵中形成一个单位矩阵作为初始基,再进行单纯形法的迭代[9].由于越来越多的领域借助于线性规划来做出最优决策,完善线性规划理论及其有效解法已成为重要研究课题.单纯形法作为求解线性规划问题较实用而有效的算法已在实际中得到广泛应用.本文在文献[10-11]简述关于单纯形算法的讨论、优化设计与实现,分析了单纯形算法的主要特点.最后本文例举一些单纯形法在实际问题应用例子来说明单纯形法是处理运筹学模型的一种重要方法.4.主题的争论各种资源的最优配置已成为当今节约型社会的研究热点.它广泛应用于国防、科技、工业、农业、交通运输、环境工程、教育、经济及社会科学等领域,是指在一定的人力、物力、财力等资源条件下,如何合理利用这些资源完成最多任务或得到最大效益的方法.线性规划的资源最优配置是研究在一组线性约束之下,目标线性函数的最小值或最大值问题[3].Dantzig 在1947年提出了求解线性规划问题的单纯形算法.单纯形算法是寻找最优基本可行解的一种行之有效的算法[12].二、主体部分(阐明有关主题的历史背景、现状和发展方向,以及对这些问题的评述)(一)历史背景单纯形法是求解线性规划问题的通用方法.它是是美国数学家G.B.丹齐克于1947年首先提出来的.它的理论根据是:线性规划问题的可行域是n维向量空间Rn中的多面凸集,其最优值如果存在必在该凸集的某顶点处达到.顶点所对应的可行解称为基本可行解.单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行.因基本可行解的个数有限,故经有限次转换必能得出问题的最优解.如果问题无最优解也可用此法判别.(二)现状1.基本定理下面主要介绍一下在单纯形法的综述及其应用中所涉及的一些基本定理.定理1[3]:若式(1)存在有界最优解,则必从基本可行解中得到.定理2[9]:若矩阵A经过有限次初等行(列)变换变换成矩阵B则,A的行(列)向量组与B的行(列)向量组等价,而A的任意k个列(行)向量与B中对应的k个列(行)向量有相同的线性相关性.定理3[4]:若线性规划问题存在可行解,则问题的可行域为凸集.定理4[4]:线性规划问题的基本可行解X对应线性规划问题可行域的顶点.定理5[4]:若线性规划问题有最优解,一定存在一个基本可行解是最有解.2.单纯形法的计算(1)计算步骤单纯形表X列依次标明各方程的基变量;BB C 是基变量相应的价值系数,它们是与基变量相对应的;b 列是约束方程组右端的常数;j c 行是基变量的价值系数;i θ列的数字是在确定换入变量后,按θ规则计算后填入;最后一行称为检验数行,对应各非基变量i x 的检验数是,1,1,2,...,m j i i j i c c a j n =-=∑.现在把单纯性法的的计算步骤归纳如下: 第一步 对于一个已知的可行基12B ,,...,)j j jn p p p =(,写出B 对应的典式以及B 对应的基可行解(0)x ,(0)110200(,,...,)T B m x B b b b b -==第二步 检查检验数,如果所有检验数 0j λ≤ (j=1,2,…,n )则(0)x 便是最优解,计算结束,否则转下一步.第三步 如果有检验数0r λ>,而112(,,...,)0T r r r mr B p b b b -=≤,则问题无最优解,计算结束,否则转下一步.第四步 如果有检验数0r λ>,且12(,,...,)T r r mr b b b 中有正数,则取r x 为进基变量(若有多个正检验数,可任选一个,一般来说选取最大的检验数有利于提高迭代效率),并求最小比值00min i s ir srb b b b ⎧⎫=⎨⎬⎩⎭ 由此来确定js x 为离基变量(若上述最小比值同时在几个比值上达到,则选取其中下标最小的变量为离基变量),然后用r P 代换js p 得新基B ,再接下一步.第五步 求出新基B 的典式(计算或直接通过初等行变换来实现)以及B 对应的基可行解,1(1B 10200B (,,...,)Tm x b b b b -==) 然后,以B 取代B ,(1)x 取代(0)x ,返回第二步[13].(2)单纯形法的进一步讨论人工变量:大M 法和两阶段法为了解线性规划问题 min .0CX s t AX b X ⎧⎨=≥⎩ 需要一个初始基可行解,为此常常借助于大M 法或两阶段法. 大M 法:在一个线性规划问题的约束条件中加入人工变量后,要求人工变量对目标函数取值不受影响,为此假定人工变量在目标函数中的系数为(-M )(M 为任意大的正数),这样目标函数要实现最大化时,必须把人工变量从基变量换出.否则目标函数不可能实现最大化.在许多线性规划问题中,引进松弛变量化成标准形式后,约束条件方程组的系数矩阵并不含m 阶单位矩阵,这样就给单纯形解法的换基迭代带来了困难,为了很快找到第一个可行基,在利用单纯形法求解时,首先要在线性规划问题中引入人工变量,把问题变为约束方程组的系数矩阵中含有单位阵,用以作为人造基,然后再按照单纯形法进行换基迭代,求得最优解或判定无最优解.这种方法就称为两阶段法.第一阶段:不考虑原问题是否存在基可行解;给原线性规划问题加入人工变量,并构造仅含人工变量的目标函数和要求实现最小化.如11111122111211222222m112212min 0...0a a s.t.a ,,...,0n n m nn n n n n n m mn n n m m n m x x x x x a x a x x b x a x a x x b x a x a x x b x x x ω++++++=+++++++++=⎧⎪++++=⎪⎪⎨⎪++++=⎪≥⎪⎩L L L LL 然后用单纯形法求解上述模型,若得到0ω=,这说明原问题存在基可行解,可以进行第二段计算.否则原问题无可行解,应停止计算.第二阶段:将第一阶段计算得到的最终表,除去人工变量.将目标函数行的系数,换原问题的目标函数系数,作为第二阶段计算的初始表.大M 法与两阶段法都是从寻求线性规划问题的一个初始可行基引入的.从形式上看,它们是两种不同的方法,但在本质上是一致.3.单纯形法的算法(1)改进单纯形算法通常使用大M 法和两阶段法,通过人工构造,人为地在系数矩阵中形成一个单位矩阵作为初始基,再进行单纯形法的迭代.这样,往往无意中扰乱了思想主线,增加了计算量.特别对于人工计算显得运算操作繁杂而偏离了主体,在理解和教学中常常带来不便.通过对单纯形法求解法的实质的分析和认识,提出了基于矩阵初等变换初始可行基的获得方法,进而得到基于单纯形法的求解线性规划模型的直接方法使单纯法的运用简单明白.利用这种确定初始可行基的方法求解线性规划问题时,首先,对线性规划模型()2的系数增广矩阵进行上述的初等行变换而得到r r ⨯阶的初始可行基()r m ≤,接着,将所得初始可行基安排入单纯形表,然后,进行单纯形表的表上作业程序.这样做的优点不仅在于可以给出初始可行基()r m =,而且可以方便地发现不独立的约束()r m <,并将其提前剔除,以减少单纯形法的计算量.具体步骤为:步骤 1 对增广矩阵B 施行一系列的初等行变换,并始终保持可行性(即:b 列非负),直到B 中含有单位矩阵;这里需要注意的是当变换到可以使某一行元素全部为0时,说明约束方程组不独立,B 可以降维为()()11m n -⨯+,那么,所得到的单位矩阵也就是()()11m n -⨯+阶的,并非一定要得到B 的m m ⨯阶的单位矩阵作为基.步骤 2 将步骤1的结果安排到一个单纯形表中,并以B 中的单位矩阵的列所相应的变量为基变量而得到初始单纯形表;步骤 3 在步骤2的所得的单纯形表上按照通常的单纯形表上作用法进行求解.需要说明的是,在步骤1中完全可以不用第一类初等行变换(交换任两行的位置),而只用第二、三类初等行变换就可以实现.该方法的优势在于思想清晰,方法简明,计算量减小.有了初始可行基,就可从这个可行基相应的基本可行解出发进行换基迭代,从而,求得目标函数的最优解或判断其无最优解[9].(2)计算机算法利用数学计算工具来解决单纯形法中计算的难题,其应用价值和推广价值是可观的,不仅可以提高计算速度,而且可以大大提高计算的准确性.求解思路:首先把它变为如下(左式) 标准形式:11221111221121122222m112212max a a s.t.a ,,...,2n n n n n n m mn n m n Z c x c x c x x a x a x b x a x a x b x a x a x b x x x =++++++=⎧⎪+++=⎪⎪⎨⎪+++=⎪≥⎪⎩L L L L L 1231112131121222322123...0.........n n n m m m mn m c c c c a a a a b p a a a a b a a a a b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦M M 然后对p 进行标准化, 记[]123...T i i i i mi a a a a a =,如果i a 是只有一个分量为1 的单位向量,那么把p 第一行中的i c 通过矩阵变换, 变成0, 标准化完成..标准化的目的是将第一行中的系数12,,...,n c c c 变为检验数, 其中非基变量系数均为0,基变量的系数则未必为0.接着对p 进行变换, 首先在p 矩阵的第一行第1到第n 个分量中找出一个最大数,如果这个最大数不大于0 ,则不用进行再次迭代,直接得到最终变换矩阵g .反之,用k 记下最大数所对应的列..然后进行判断: 如果p 的第k 列的第2 至第m 个数全都小于或等于0 ,那么此线性规划问题无界,迭代结束.反之, 用p 的最后一列的第2 至第m 个分量分别除以第k 列对应的数,如果碰到除数小于或等于0 则跳过. 在所得结果中找出最小的那个数,用j 记下该数所对应的行.于是得到主元素(,)p j k 接下来是对第j 行进行行变换,将P( j , k) 变为1.然后对其他行进行行变换,使p 矩阵的第k 列的其他分量都变为0 , 于是第一轮变换结束.接下来回到变换过程的开始,重复迭代过程至到跳出迭代过程为止,最后对结果矩阵进行智能分析. 其中需要人工进行的步聚是构造计算矩阵p 和分析迭代结果两步, 以使求解过程比较简便且可靠性高[14].4.单纯形法的应用一个经济、管理问题凡满足一下条件时,才能建立线性规划的模型.(1)要求解问题的目标函数能用数值指标来反映,且为线性函数:(2)存在多种方案及有关数据:(3)要求达到的目的是在一定约束条件下实现的,这些约束条件可用线性等式或不等式来描述.一般满同时足上面几个条件的实际生活中的难解问题都可以用线性规划问题来解决.所以越来越多的领域借助于线性规划来做出最优的决策.单纯形法在实际中的应用最常使用于资源的配置.人力、时间和物质资源的优化配置问题是制定企业生产计划时考虑的重要问题,线性规划模型可以考虑各类资源的变动对其造成的影响并寻求最佳方案.在企业生产和经济管理等领域中,人们常会遇到这样的问题,如何从一切可能的方案中选择最好、最优的方案,在数学上把这类问题称为最优化问题.如何解决这类问题,在当今商品经济的环境下,是一个关系到国计民生的重要问题.线性规划是理论和方法都比较成熟,并具有广泛应用价值的一个运筹学分支.如果一个问题的限制条件可以写成某些决策变量的线性方程组或线性不等式组,目标可以写成决策变量的线性函数,那么这个问题的数学模型就是线性规划问题.线性规划法是研究如何将有限的人力、物力、设备、资金等资源进行最优计划和分配的理论方法.线性规划是企业生产过程中决策制定的理论依据,决策的合理与否直接影响到企业的经济效益,文献[15]介绍了线性规划理论,阐述了线性规划函数中各要素以及各变量的变化对分析造成的影响,通过单纯形法案例进行了计算,针对大型、复杂的模型,需要选择更为有效的手段来进行计算.能源紧缺是人类社会面临的重要问题.现代城市轨道交通系统通过轨道上方的直流接触网供电,因电动车组往往牵引功率巨大,需消耗大量电能,因此,有效利用牵引能源至关重要.单列车牵引策略优化对于节约牵引能耗具有极其重要意义.在文献[16-17]讨论了单纯形优化算法在城市轨道交通列车惰行点搜索方面的应用,列车运行因受多重因素影响,确定必要的惰行起点在实际情况的约束下并不容易.通过分析列车站内运行惰行点搜索特点、约束条件及寻解空间等.详细介绍了二维空间中单纯形法寻找合适列车惰行点的实现过程.借助于单列车仿真系统的帮助,通过问题的寻优结果分析,研究了这种启发式搜索方法在确定惰行点方面的可行性和性能表现.借助于单纯形法在城市勒道交通列车站问运行惰行点搜索方面的应用,在综合考虑运行时间和能量消耗不同要求的情况下,应用该搜索方法得到的惰行点可以为优化列车运行提供满意解.启发式的搜索方法,通过较低的迭代次数,为列车运行的惰行点搜索提供了解决方案.然而,在站间运行时,首先要关注两站之间的距离有没有足够的空间容纳多个惰行点,从而合理选择惰行点数量.从应用角度看,根据整条线路的总运行时间搜索多个站点间的惰行点,会使搜索更复杂.这将在今后进一步研究[16].三、总结部分(将全文主题进行扼要总结,提出自己的见解并对进一步的发展方向做出预测)线性规划是运筹学的一个重要分支,早在20世纪30年代末,前苏联著名的数学家康托洛维奇就提出了线性规划的数学模型,越来越来受到人们的重视.而后于1947 年由美国数学家G. B. Duntzg提出一般线性规划问题的求解方法——单纯形法,它是线性规划问题的通用解法.从而使得线性规划的应用领域更加的广泛.线性规划这一学科也因此开始形成并迅速地发展起来.单纯形方法与经典分析的方法很不相同,它利用了矩阵的初等变换,通过部分枚举的方法来寻求线性规划问题的最优基可行解,从而求得值.由于这种方法运算简单又有规则,且适用性广泛.所以它的应用迅速得到发展,根据它而编制的程序已在一些计算机上开发实现.值得指出的是,尽管单纯形法避开了经典极值问题常用的微分法,但是单纯形法的最优性条件仍可用微分法导出[18].四、参考文献(根据文中参阅和引用的先后次序按序编排)[1]田学民.利用单纯形法解线性规划问题的机理[J].中国科技论文在线,2010.[2]贺学海.单纯形法解决LP问题的研究[J].沈阳师范大学报(自然科学版).2010,28(1):14-16.[3]王东雷.基于单纯算法的优化设计与实现[J].安徽农业科学.2007,35(36):11727-11728.[4]蔡海涛等.运筹学[M].湖南长沙.国防科技大学出版社.2003.[5]张毅.谈两阶段法与大M法的统一处理方法[J].陕西理工学院学报(自然科学版).2009,25(2):85-86.[6]白岩.线性规划中两阶段法德简便计算法[J].长春师范学院学报自然科学版).2005,24(5):1-3.[7]Hamdy A.Taha.运筹学(英文版) [M].北京:人民邮电出版社.2007.[8]拉塞尔C.沃克.数学规划导论(英文版)[M].北京.机械工业出版社.2005.[9]申卯兴,许进.求解线性规划的单纯形法的直接方法[J].华东科技大学.2007,43(30):94-96.[10]高引民,杜晓马.关于单纯形算法的讨论[J].太原机械学院学报.1994,15(1):70-75.[11]陈英霞,朱维钧.关于单纯形算法的两点思考[J].怀化学院学报.2008,11(11):26-27.[12]王东雷,张耀中.一种改进的单纯算法实现及其应用[J].安徽农业科学.2007,35(35):11601-11602.[13]张干宗.线性规划[M].武汉.武汉大学出版社.2004.[14]毕春丽,曾强,王荣文.线性规划问题中单纯形法的计算机求解[J].焦作工学院学报(自然科学版).2002,21(6):472-474.[15]王树祥,武新霞,卜少利.线性规划在企业生产计划中的应用及模型的建立和求解[J].中国电力教育.2007,21:195-197.[16]赵亚辉,朱琴跃.基于单纯形法的城轨列车惰行点搜索[J].同济大学(自然科学版).2010,38(1):81-85.[17]赵亚辉,谢维达.单纯形法在城轨列车惰行点搜索中的应用[J].同济大学(自然科学版).2009,45(14):217-220.[18]毛东明,许风.单纯形法最优性条件的经典证明[J].辽东学刊(自然科学版).1994, 3:12-14.。