最优化课程论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

求解线性规划的单纯形法

摘要:线性规划就是用数学为工具, 来研究一定限制条件下, 如何实现某一线性目标最优化。单纯形法是求解线性规划的主要算法,文章从单纯形法的思想出发,详细论述了单纯形法的主体步骤,并借助单纯形表通过例题加以说明。求解思路是:通过添加人工变量使得标准化后的系数矩阵一定含有单位矩阵, 从而得到一组基变量和初始基本可行解。由于人工变量是人为添加的, 为了不改变原问题, 在目标函数中消去人工变量, 并将人工变量由初始的基变量化成非基变量, 使之取值为零, 然后用普通单纯形法求解。

关键词:线性规划;单纯形法;单纯形表;步骤

1.迭代原理

从一个初始的基本可行解出发,经过判断,如果是最优解,则结束;否则经过基变换得到另一个目标函数值改善的基本可行解,如此一直进行下去,直到找到最优解。2.迭代步骤

第1步:求初始基可行解,列出初始单纯形表。

第2步:最优性检验。

第3步:从一个基本可行解转换到相邻的目标函数值更大的

基本可行解,列出新的单纯形表。

第4步:重复第2、3步,一直到计算结束为止。

2.1确定初始基本可行解

由于可行解是由一个可行基决定的,因此,确定初始基可行解X0 相当于确定一个初始可行基 B0。确定方法:若系数矩阵A中含单位矩阵I,则取B0=I;若A中不含I,则可用人工变量法构造一个I。

2.2 最优性检验

用目标来检验解的优劣。在A中取定一个基矩阵B,则决策向量X可分块为!" ,相应的价格向量C也分块为(CB CN),把这个分块矩阵的形式乘出来,就是 Z=CX=(CB CN) !"=CBXB+CNXN,不妨设B表示A中的前m列,则可记A=(B N),其中N为非基矩阵,约束中的AX=b 可表示为(B N))!" =b,即XB=B-1b-B-1NXN 经整理得 Z=CB(B-1b-B-1NXN)+CNXN,=CBB-1b+(CN-CBB-1N) XN 在这个式子中不难分析出,后边一项XN的系数CN-CBB-1N,当这个向量均为≤0分量时,这时只有当XN取0时,使Z值最大,也就是当XN统统取0时的这个基本可行解是最优的,而当这个系数向量其中有某分量是>0的时候,我们可以分析得到,当前XN统统取0的这个基本可行解不是最优,因此,我们可以用XN的系数向量CN-CBB -1N的符号来判断当前基可行解是不是最优,把这个系数向量叫做检验数向量,记为δ,当δ≤0 时,当前解为最优解。最优性检验的方法:(1)计算每个变量 xj 的检验数δj=Cj-CBB-1Pj,其中Pj 为A中的第j列;(2)若所有δj≤0,则当前解为最优;否则,如果至少有一个δj>0,当前解不是最优,转入第三步。

2.3 寻找更好的基本可行解

由于基本可行解与基对应,即寻找一个新的基可行解,相当于从上一个基B0变换为下一个新的基B1,因此,本步骤也可称为基变换。在基变换的过程中要遵循这样的原则:保证改善目标,再者保证基变换后的解可行。具体变换的方法就是将系数矩阵

A=(P1,P2,……Pi……Pk……Pn)中非基向量部分的某一列和基向量中的某一列互换,而且每次只换一列,在基向量的行列中出去一个进一个,这个基变换的过程就是确定进基出基。具体方法:首先决定进基,令正检验数中最大的那个所对应的 Pk 进基;然后决定出基,令检验比θ i中最小的对应的行 Ps出基,其中θ i= (B-1b)i /(B-1Pk)i,(B-1Pk)i>0,也就是对应分量之比。

在用单纯形法求解线性规划问题之前,有一个预备步骤就是将模型变为标准型,虽然可以由基本的计算求出线性规划问题的最优解,但是为了更加简单、清楚,这个算法的过程我们通过表格的形式来实现,即所谓的单纯形表。

