欢迎来到天天文库
浏览记录
ID:41037202
大小:270.00 KB
页数:12页
时间:2019-08-14
《lingo编程学习》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、启航系列之数学建模培训资料专题2:Lingo编程介绍Lingo产品介绍Lindo和Lingo是美国Lindo系统公司开发的一套专门用于求解最优化问题的软件包。Lindo用于求解线性规划和二次规划问题,Lingo除了具有Lindo的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解,等等。Lindo和Lingo软件的最大特色在于可以允许优化模型中的决策变量是整数(即整数规划),而且执行速度很快。 Lingo实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时
2、调用,并提供与其他数据文件(如文本文件、Excel电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题。由于这些特点,Lindo系统公司的线性、非线性和整数规划求解程序已经被全世界数千万的公司用来做最大化利润和最小化成本的分析。应用的范围包含生产线规划、运输、财务金融、投资分配、资本预算、混合排程、库存管理、资源配置等等... Lindo/Lingo软件作为著名的专业优化软件,其功能比较强、计算效果比较好,与那些包含部分优化功能的非专业软件相比,通常具有明显的优势。此外,Lindo/Lin
3、go软件使用起来非常简便,很容易学会,在优化软件(尤其是运行于个人电脑上的优化软件)市场占有很大份额,在国外运筹学类的教科书中也被广泛用做教学软件。Lingo的程序规范1.Lingo能求解的优化模型优化模型连续优化整数规划优化模型二次规划非线性规划编写一个简单的lingo程序例1用Lingo解决一个二次规划问题解:在lingo命令行中输入如下代码,x1+x2<=100;!一个简单例子;max=98*x1+277*X2-x1*x1-0.3*X1*x2-2*X2*x2;x1-2*x2<=0;@gin(x1);@gin(x2
4、);按求解键得到结果如下,Globaloptimalsolutionfound.Objectivevalue:11077.50Extendedsolversteps:0Totalsolveriterations:44VariableValueReducedCostX135.00000-8.500002X265.00000-6.500004在这个例子里要注意如下一些细节:①每一行语句结尾要有分号;②注释行以!号开头,;号结尾③Lingo中的变量不区分字母大小写④系数和变量之间要有运算符相连⑤“max=”或“min=”表示
5、目标函数⑥Lingo的语句顺序并不重要⑦以@开头的语句表示调用Lingo自带的函数,本例中@gin(x1)表示x1为整数⑧Lingo中以默认了所有变量都非负对本例结果的解释:找到全局最优解,使得目标函数值为,对应变量,的值分别为和,对应变量,的影子价格分别为,。所谓的影子价格,就是指对应的变量增加1单位,其他变量无变化时目标函数改变的单位数。1.建立Lingo优化模型需要注意的几个基本问题(1)、尽量使用实数优化模型,尽量减少整数变量和整数约束;(2)、尽量使用光滑优化模型,尽量避免使用非光滑函数。比如应尽量避免使用绝
6、对值函数,符号函数,求最大最小值函数,取整函数等;(3)、尽量使用线性优化模型,尽量减少非线性约束和非线性变量的个数;(4)、合理设定变量的上下界,尽可能给出变量的初始值;(5)、模型中使用的单位的数量级要适当。系数最大数和最小数的绝对值超过1000倍以上会弹出警告信息。2.在Lingo中使用集合4.1集合的基本用法和lingo模型的基本要素Lingo虽然使用方便,但是如果要解决几万个,几十万个变量的优化问题时,我们总不能一个一个地列出x1,x2,…,x1000来解决,而这样的问题在实际企业的应用中也是经常遇到的。好在
7、Lingo中设计了集合语言来表示大规模变量的输入,只需一行文字就可以建立起含有大规模变量的目标函数和成千上万条约束。而Lingo的早期版本软件Lindo却不包含这样的功能。现通过下例来对Lingo的集合、属性概念进行介绍。例2SAILCO公司需要决定决定下四个季度的帆船生产量。下四个季度的帆船需求量分别为40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条帆船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元。假定生产提前
8、期为0,初始库存为10条船。如何安排生产可使总费用最小?分析与解:用DEM、RP、OP、INV分别表示需求量,正常生产的产量,加班生产的产量,库存量。则DEM、RP、OP、INV对每个季度都应有一个对应的值,也就是说他们都应该是一个由4个元素组成的数组,其中DEM已知,而RP,OP,INV未知。现在我们可以写出该问题的模型:此外还
此文档下载收益归作者所有