网站大量收购独家精品文档,联系QQ:2885784924

线性规划单纯形法文档..doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性规划单纯形法文档.

线性规划——单纯形法设计文档 ——《通用优化模块》 编写人:徐天爽 编写时间:2010年06月完成 2010年06月整理 目 录 第一部分 功能概述 1 第二部分 理论知识 2 2.1 线性规划标准型 2 2.2 单纯形法 4 2.2.1 修正单纯形法 4 2.2.2 Bland规则 7 第三部分 程序主要内容 9 第四部分 程序测试 10 备 注 17 参考文献 18 第一部分 功能概述 单纯形法是线性规划算法的一种。由于若线性规划问题有最优解,则一定存在一个基本可行解是最优解,因此单纯形法是通过沿着可行集的边界,从一个顶点转移到改善当前目标函数值的相邻定点,以此来寻找最优解。 程序编写了加入Bland规则的修正单纯形法,只需用户给定设计变量个数、约束条件个数、约束条件系数,委托矩阵操作类MatrixOperation进行矩阵运算,即可实现线性规划问题的优化。 第二部分 理论知识 线性规划问题具备以下性质: 定理1 若线性规划问题的可行域非空,则是一个凸集。 定理2 线性规划问题的每一个基本可行解都对应于可行域的一个顶点。 定理3 若线性规划问题有最优解,则一定存在一个基本可行解是最优解。 定理4 若线性规划问题有最优解,则目标函数的最优值一定可以再可行域的某个顶点上达到。 2.1 线性规划标准型 定义1 如果目标函数是设计变量的线性函数,且约束条件也是关于设计变量的线性等式或线性不等式,则相应的数学问题就称为一个线性规划问题。 单纯形法计算问题的最优值需要将原问题统一为标准形式。定义线性规划问题的标准形式为: 定义2 给定线性规划问题的标准型为 其中。即对目标函数一律求最小值;设计变量均非负;约束条件除非负约束条件之外一律为等式约束;约束条件的右端项一律非负。 定义3 如果约束条件中含有不等式且,则可引入一个新的变量,称为松弛变量;如果约束条件中含有不等式且,则可引入一个新的变量,称为剩余变量。 任意线性规划问题,总可以在标准化过程中设法使所得到的标准型线性规划的约束系数矩阵中存在一个阶的单位阵,即 (1)若线性规划的个约束条件都是“”的形式,且右端项都为非负,则在标准化时,每个约束条件的左边都加上一个松弛变量,该松弛变量对应的系数列向量是维的单位向量; (2)若第个约束条件为“”的形式,且右端项为非负,则再改约束条件左端减去剩余变量化成标准形式后,再加上一个非负的新变量,称为人工变量。显然,人工变量的系数列向量也为维的单位向量; (3)若第个约束条件为等式,且右端项为非负,则直接在该等式左端添加人工变量。 例:将一线性规划问题的约束条件化成标准型。 第一个约束条件可化为,即; 第二个约束条件可化为; 第三个约束条件可化为。 此时。显然,向量、和构成了一个3阶的单位阵。为讨论方便,可将标准型线性规划中的变量次序重新调整并编号,使的对应单位阵的编号排在最前或最后(本程序中排在最后)个变量的位置上,这对计算结果无影响。 而在引入人工变量之后,所得到的线性规划的约束条件与原来的约束条件不完全等价,需要对原目标函数进行修正,通常采用两种方法: (1)大法 此方法原理是将目标函数中人工变量前乘以一个足够大的正数,当人工变量取值大于0时,目标函数就不能实现最优。 例:对于线性规划问题,将其化为标准型为,其中和是人工变量,是一个足够大的正数。接下来可用单纯形法进行优化。 (2)两阶段法 由于问题的目标函数有两方面作用:其一是使得人工变量都取0值,从而可得问题的一个可行解;其二是在可行域内找到使目标函数达到最小值的最优解。因此这两种作用也可分为两阶段来完成:第一阶段求解一个目标函数中只包含人工变量的线性规划,由此得到问题的一个可行解;第二个阶段以此基本可行解作为初始基本可行解,应用单纯形法继续求解线性规划问题,从而获得最优解。 由于大法需要给定一个足够大的正数,而在计算机求解时,如何自动给定这个足够大的正数是需要考虑的。同时,当优化问题系数与这个值相对比较接近或者远远小于的时候,将可能导致计算机取值误差。以上两点为大法的缺点,但是相对两阶段法而言,大法更容易编程实现,因此本程序采用大法来处理人工变量。 单纯形法 修正单纯形法 标准单纯形法每次迭代不仅需要存储一个维的矩阵,而且中所有数据都需要计算一遍。当和的数值较大时,将会占用较大的内存空间并浪费很多工作量。事实上,中除了换入列以外的其他列没必要计算。 修正单纯形法每次迭代只计算换入列、常数列和检验数行,从而大大减少了所需的计算机存储量,提高了计算效率。尤其当问题的约束条件数远远小于设计变量个数时,这种优势更为明显。 修正单纯形法步骤如下: Step1:给

文档评论(0)

jiulama + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档