版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数学模型与lingo软件,西南交通大学数学系,在LINGO中使用LINDO模型,LINGO的界面,LINGO软件的主窗口(用户界面),所有其他窗口都在这个窗口之内。,模型窗口(Model Window),用于输入LINGO优化模型(即LINGO程序)。,状态行(最左边显示“Ready”,表示 “准备就绪”),当前时间,当前光标的位置,工具栏,File|Open (F3) 打开文件,File|Print (F7) 打印文件,Edit|Copy (Ctrl+C) 复制,Edit|Undo (Ctrl+Z) 取消操作,Edit|Find (Ctrl+F) 查找,LINGO|Solution (Alt
2、+O)显示解答,Edit|Match Parenthesis (Ctrl+P) 匹配括号,LINGO|Options (Ctrl+I) 选项设置,Window|Close All (Alt+X) 关闭所有窗口,Help|Contents (F1) 在线帮助,File|New (F2) 新建文件,File|Save (F4) 保存文件,Edit|Cut (Ctrl+X) 剪切,Edit|Paste (Ctrl+V) 粘贴,Edit|Redo (Ctrl+Y) 恢复操作,Edit | Go To Line (Ctrl+T) 定位某行,LINGO|Solve (Ctrl+S) 求解模型,LINGO|
3、Picture (Ctrl+K) 模型图示,Window|Send to Back (Ctrl+B) 窗口后置,Window|Tile (Alt+T) 平铺窗口,上下文相关的帮助,运行状态窗口,Variables(变量数量): 变量总数(Total)、 非线性变量数(Nonlinear)、 整数变量数(Integer)。,Constraints(约束数量): 约束总数(Total)、 非线性约束个数(Nonlinear)。,Nonzeros(非零系数数量): 总数(Total)、 非线性项系数个数(Nonlinear)。,Generator Memory Used (K) (内存使用量),El
4、apsed Runtime (hh:mm:ss)(求解花费的时间),运行状态窗口,求解器(求解程序)状态框,当前模型的类型 :LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以I开头表示IP,以PI开头表示PIP),当前解的状态 : Global Optimum, Local Optimum, Feasible, Infeasible“(不可行), Unbounded“(无界), Interrupted“(中断), Undetermined“(未确定),解的目标函数值,当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为
5、这个量中没有考虑用上下界命令形式给出的约束),目前为止的迭代次数,运行状态窗口,扩展的求解器(求解程序)状态框,使用的特殊求解程序 : B-and-B (分枝定界算法) Global (全局最优求解程序) Multistart(用多个初始点求解的程序),目前为止找到的可行解的最佳目标函数值,目标函数值的界,特殊求解程序当前运行步数: 分枝数(对B-and-B程序); 子问题数(对Global程序); 初始点数(对Multistart程序),有效步数,LINGO中的集,对实际问题建模的时候,总会遇到一群或多群相联系的对象,比如工厂、消费者群体、交通工具和雇工等等。 LINGO允许把这些相联系的对
6、象聚合成集(sets)。一旦把对象聚合成集,就可以利用集来最大限度的发挥LINGO建模语言的优势。,集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规模较大的模型,集是一群相联系的对象,这些对象也称为集的成员。每个集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性。属性值可以预先给定,也可以是未知的,有待于LINGO求解。,集部分是LINGO模型的一个可选部分。在LINGO模型中使用集之前,必须在集部分事先定义。集部分以关键字“sets:”开始,以“endsets”结束。 一个模
7、型可以没有集部分,或有一个简单的集部分,或有多个集部分。一个集部分可以放置于模型的任何地方,但是一个集及其属性在模型约束中被引用之前必须定义了它们,定义原始集,setname/member_list/:attribute_list;,Setname是你选择的来标记集的名字,最好具有较强的可读性。集名字必须严格符合标准命名规则:以拉丁字母或下划线(_)为首字符,其后由拉丁字母(AZ)、下划线、阿拉伯数字(0,1,9)组成的总长度不超过32个字符的字符串,且不区分大小写。 Member_list是集成员列表。如果集成员放在集定义中,那么对它们可采取显式罗列和隐式罗列两种方式。如果集成员不放在集定义
8、中,那么可以在随后的数据部分定义它们,sets: students/John Jill, Rose Mike/: sex, age; endsets,模型的数据部分,数据部分提供了模型相对静止部分和数据分离的可能性。显然,这对模型的维护和维数的缩放非常便利。 数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定集成员、集的属性。其语法如下: object_list = value_list;,对象列(object_list)包含要指定值的属性名、要设置集成员的集名,用逗号或空格隔开。一个对象列中至多有一个集名,而属性名可以有任意多。如果对象列中有多个属性名,那么
9、它们的类型必须一致。如果对象列中有一个集名,那么对象列中所有的属性的类型就是这个集。,数值列(value_list)包含要分配给对象列中的对象的值,用逗号或空格隔开。注意属性值的个数必须等于集成员的个数。,sets: set1/A,B,C/: X,Y; endsets data: X=1,2,3; Y=4,5,6; enddata,数据部分的未知数值,有时只想为一个集的部分成员的某个属性指定值,而让其余成员的该属性保持未知,以便让LINGO去求出它们的最优值。在数据声明中输入两个相连的逗号表示该位置对应的集成员的属性值未知。两个逗号间可以有空格,sets: years/1.5/: capaci
10、ty; endsets data: capacity = ,34,20,; enddata,属性capacity的第2个和第3个值分别为34和20,其余的未知,模型的初始部分,初始部分是LINGO提供的另一个可选部分。在初始部分中,可以输入初始声明(initialization statement),和数据部分中的数据声明相同。对实际问题的建模时,初始部分并不起到描述模型的作用,在初始部分输入的值仅被LINGO求解器当作初始点来用,并且仅仅对非线性模型有用。和数据部分指定变量的值不同,LINGO求解器可以自由改变初始部分初始化的变量的值。 一个初始部分以“init:”开始,以“endinit”
11、结束。初始部分的初始声明规则和数据部分的数据声明规则相同。也就是说,我们可以在声明的左边同时初始化多个集属性,可以把集属性初始化为一个值,可以用问号实现实时数据处理,还可以用逗号指定未知数值。,init: X, Y = 0, .1; endinit Y=log(X); X2+Y2=1; 好的初始点会减少模型的求解时间。,通过文件输入输出数据,通过文件输入输出数据可以将LINGO程序和程序处理的数据分离开来。 “程序和数据的分离”是结构化程序设计、面向对象编程的基本要求。 实际问题通常需要处理大规模的实际数据,而这些数据通常都是在其它应用系统中生成的,或者已经存放在其它应用系统中的某个文件或数据
12、库中。 LINGO计算的结果需要以文件方式提供给其它应用系统使用。,1. 通过WINDOWS剪贴板传递数据,粘贴命令 ( Edit|Paste ) 特殊粘贴命令(Edit|Paste Special ),粘贴命令 ( Edit|Paste ),将WORD文件或其他外部文件中的数据拷贝到Windows剪贴板 在LINGO程序中直接粘贴到需要的地方,步骤:,注意:,粘贴的数据保持了WORD表格的风格,且LINGO能够正常识别甚至编辑其字体等。 由于LINGO对集合的属性是按列赋值的,所以在外部文件中的数据与实际需要复制的数据可能发生行列颠倒的情况,需进行调整。 类似的方法也可以将LINGO程序中的
13、数据复制到其他外部文件中。,2. 通过文本文件传递数据,通过文本文件输入数据 FILE(filename) 通过文本文件输出数据 TEXT(filename),通过文本文件输入数据,FILE函数通常可以在集合段和数据段使用,但不允许嵌套使用。 调用格式:FILE(filename) filename为存放数据的文件名(可以包含完整的路径名,或表示在当前目录下寻找这个文件) 数据文件中记录之间必须用“”分开,MODEL: SETS: MYSET / FILE(myfile.txt) / : FILE(myfile.txt); ENDSETS MIN = SUM( MYSET( I): SHIP(
14、 I) * COST( I); FOR( MYSET( I): CON1 SHIP( I) NEED( I); CON2 SHIP( I) SUPPLY( I); DATA: COST = FILE(myfile.txt); NEED = FILE(myfile.txt); SUPPLY = FILE(myfile.txt); TEXT(result.txt)=SHIP, DUAL(SHIP), DUAL(CON1); ENDDATA END,myfile.txt文件 的内容、格式: Seattle,Detroit,Chicago,Denver COST,NEED,SUPPLY,SHIP 12
15、,28,15,20 1600,1800,1200,1000 1700,1900,1300,1100,通过文本文件输出数据,TEXT函数通常只在数据段使用 调用格式:TEXT(filename) 它用于数据段中将解答结果送到文本文件filename中, 当省略filename时,结果送到标准的输出设备(通常就是屏幕) Filename可以使用相对路径或绝对路径,若文件已经存在,则覆盖原文件,例:,TEXT(exam0403.txt)=write(4* ,Value,12* ,Dual,13* , Decrease,8* ,Increase,newline(2); TEXT(exam0403.tx
16、t)=write(Variables:,newline(2); TEXT(exam0403.txt)=Ordered,DUAL(Ordered),RANGED(ordered), RANGEU(ordered); TEXT(exam0403.txt)=write(newline(1),NEED Constraints:,newline(2); TEXT(exam0403.txt)=CON1,DUAL(CON1), RANGED(CON1), RANGEU(CON1); TEXT(exam0403.txt)=write(newline(1),SUPPLY Constraints:, newlin
17、e(2); TEXT(exam0403.txt)=CON2,DUAL(CON2), RANGED(CON2), RANGEU(CON2); TEXT(exam0403.txt)=write(newline(1),Final status for exam0403: ,status(), if(status(), (Maybe Not Global Optimal), (Global Optimal),newline(1);,Lingo程序exam0403.LG4(部分) :,输出表头,并换行,输出变量Ordered的最优解、对偶价格、敏感性分析,根据status()的值输出是否全局最优,函数R
18、ANGED, RANGEU输出敏感性分析信息,但LINGO的缺省设置是不进行敏感性分析的,因此,必须进行设置,这个选项在OPTIONS|General Solver,基本集合与派生集合,例 建筑工地的位置(用平面坐标a, b表示,距离单位:公里)及水泥日用量d(吨)下表给出。有两个临时料场位于P (5,1), Q (2, 7),日储量各有20吨。从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多大?,建立模型,记工地的位置为 ,水泥日用量为 ;料场位置为 ,日储量为 ;从料场 向工地 的运送量为 。,使用现有临时料场时,决策变量只有 (非负),所以这是LP模型;当为新建料场选址时决策变量为 和 ,由于目标函数 对 是非线性的,所以在新建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 尘肺病职业史采集与影像学规范化诊断标准
- 主管述职报告(16篇)
- 关于学校述职报告(18篇)
- 保安的转正述职报告(范文3篇)
- 个人述职报告800字(31篇)
- 2026年主管护师能力提升试题及答案
- 2026急救理论竞赛试题及答案
- 建设集团项目施工安全防护设计培训课件
- 2026Fast芯片组在云计算边缘节点的应用报告
- 卸油风险识别与控制措施培训
- 2025年趣味化学实验(家庭安全版)
- 2026年新能源汽车动力电池回收体系构建行业报告
- 弱电系统完工总结报告模板
- 2026年广州市天河区灵秀小学公开招聘编外聘用制专任教师备考题库含答案详解
- 机关食堂运营服务方案
- 水利水电工程生产安全重大事故隐患判定导则(2025版)解读课件
- ICU患者血管活性药物应用
- 王牧犯罪学课件
- 长沙市机动车驾驶培训服务合同(2025年修订)
- 2025年企业财务咨询合同模板
- 物业项目经理培训课件
评论
0/150
提交评论