如何在lingo中使用集合.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  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文档。上传文档
查看更多
例题1. 在lingo中输入下列线性规划模型,并求解 s.t. , d=0 8 5 9 12 14 12 16 17 22 8 0 9 15 16 8 11 18 14 22 5 9 0 7 9 11 7 12 12 17 9 15 7 0 3 17 10 7 15 15 12 16 9 3 0 8 10 6 15 15 14 8 11 17 8 0 9 14 8 16 12 11 7 10 10 9 0 8 6 11 16 18 12 7 6 14 8 0 11 11 17 14 12 15 15 8 6 11 0 10 22 22 17 15 15 16 11 11 10 0; 分析:这个模型输入的难点,在于变量的数量太多,足足有100个。约束条件也比较多,有没有什么方便的输入方法?下面介绍lingo中集合的建立 新建lingo文件 输入下面内容 model: sets: V/1..10/;!创建集合V; A(V,V):d,x;!创建集合A是V乘V.而d,x是与A同结构的,即d,x分别是10*10矩阵; endsets min=@sum(A(i,j):d(i,j)*x(i,j));!创建目标函数; @sum(V(j):x(1,j))=1; !第一个约束条件; @for(V(j)|j#gt#1: !i#gt#1为逻辑判断语句表示i1是返回真值,但这里不能直接写i1,因为是关系运算符不是逻辑运算符; @sum(V(i):x(i,j))=1;); !利用循环函数表达:当i1(即i从2到10)时,{x(i,j):j=1..10}的和等于1; @for(V(i):x(i,i)=0;); data: d=0 8 5 9 12 14 12 16 17 22 8 0 9 15 16 8 11 18 14 22 5 9 0 7 9 11 7 12 12 17 9 15 7 0 3 17 10 7 15 15 12 16 9 3 0 8 10 6 15 15 14 8 11 17 8 0 9 14 8 16 12 11 7 10 10 9 0 8 6 11 16 18 12 7 6 14 8 0 11 11 17 14 12 15 15 8 6 11 0 10 22 22 17 15 15 16 11 11 10 0; !输入d的数值; enddata end 这个模型如果按照常规输入是什么样子呢? Lingo也提供这样的功能 点lingo菜单 选generate点display model 得到下面的界面(部分截图) 可见,这个规划如果普通输入的话,工作量是很大的,而且容易出错。 运行结果(部分截图) 这个报告很不简洁,因为我们只需要显示x中非零部分,其他信息都不是我们关心的。 有什么办法可以使得报告更简洁? 点lingo菜单,选solution,做如下设置,可以使得报告更加简洁 设置完后结果是 练习1. 求下列线性规划模型 s.t. 为非负实数,(i,j)A 这里V={1,2,3,…,7},. b=49 38 49 44 58 50 47; d=1 2 3 1 2 1 2 2 3 4 1 2 2 3 4 1 1 2 1 5 1 1 2 2 2 3 1 1 2 1 2 3 5 3 1 2 2 2 1 3 2 4 1 1 1 1 2 1 1; 参考答案 model: sets: V/1..7/:b;!创建集合V,而b是与V同结构的; A(V,V):d,x;!创建集合A是V乘V.而d,x是与A同结构的,即d,x分别是10*10矩阵; endsets max=@sum(A(i,j):d(i,j)*x(i,j));!创建目标函数; @for(V(i): @sum(V(j):x(i,j))b(i);); !第一个约束条件; data: b=49 38 49 44 58 50 47; d=1 2 3 1 2 1 2 2 3 4 1 2 2 3 4 1 1 2 1 5 1 1 2 2 2 3 1 1 2 1 2 3 5 3 1 2 2 2 1 3 2 4 1 1 1 1 2 1 1; !输入d的数值; enddat

文档评论(0)

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

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

1亿VIP精品文档

相关文档