欢迎来到天天文库
浏览记录
ID:18837690
大小:560.00 KB
页数:68页
时间:2018-09-25
《用lingo编程解决运输问题大全》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGOModel–LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。例1.1如何在LINGO中求解如下的LP问
2、题:第68页在模型窗口中输入如下代码:min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;然后点击工具条上的按钮即可。例1.2使用LINGO软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。销地产地B1B2B3B4B5B6B7B8产量A16267425960A24953858255A35219743351A47673927143A52395726541A65522814352销量3537223241324338 第68页使用LINGO软件,编制程序
3、如下:model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/:capacity;vendors/v1..v8/:demand;links(warehouses,vendors):cost,volume;endsets!目标函数;min=@sum(links:cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I):volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(
4、vendors(J):volume(I,J))<=capacity(I));!这里是数据;data:capacity=605551434152;demand=3537223241324338;cost=62674295495385825219743376739271第68页2395726555228143;enddataend然后点击工具条上的按钮即可。为了能够使用LINGO的强大功能,接着第二节的学习。§2LINGO中的集对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、交
5、通工具和雇工等等。LINGO允许把这些相联系的对象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。现在我们将深入介绍如何创建集,并用数据初始化集的属性。学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。2.1为什么使用集集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规模较大的模型。2.2什么是集集是一群相联系的对象,这些对象也称为集的第
6、68页成员。一个集可能是一系列产品、卡车或雇员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属性值可以预先给定,也可以是未知的,有待于LINGO求解。例如,产品集中的每个产品可以有一个价格属性;卡车集中的每辆卡车可以有一个牵引力属性;雇员集中的每位雇员可以有一个薪水属性,也可以有一个生日属性等等。LINGO有两种类型的集:原始集(primitive set)和派生集(derivedset)。一个原始集是由一些最基本的对象组成的。一个派生集是用一个或多个其它集来定义的,也就是说,
7、它的成员来自于其它已存在的集。2.3模型的集部分集部分是LINGO模型的一个可选部分。在LINGO模型中使用集之前,必须在集部分事先定义。集部分以关键字“sets:”开始,以“endsets”结束。一个模型可以没有集部分,或有一个简单的集部分,或有多个集部分。一个集部分可以放置于模型的任何地方,但是一个集及其属性在模型约束中被引用之前必须定义了它们。2.3.1定义原始集为了定义一个原始集,必须详细声明:·集的名字第68页·集的成员[可选]·集成员的属性[可选]定义一个原始集,用下面的语法:setnam
8、e[/member_list/][:attribute_list];sets:warehouses/wh1..wh6/:capacity;vendors/v1..v8/:demand;links(warehouses,vendors):cost,volume;endsets注意:用“[]”表示该部分内容可选。下同,不再赘述。Setname是你选择的来标记集的名字,最好具有较强的可读性。集名字必须严格符合标准命名规则:以拉丁字母或下划线(_)为首字符,其后
此文档下载收益归作者所有