LINGO入门一
- 格式:ppt
- 大小:198.00 KB
- 文档页数:34
lingo入门教程之一--- 初识lingo lingo对于一些线性或者非线性的规划,优化问题非常有效首先介绍一下,在lingo中运行程序时出现的页面(在工具栏点击类似靶子一样的图标便可运行)Solver status:求解器(求解程序)状态框Model Class:当前模型的类型:LP,QP,ILP,IQP,PILP,PIQP,NLP,INLP,PINLP(以I开头表示IP,以PI开头表示PIP)State:当前解的状态: "Global Optimum", "LocalOptimum", "Feasible", "Infeasible“(不可行), "Unbounded“(无界), "Interrupted“(中断), "Undetermined“(未确定)Object:解的目标函数值Infeasibility:当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束)Iteration:目前为止的迭代次数Extend solverstatus:扩展的求解器(求解程序)状态框Solver type:使用的特殊求解程序:Bestobj :目前为止找到的可行解的最佳目标函数值Objbound:目标函数值的界Steps:特殊求解程序当前运行步数:Active:有效步数Variables(变量数量):变量总数(Total)、非线性变量数(Nonlinear)、整数变量数(Integer)。
Constraints(约束数量):约束总数(Total)、非线性约束个数(Nonlinear)。
Nonzeros(非零系数数量):总数(Total)、非线性项系数个数(Nonlinear)。
GeneratorMemory Used (K) (内存使用量)ElapsedRuntime (hh:mm:ss)(求解花费的时间)运行之后页面介绍(这里的运行界面并不是与上面的运行过程中出现界面一致,即并非来自于同一个程序运行出现)第一行表示在经过457次迭代后得到局部最优解第二行给出该局部最优解的具体值下面给出取局部最优值时,x1 x2的具体取值这里求解的是局部最优解,如果想求出全局最优解,可以进行页面设置:lingo --> option --> global solver --> 勾选use global solver对于运行结果也可以另存为,格式一般为ldt,因为有时候对于求解一个问题,或许需要运行很久才可以得出结果,所以没必要每次为了看结果都运行,而是运行成功一次后便把结果保存下来注意事项LINGO总是根据“MAX=”或“MIN=”寻找目标函数;程序语句的顺序一般不重要,既可以随意调换;程序运用函数时都是以@开头;程序中的变量默认为非负数,想要改变变量类型必须有相应函数调整程序中变量不区分大小写;语句必须以分号结尾;注释以!开始,且注释语句后面必须也有分号,注释默认注释到第一个分号处,意思是分号前面会全部被注释掉。
培训教案——LINGO(一)LINGO是一款常用的线性规划软件,它能够方便地解决复杂问题。
培训LINGO,需要深入了解软件的使用方法和解决实际问题的能力。
下面就LINGO培训的内容进行分点介绍。
一、LINGO的基础知识LINGO的基础知识包括软件的基本功能和操作。
需要讲解LINGO的界面、工具栏、菜单栏等。
初次接触LINGO的学员需要掌握LINGO的一些基本用法,比如如何输入数据、如何设定优化目标,如何设置约束等,这些都是LINGO的基本操作。
二、LINGO求解模型了解LINGO的基本操作之后,需要讲解LINGO的求解模型。
LINGO的数学模型是LINGO软件解决问题必需的部分。
对于LINGO求解模型的学习,需要学员掌握数学模型的建立方法和标准的数学模型。
培训学员掌握LINGO的求解模型知识是LINGO培训的核心。
三、LINGO的高级应用LINGO的高级应用需要讲授如何利用LINGO解决实际问题,需要讲解如何构建多约束模型来描述现实中的问题,如何设置变量、常数和目标函数等。
高级应用的讲授需要结合实例,让学员深入了解LINGO的实际应用场景,提高解决实际问题的能力。
四、LINGO的调试LINGO的调试是LINGO培训的重要组成部分。
在LINGO求解过程中,有时会出现错误,导致模型不能正常求解。
因此,需要讲解LINGO调试的方法和技巧,使得学员具备调试LINGO模型的能力。
五、LINGO应用举例为了让学员进一步巩固LINGO的知识,需要讲解一些LINGO的应用举例。
举例的内容包括:产品组合问题、生产调度问题、财务规划问题、运输规划问题等。
通过这些示例,让学员对LINGO的应用有更加深刻的理解。
六、LINGO的作业练习培训LINGO需要进行实际操作,软件操作的熟练程度可以通过作业考核来体现。
作业练习的难度需要逐渐增加,从简单到复杂地设置模型,巩固培训成果。
LINGO培训需要根据学员的水平进行分类管理,加强培训的个性化和针对性。
Director 12 Lingo编程从入门到高级(QQ:3309637612)第一部分基础篇第一章、Lingo语言介绍1.1 应用场景a. 多媒体光盘b. 课件制作c. 游戏开发d. 辅助教学1.2 与Actionscript 3.0 的比较第二章、编程基础(概念阐述)2.1 变量与常量a. 变量的命名规则b. 变量的数据类型(值类型和引用类型)c. 变量的作用域d. 常量2.4 运算符a. 算术运算符b. 逻辑运算符c. 比较运算符d. 字符串运算2.5 表达式a.子字符串表达式2.6 语句a. 条件语句(if、case)b. 循环语句(while、case)2.7 函数/处理程序a. 系统定义的函数b. 自定义函数c. 函数的调用2.8 列表a. 属性列表b. 线性列表2.9 事件/消息a. 事件的类型2.10 脚本a. 演员脚本b. 影片脚本c. 行为脚本(精灵行为、帧行为)d. 父脚本2.11 行为2.12 属性2.13 lingo中路径的问题第三章、条件语句和循环语句3.1 条件语句a. if 语句、if …else … 语句、 if … else if … else…语句b. case 语句3.2 循环语句a. while 语句b. repeat with 语句c. repeat 循环与exitFrame 循环的区别第四章、事件、消息与脚本4.1 脚本的种类4.2 事件与消息传递事件发生 -> 生成同名的消息 -> 此消息传递出去 -> 被不同对象接收 -> 执行脚本中的处理程序c. 消息的传递次序情况1:影片首次开始播放:prepareMovie -> beginSprite -> prepareFrame -> startMovie情况2:播放任一帧:beginSprite -> prepareFrame -> enterFrame -> exitFrame -> endSprite情况3:影片结束:endSprite -> stopMovied. 消息的接收次序一般情况下为:主事件处理程序 -> 精灵脚本 -> 演员脚本 -> 帧脚本 ->影片脚本e. 事件作用的对象键盘事件:keyDown/keyUp:主事件处理程序、精灵脚本、演员脚本、帧脚本、影片脚本鼠标事件:mouseUp/mouseDown: 主事件处理程序、精灵脚本、演员脚本、帧脚本、影片脚本rightMouseUp/rightMouseDown: 精灵脚本、演员脚本、帧脚本、影片脚本mouseUpOutside/mouseLeave/mouseWithin/mouseEnter: 精灵脚本、演员脚本帧事件: parepareFrame/enterFrame/exitFrame:精灵脚本、演员脚本、帧脚本、影片脚本精灵事件: beginSprite/endSprite:精灵脚本、帧脚本影片事件:prepareMovie/startMovie/stopMovie: 影片脚本timeOut: 主事件处理程序、帧脚本、影片脚本cuePassed/idle: 帧脚本、影片脚本4.3 处理程序a. 主事件处理程序b. 系统定义的处理程序c. 自定义处理程序d. 用处理程序传递数据e. 处理程序放置的地点第五章、线性列表和属性列表5.1 线性列表5.2 属性列表第六章、行为6.1 编写行为6.2 理解me6.3 行为间的通信6.4 调试脚本6.5 行为的本质论述第七章、父脚本与子对象7.1 编写父脚本7.2 生成子对象7.3 案例:下雪效果制作7.4 行为与父脚本论述第二部分高级篇第八章、 Lingo中常用的对象8.1 系统对象 system8.2 回放引擎对象 player8.3 影片中的视窗对象 window8.4 影片对象 movie8.5 演员表对象 castLib8.6 演员对象 member8.7 精灵对象 sprite8.8 精灵通道对象 sprite channel8.9 全局对象 global8.10 键盘对象 key8.11 鼠标对象 mouse8.12 声音对象 sound8.13 时间对象 time8.14 日期对象 date第三部分专题篇第九章、文本演员9.1 语法基础9.2 实例:文本浏览器第十章、图像控制10.1 语法基础10.2 实例:图文混排第十一章、声音控制11.1 语法基础11.2 实例:声音播放器第十二章、视频控制12.1 语法基础12.2 实例:视频播放器第十三章、 Flash演员13.1 语法基础13.2 实例:flash视频播放器13.3 Lingo和Actionscript 3.0 通信第十四章、窗口操作-窗口中的影片(MIAW)14.1 创建、打开、关闭一个MIAW14.2 MIAW外观14.3 MIAW之间的通信14.4 实例:制作不规则窗口第十五章、 director数据库15.1 文本型数据库15.2 列表型数据库15.3 XML数据库15.4 access数据库15.5 sqlite 数据库第四部分插件篇第十六章、常用插件16.1 文件操作插件 fileIO Xtra16.1 网页插件 WebXtra16.2 Photoshop 插件 Photocaster16.3 视频插件 Mpeg Advance Xtra16.4 编程接口插件 Buddyapi xtra第五部分案例篇第十七章、综合案例17.1 汇报类课件制作实例17.2 电子杂志类实例17.3 游戏类实例第六部分番外篇第十八章、课件制作常用技巧18.1 自定义主程序的图标18.2 动态修改影片的尺寸a. 强制全屏b. 等比例缩放c. 强制影片按指定的尺寸显示18.3 不规则窗口的制作第十九章、 Director 反编译与被反编译19.1 论述director 反编译与防反编译19.2 director 反编译工具开发19.3 保护director 作品。
第1讲Lingo软件入门司守奎烟台市,海军航空工程学院数学教研室Email:sishoukui@1 Lingo软件的基本语法1.1 集合集合部分的语法为sets:集合名称1/成员列表1/:属性1_1,属性1_2,…,属性1_n1;集合名称2/成员列表2/:属性2_1,属性2_2,…,属性2_n2;派生集合名称(集合名称1,集合名称2):属性3_1,…,属性3_n3;endsets例26sets:product/A B/;machine/M N/;week/1..2/;allowed(product,machine,week):x;endsets1.2 数据数据部分的语法为data:属性1=数据列表;属性2=数据列表;enddata1.3 计算计算段部分不能含有变量,必须是已知数据的运算。
calc:b=0;a=a+1;endcalc1.4 模型的目标函数和约束条件这里就不具体给出了,下面通过具体例子给出。
1.5 子模型在LINGO 9.0 及更早的版本中,在每个LINGO 模型窗口中只允许有一个优化模型,可以称为主模型(MAIN MODEL)。
在LINGO 10.0 中,每个LINGO 模型窗口中除了主模型外,用户还可以定义子模型(SUBMODEL)。
子模型可以在主模型的计算段中被调用,这就进一步增强了LINGO 的编程能力。
子模型必须包含在主模型之内,即必须位于以“MODEL:”开头、以“END”结束的模块内。
同一个主模型中,允许定义多个子模型,所以每个子模型本身必须命名,其基本语法是:SUBMODEL mymodel:可执行语句(约束+目标函数);ENDSUBMODEL其中mymodel 是该子模型的名字,可执行语句一般是一些约束语句,也可能包含目标函数,但不可以有自身单独的集合段、数据段、初始段和计算段。
也就是说,同一个主模型内的变量都是全局变量,这些变量对主模型和所有子模型同样有效。
如果已经定义了子模型mymodel,则在计算段中可以用语句“@SOLVE( mymodel);”求解这个子模型。
/s/blog_4be86f160100adic.html~type=v5_one&label=rela_nex tarticleLINGO是用来求解线性和非线性优化问题的简易工具。
LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
§1 LINGO快速入门当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO中求解如下的LP问题:在模型窗口中输入如下代码:min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;然后点击工具条上的按钮即可。
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如下表。
使用LINGO软件,编制程序如下: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(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
L i n g o教程(总74页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--LINGO教程LINGO是用来求解线性和非线性优化问题的简易工具。
LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
?§1 LINGO快速入门安装:实验室的所有电脑都已经事先安装好了Lingo 8(或者9, 10,11)。
如果要在自己的电脑上安装这个软件,建议从网上下载一个破解版的,按照提示一步一步地安装完毕。
简单例子:当你在windows系统下开始运行LINGO时,会得到类似于下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都要在该窗口内编码实现。
下面举两个例子。
例 1某工厂在计划期内要安排生产I、II两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示。
产品I产品II设备 1 28台时原材料A 4 016kg原材料B 0 412kg该工厂每生产一件产品I可获利2元,每生产一件产品II可获利3元,问应该如何安排生产计划使该厂获利最多我们用下面的数学模型来描述这个问题。
设x_1、x_2分别表示在计划期内产品I、II的产量。
因为设备的有效台时是8,这是一个限制产量的条件,所以在确定产品I、II的产量时,要考虑不超过设备的有效台时数,即可用不等式表示为x_1 + 2x_2 <=8同理,因原材料A、B的限量,可以得到以下不等式4x_1 <=164x_2 <=12该工厂的目标是在不超过所有资源限量的条件下,如何确定产量x_1、x_2以得到最大的利润。
若用z表示利润,这时z=2x_1+3x_2.综合上述,该计划问题可用数学模型表示为:目标函数 max z=2x_1+3x_2约束条件 x_1 + 2x_2 <=84x_1 <=164x_2 <=12x_1、x_2 >=0一般来说,一个优化模型将由以下三部分组成:1.目标函数(Objective Function):要达到的目标。