lingo经典案例.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  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文档。上传文档
查看更多
lingo经典案例

Lingo超经典案例大全 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”。Lingo超强的优化计算能力在很多方面(线性规划、非线性规划、线性整数规划、非线性整数规划、非线性混合规划、二次规划等)比matlab、maple等强得多,Lingo编程简洁明了,数学模型不用做大的改动(或者不用改动)便可以直接采用Lingo语言编程,十分直观。 Lingo模型由4个段构成: (1)集合段(sets endsets);(2)数据段(data enddata); (3)初始段(init endinit);(4)目标与约束段。 Lingo的五大优点: 1. 对大规模数学规划,LINGO语言所建模型较简洁,语句不多; 2. 模型易于扩展,因为@FOR、@SUM等语句并没有指定循环或求和的上下限,如果在集合定义部分增加集合成员的个数,则循环或求和自然扩展,不需要改动目标函数和约束条件; 3. 数据初始化部分与其它部分语句分开,对同一模型用不同数据来计算时,只需改动数据部分即可,其它语句不变; 4. “集合”是LINGO有特色的概念,它把实际问题中的事物与数学变量及常量联系起来,是实际问题到数学量的抽象,它比C语言中的数组用途更为广泛。 5. 使用了集合以及@FOR、@SUM等集合操作函数以后可以用简洁的语句表达出常见的规划模型中的目标函数和约束条件,即使模型有大量决策变量和大量数据,组成模型的语句并不随之增加. 一、求解线性整数规划、非线性整数规划问题: 1.线性整数规划: model: max=x1+x2; x1+9/14*x2=51/14; -2*x1+x2=1/3; @gin(x1);@gin(x2); end 求得x1=3,x2=1,最大值为4.运用matlab求时可以发现有两组解:x1=3,x2=1和x1=2,x2=2。通过验证也可知这两组解均满足。Lingo的一个缺陷是:每次只能输出最优解中的一个(有时不只一个)。那么,怎样求得其他解呢?一个办法是将求得的解作为约束条件,约束x1不等于3,x2不等于1,再求解。如下: model: max=x1+x2; x1+9/14*x2=51/14; -2*x1+x2=1/3; @gin(x1);@gin(x2); @abs(x1-3)0.001; @abs(x2-1)0.001; end 求得x1=2,x2=2.若再次排除这组解,发现Lingo解不出第三组解了,这时我们可以断定:此优化模型有两组解: x1=3,x2=1和x1=2,x2=2. 求解模型时需注意:Lingo中,默认变量均为非负;输出的解可能是最优解中的一组,要判断、检验是否还有其他解(根据具体问题的解的情况或用排除已知最优解的约束条件法)。 2、非线性整数规划: model: sets: row/1..4/:b; col/1..5/:c1,c2,x; link(row,col):a; endsets data: c1=1,1,3,4,2; c2=-8,-2,-3,-1,-2; a=1 1 1 1 1 1 2 2 1 6 2 1 6 0 0 0 0 1 1 5; b=400,800,200,200; enddata max=@sum(col:c1*x^2+c2*x); @for(row(i):@sum(col(j):a(i,j)*x(j))b(i)); @for(col:@gin(x)); @for(col:@bnd(0,x,99)); End 求得:x1=50,x2=99,x3=0,x4=99,x5=20.最大值为51568。 这里,我们看不出是否还有其他解,需要将已知的最优解排除掉。 利用1的方法分别可得到其他解: x1=48,x2=98,x3=1,x4=98,x5=19.最大值为50330。 x1=45,x2=97,x3=2,x4=97,x5=18.最大值为49037。 x1=43,x2=96,x3=3,x4=96,x5=17.最大值为47859。 x1=40,x2=95,x3=4,x4=95,x5=16.最大值为46636。 ...... 发现x1,x2,x4,x5均单调减少,x3单调增加。最大值越来越小。可以简单判断第一组为最优的。当然,能够一一检验最好。 二、最优选择问题 某钻井队要从10个可供选择的井位中确定5个钻井探油,使总的钻探费用为最小。若10个井位的代号为s1,s2,...,s10,相应的钻探费用c1,c2,...,c10为5,8,10,6,9,5,7,6,10,8.并且井位选择上要满足下列限制条件: (1) 或选择s1和s7,或选择钻探s9; (2) 选择了s3或s4就不能选s5,或反过来也一样;

文档评论(0)

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

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

1亿VIP精品文档

相关文档