Java算法第8.pptVIP

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java算法第8

学习要点 理解线性规划算法模型 掌握解线性规划问题的单纯形算法 理解网络与网络流的基本概念 掌握网络最大流的增广路算法 掌握网络最大流的预流推进算法 掌握网络最小费用流的消圈算法 掌握网络最小费用流的最小费用路算法 掌握网络最小费用流的网络单纯形算法 8.1 线性规划问题和单纯形算法 线性规划问题及其表示 线性规划问题可表示为如下形式: s.t. 变量满足约束条件(8.2)-(8.5)式的一组值称为线性规划问题的一个可行解。 所有可行解构成的集合称为线性规划问题的可行区域。 使目标函数取得极值的可行解称为最优解。 在最优解处目标函数的值称为最优值。 有些情况下可能不存在最优解。 通常有两种情况: (1)根本没有可行解,即给定的约束条件之间是相互排斥的,可行区域为空集; (2)目标函数没有极值,也就是说在n 维空间中的某个方向上,目标函数值可以无限增大,而仍满足约束条件,此时目标函数值无界。 这个问题的解为 (x1,x2,x3,x4) = (0,3.5,4.5,1);最优值为16。 线性规划基本定理 约束条件(8.2)-(8.5)中n个约束以等号满足的可行解称为线性规划问题的基本可行解。 若nm,则基本可行解中至少有n-m个分量为0,也就是说,基本可行解中最多有m个分量非零。 线性规划基本定理:如果线性规划问题有最优解,则必有一基本可行最优解。 上述定理的重要意义在于,它把一个最优化问题转化为一个组合问题,即在(8.2) -(8.5)式的m+n个约束条件中,确定最优解应满足其中哪n个约束条件的问题。 由此可知,只要对各种不同的组合进行测试,并比较每种情况下的目标函数值,直到找到最优解。 Dantzig于1948年提出了线性规划问题的单纯形算法。 单纯形算法的特点是: (1)只对约束条件的若干组合进行测试,测试的每一步都使目标函数的值增加; (2)一般经过不大于m或n次迭代就可求得最优解。 约束标准型线性规划问题的单纯形算法 当线性规划问题中没有不等式约束(8.2)和(8.4)式,而只有等式约束(8.3)和变量非负约束(8.5)时,称该线性规划问题具有标准形式。 为便于讨论,不妨先考察一类更特殊的标准形式线性规划问题。这一类线性规划问题中,每一个等式约束中,至少有一个变量的系数为正,且这个变量只在该约束中出现。 在每一约束方程中选择一个这样的变量,并以它作为变量求解该约束方程。这样选出来的变量称为左端变量或基本变量,其总数为m个。剩下的n-m个变量称为右端变量或非基本变量。 这一类特殊的标准形式线性规划问题称为约束标准型线性规划问题。 虽然约束标准型线性规划问题非常特殊,但是对于理解线性规划问题的单纯形算法是非常重要的。 稍后将看到,任意一个线性规划问题可以转换为约束标准型线性规划问题。 任何约束标准型线性规划问题,只要将所有非基本变量都置为0,从约束方程式中解出满足约束的基本变量的值,可求得一个基本可行解。 单纯形算法的基本思想就是从一个基本可行解出发,进行一系列的基本可行解的变换。 每次变换将一个非基本变量与一个基本变量互调位置,且保持当前的线性规划问题是一个与原问题完全等价的标准线性规划问题。 基本可行解x=(7,0,0,12,0,10)。 单纯形算法的第1步:选出使目标函数增加的非基本变量作为入基变量。 查看单纯形表的第1行(也称之为z行)中标有非基本变量的各列中的值。 选出使目标函数增加的非基本变量作为入基变量。 z行中的正系数非基本变量都满足要求。 在上面单纯形表的z行中只有1列为正,即非基本变量相应的列,其值为3。 选取非基本变量x3作为入基变量。 单纯形算法的第2步:选取离基变量。 在单纯形表中考察由第1步选出的入基变量所相应的列。 在一个基本变量变为负值之前,入基变量可以增到多大。 如果入基变量所在的列与基本变量所在行交叉处的表元素为负数,那么该元素将不受任何限制,相应的基本变量只会越变越大。 如果入基变量所在列的所有元素都是负值,则目标函数无界,已经得到了问题的无界解。 如果选出的列中有一个或多个元素为正数,要弄清是哪个数限制了入基变量值的增加。 受限的增加量可以用入基变量所在列的元素(称为主元素)来除主元素所在行的“常数列”(最左边的列)中元素而得到。所得到数值越小说明受到限制越多。 应该选取受到限制最多的基本变量作为离基变量,才能保证将入基变量与离基变量互调位置后,仍满足约束条件。 上例中,惟一的一个值为正的z行元素是3,它所在列中有2个正元素,即4和3。 min{12/4,10/3}=4,应该选取x4为离基变量; 入基变量x3取值为3。 单纯形算法的第3步:转轴变换。 转轴变换的目的是将入基变量与离基变量互调位置。 给入基变量一个增值,使之成为基本变量; 修改离基变量,让入基变量

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档