利用ling0开发高级模型.docVIP

  1. 1、本文档共23页,可阅读全部内容。
  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文档。上传文档
查看更多
利用ling0开发高级模型

第10章 利用LING0开发高级模型 在这一章里,我们将在不同的领域里建立一些高级模型。其目的有两个:一个是通过对这些高级模型的研究,帮助用户提高建模的技巧;另一个是通过LINGO在生产管理、后勤保障、金融、排队和销售等很多领域的实例来说明LINGO应用的广泛性。 10.1 生产管理模型 在这一节里,我们将开发生产管理领域里的四个模型。下面分别进行详细介绍: 10.1.1 1. 背景 在混合问题中,通常是将两种或多种原材料混合在一起制成一种或多种产品,这种产品要满足一种或多种质量要求。混合问题适用于很多领域,包括决定动物饲料的最佳配比、最低成本的矿石组合以及制造出一种最低成本的特殊合金或决定最有效的广告媒体交易等等。 2. 问题 假设有一家燃料处理工厂,生产两种产品Regular和Premium,并希望能获得最大的收益。这两种产品都是由丁烷(butane)、催化重整油(catalytic reformats)和石脑油(naphtha)混合而成。它们必须在锌烷(octane)、蒸汽压(vapor pressure)和挥发性(volatility)方面满足一定的要求。每一种原材料都是有限的。而且己知原材料的单位成本和产品的最小需要量和最大需要量。 3. 模型 模型10.1 ??? 4. 集合 在这个模型里,我们定义了三个基本集合,即RAWMAT(原材料)、FINGOOD(产品)和QUALMES(质量要素)。 从这三个基本集合可创建三个派生集合。第一个派生集合RXQ是一个密集,它是由原材料集合和质量要素集合相乘而得,用这个派生集合来定义一个属性以表示每一种原材料的质量指标。第二个派生集合QXF是由质量集合和产品集合相乘而得,用这个集合可以计算出产品里的质量指标。第三个派生集合RXF是由原材料集合和产品集合相乘而得,用这个集合可以计算出每一种产品里原材料的含量。 5. 变量 在这个模型里,主要变量是每一种产品里各种原材料的数量(USED)。为了计算上的需要,我们还增加了两个其他的变量。第一个变量是BATCH,它被用于表示每一种产品的批量大小。第二个变量是QSLACK,它被用于表示每一种产品里的各个质量要素离上限值的松弛量。 6. 目标函数 这个模型的目标函数是求总收益达到最大。这可以用下面的表达式计算: [OBJECTIVE]MAX= @SUM(FINGOOD:PRICE*BATCH) @SUM(RAWMAT(R):COST(R)* @SUM(FINGOOD(F):USED(R,F))); 总收益当然是总收入减去总费用。总收入等于每一种产品的单位售价乘上它的批量再求和。可用下面的LINGO语句表达: @SUM(FINGOOD:PRICE%BATCH) 总费用等于每一种原材料的单位价格乘上所用的总数再求和。它可以用下面的表达式计算: @SUM(RAWMAT(R):COST(R){ @SUM(FINGOOD(F):USED(R,F)) 7. 约束 在这个模型里有四种类型的约束,仅仅有两种要计算。第一种要计算的约束是每一种产品的批量。可以用下面的表达式计算: [BATCOMP]BATCH(F)=@SUM(RAWMAT(R):USED(R,F)); 具体说就是:产品F的批量是所有用于产品里的原材料的总和。 第二种要计算的约束是计算每一种产品里的质量指标离质量上限的缺损值。每一种质量指标测定如下: [QRESUP]@SUM(RAWMAT(R): QLEVEL(R,Q)* USED(R,F))+QSLACK(Q,F)=QUP(Q,F)*BATCH(F); 具体地说,实际质量指标加上离上限的缺损值等于质量上限指标。 第三种约束是产品的批量必须在限制的范围内。我们用@BND函数建立这一约束如下: @BND(MINREQ,BATCH,MAXSELL); 注意:虽然我们可以直接输入批量大小限制的约束,但是使用@BND函数限制变量的界限效率更高。 最后一种约束是产品的质量指标必须符合要求。我们使用下面的约束: [QRESDN]QSLACK(Q,F)=(QUP(Q,F)-QLOW(Q,F))$BATCH(F); 具体地说,质量指标的松弛量必须小于等于质量指标的最大量与最小量的差值。否则质量指标一定低于最小限量。松弛量非负的事实确保质量指标不会超过最大限量。 8. 解答 求解模型可得如下结果: BATCH(REGULAR) 4000.000 BATCH(PREMIUM) 4095.238 total profit $44,905 下面列出了产品中各种原材料的实际含量: Raw Material(原材料)

文档评论(0)

157****5685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档