例: 用单纯形法求解下面线性规划问题(以max为例)

maxZ=7X1+12x2

s.t.:

9x1+4x2≤360

4x1+5x2≤200

3x1+10x2≤300

x1,x2≥0

解:化为标准型:

maxZ=7X1+12X2+0X3+0X4+0X5

s.t.:

9x1+4x2+x3=360

4x1+5x2+x4=200

3x1+10x2+x5=300

x1,x2,x3,x4,x5≥ 0

单纯形表:

第一个基是 I,初始表填完后,第一个基本可行解 X=(0, 0,360,200,300) T,这个解是否为最优呢?要计算检验数进行检验。以第一个检验数δ 1为例来加以说明δ 1=C1-CBB-1P1=7-(0,0,0)

(9 4 3 )T =7 同理求出其余几个检验数分别为12、0、0、0。如果检验数的符号均≤0,则当前这个基本可行解最优,否则不是最优。我们看到这张表不是最优,还需继续进行。那么继续进行就需转到第三个步骤基变换,主要是确定进基和出基,确定进基是在正检验数中选择最大的那个,我们这道题是12,这个12所对应的向量是P2,对应的变量x2 就进基,它刚才是非基变量,确定了进基之后,就可以计算检验比θ,就是用 B-1b比上已决定进基的列 B-1P2,也就是每个分量对应之比, 360比4等于 90,200比5等于40,300比10等于30,在检验比中找到最小的一个θ值,也就是30,它所在的这一行相应的最左边的这个x5就是出基变量,进基列和出基行在这个

表上的一个交叉元就是10,这个交叉元用一个括号括起来,这个元就称为主元素,这个元就作为下边迭代计算的一个出发点,简称为主元。怎样由这个主元迭代计算得到下一张单纯形表呢?原则是:首先把这个主元用初等行变换的方法把它消成1,然后拿这个主元还是初等行变换的方法把它所在的列的其余元素消成0,下面我们把下一张表画出来,它的形式和上一张表是一样的,表头不用重画,紧接上一张表,

计算发现仍有一个正检验数3.4,这张表不是最优,仍需进行换基迭代,以交叉元2.5作为主元进行迭代计算得到下一张表

新的一张表的数据计算完毕,得出X=(20,24,84,0,0) T,通过计算表中检验数均≤0,当前表

为最优,所以最优解X*=(20,24,84,0,0)T,Z*=(0,7,12)*

(84 20 24)T=428

3.小结

单纯形法是解线性规划问题的一种有效的方法, 它需要一个已知的基本可行解, 并需把原始线性规划问题化为标准式, 而在一般情况下线性规划问题并无明显的基本可行解, 则需增加人工变量以获得基本可行解, 这样可能增加计算量, 因而需要改进算法;同时, 实际生活中的线性规划问题规模较大, 即变量个数和约束条件都多, 当用计算机进行计算时会占据大量的内存空间, 在迭代过程中, 实际上有很多计算是多余的, 当迭代次数增多时, 累计误差就会增加, 进而会影响计算精度。针对这一问题, 算法也需改进。因此, 单纯形法解线性规划问题的算法仍需更进一步的探究与改良, 这将对解决线性规划问题非常有意单纯形法的提出使得线性规划在理论上已趋向成熟,实际上的应用日益广泛与深入,应用单纯形法解决线性规划问题时要灵活多变,根据实际背景进行分析,以上只以max型为例,当线性规划模型为min型时,有所改变,需要做进一步探讨。

参考文献:

[1] 钱颂迪.运筹学[M].2 版.北京:清华大学出版社,1990.

[2] 牛映武.运筹学[M].西安:西安交通大学出版社,1994.

[3] Duckworth W E,Gear A E,Lockett A G.A guide to operational research[M].3rd ed.London:Chapman and Hall Ltd,1978.

相关文档
最新文档