Lingo教案

合集下载

LINGO应用教程

LINGO应用教程

第十章 LINGOLingo 软件是求解线性规划、非线性规划的数学软件,也可用于一些线性和非线性方程组的求解等。

Lingo 实际上也是最优化问题的一种建模语言,包括许多常用的数学函数供使用者建立优化模型时调用,并可以接受与其他数据文件交换数据。

第一节 LINGO 软件的基本使用方法1.1 LINGO 使用入门在windows 操作系统下启动LINGO 后,将进入LINGO 集成环境,包括主框架窗口和模型窗口两部分。

主框架窗口集成了菜单和命令按钮,模型窗口用于输入模型。

例1 求解数学模型12121212max 23..4310351200x x s t x x x x x x ++≤+≤≥≥解:在模型窗口输入LINGO 求解模型如下:输入模型后选择菜单LINGO|Solve 或者按工具栏的,LINGO开始编译模型,如有语法错误将返回一个错误的消息并指明错误出现的位置;如果通过编译,LINGO将激活Solver运算器寻求模型的最优解,首先出现Solver Status状态窗口显示模型求解的运算状态信息:状态窗口显示的信息含义如下:“Global optimal solution found”表示得到全局最优解。

“Objective value: 7.454545”表示最优目标值为7.454545。

“Total solver iterations:2” 表示迭代2次得到结果。

“V alue”给出最优解中各变量的值:x1=1.272727,x2=1.636364。

Reduced Cost 值列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率。

其中基变量的reduced cost值应为0,对于非基变量xj,相应的reduced cost值表示当某个变量xj 增加一个单位时目标函数减少的量( max型问题)。

本例中此值均为0。

SLACK OR SURPLUS值给出约束条件的松驰变量或剩余变量的值。

Lingo课件-介绍与简单程序

Lingo课件-介绍与简单程序

IF函数应Байду номын сангаас实例1
我们生产两种产品X和Y,我们想总共的成本最小 . 约 束条件是,两种产品的数量和要大于30,产品X的成本
是2,固定费用是 100 (生产这种产品时,起步费用),
产品Y的成本是3,固定成本是60.
实例程序
MIN = COST; COST = XCOST + YCOST; XCOST = @IF( X #GT# 0, 100, 0) + 2 * X; YCOST = @IF( Y #GT# 0, 60, 0) + 3 * Y;
1.
Lingo介绍
LINGO是一种专门用于求解最优化模型的软件. 由于
LINGO软件包执行速度快,易于输入、修改、求解和 分析数学规划(优化问题),因此在教育、科研和工
业界得到广泛应用. LINGO主要用于求线性规划、非线
性规划、二次规划、整数规划和动态规划问题,也可 用于一些线性和非线性方程组的求解以及代数方程求
runtime
1.3工具栏
2. 简单程序
LINGO系统与C语言、Maple软件不同,在LINGO 系统下变量与内部函数不区分大小写, 变量student与变 量Student, 函数@file 与@FILE认为相同,一般情况下, 系统会自动将变量全部转化为大写. 1)变量要求
在LINGO中创建变量名必须字母开头,由字母、数 字或下划线“_”组成的字符序列, 变量有效长度为32 个字符.
Solve求解实例
例1 Min f=x1-2*x2+x3; s.t.x1+x2-2*x2+x4=10; 2*x1-x2+4*x3<=8; -x1+2*x2-4*x3<=4; x1>0;x2>0;x3>0;x4>0;

Lingo软件学习

Lingo软件学习

算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符: ^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减 LINGO唯一的一元算术运算符是取反函数“﹣”
LINGO具有9种逻辑运算符: #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase #lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase #le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true
Lingo以Model:开头,以end结束,这两个语句单独成行
补充:关于与Excel中数据的链接
先将Excel中的数据复制到剪切板上,然后将光标置于要插入 数据的部位,再在lingo编辑菜单中选择选择性粘贴(Paste Special),注意粘贴与粘贴链接的区别!
四、Lingo中部分函数介绍
LINGO中的函数有基本元算符,数学函数,金融函数,变 量限定函数等,全部函数请参照Edit|paste funtion。
对例一结果的相关说明
例一运行后得到如下结果:
Global optimal solution found. Objective value: Total solver iterations: Variable X1 X2 Value 250.0000 100.0000 800.0000 2 Reduced Cost 0.000000 0.000000

Lingo解目标规划

Lingo解目标规划

不考虑目标,运输问题的数学模型为:
设xij 表示从第i个产地向第j个销地的运量。则: min z cij xij
i 1 j 1 3 4
x
j 1 3
4
ij
ai , i 1,2,3 b j , j 1,2,3,4
x
i 1
ij
xij 0
Lingo代码:
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=@sum(links(i,j):c(i,j)*x(i,j)); @for(cd(i):@sum(xd(j):x(i,j))<=a(i)); @for(xd(j):@sum(cd(i):x(i,j))>=b(j));
整数线性规划一般形式:
max(min) z c j x j
j 1
n
( a )
n (b) aij x j ( , )bi j 1 (c ) xj 0 x , x , , x 中部分或全部取整数 ( d ) n 1 2
Lingo代码
min=d31; 2*x1+x2<=11; x1-x2+d11-d12=0; x1+2*x2+d21-d22=10; 8*x1+10*x2+d31-d32=56; d12=0; d21+d22=0;
例2:
min z p1d1 p2 d 2 p3 (2d 3 d 4 )
5 11

第三讲 lingo入门

第三讲  lingo入门
Lingo优化软件入门
(商用版) 舒兴明
一、Lindo/Lingo软件简介 1、美国芝加哥大学的Linus Schrage教授于1980年 前后开发的专门用于求解最优化问题的软件包,后经 多年完善与扩充,并成立了LINDO系统公司进行商 业运作取得巨大成功。根据 LINGO公司主页 ()提供的信息,位列《财富》 杂志500强的企业中,有一半以上使用Lingo优化软 件,前25强有23企业使用Lingo优化软件。用户可以 在 主页自由下载各类子包的演示版和应用 例子。演 示版和正式版功能类似,只是求解问题规模受到限制。 各类版本的限制如下表
Global optimal solution found at iteration: 6 Objective value: 244.0000
Variable X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34 Value 4.000000 0.000000 12.00000 0.000000 4.000000 0.000000 0.000000 6.000000 0.000000 14.00000 0.000000 8.000000 Reduced Cost 0.000000 2.000000 0.000000 0.000000 0.000000 2.000000 1.000000 0.000000 9.000000 0.000000 12.00000 0.000000
Slack or Surplus Dual Price 0.000000 6.500069 95.00000 0.000000 11077.50 1.000000
得到最优解迭代次数为364次,目标值为11077.5,其 中x1=35,x2=65,其余的解读后面再给出。

LINGO教程

LINGO教程
INV ( I ) INV ( I 1) RP( I ) OP( I ) DEM ( I ), I 1,2,3,4
INV (0) 10
MIN
I 1, 2, 3, 4
{400 RP(I ) 450OP(I ) 20 INV (I )}
加上变量的非负约束
26
LINGO 教 程
用DEM,RP,OP,INV分别表示需求量、正常生产的产量、 加班生产的产量、库存量,则DEM,RP,OP,INV对每个 季度都应该有一个对应的值,也就说他们都应该是一 个由4个元素组成的数组,其中DEM是已知的,而 25RP,OP,INV是未知数。
LINGO 教 程
问题的模型(可以看出是LP模型 ) 目标函数是所有费用的和 约束条件主要有两个: 1)能力限制: RP ( I ) 40, I 1,2,3,4 2)产品数量的平衡方程:
23
LINGO 教 程
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
2.在LINGO中使用集合 4. LINGO的主要菜单命令 5. LINGO命令窗口 6.习题
24
LINGO 教 程
集合的基本用法和LINGO模型的基本要素
例 SAILCO公司需要决定下四个季度的帆船生产量。下 理解LINGO建模语言最重要的是理解集合(Set)及其 四个季度的帆船需求量分别是40条,60条,75条,25条, 属性(Attribute)的概念。 这些需求必须按时满足。每个季度正常的生产能力是40 条帆船,每条船的生产费用为400美元。如果加班生产, 每条船的生产费用为450美元。每个季度末,每条船的 库存费用为20美元。假定生产提前期为0,初始库存为 10条船。如何安排生产可使总费用最小?

第2章 LINGO软件使用简介与技巧

第2章 LINGO 软件使用简介与技巧LINGO 是一种专门用于求解数学规划问题的软件包.由于LINGO 执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用. LINGO 主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等.本章介绍的LINGO 可在LINGO5.0,LINGO8.0,LINGO9.0中使用.一.LINGO 使用介绍1.1 LINGO 编写格式LINGO 模型以MODEL 开始,以END 结束.中间为语句,分为四大部分(SECTION ): (1) 集合部分(SETS ):这部分以“SETS :”开始,以“ENDSETS ”结束.这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C 语言在在程序的第一部分定义变量和数组一样.在LINGO 中称为集合(SET )及其元素(MEMBER 或ELEMENT ,类似于数组的下标)和属性(A TTRIBUTE ,类似于数组).LINGO 中的集合有两类:一类是原始集合(PRIMITIVE SETS ),其定义的格式为:SETNAME/member list(or 1..n)/:attribute,attribute,etc. 另一类是导出集合(DERIVED SETS ),即引用其它集合定义的集合,其定义的格式为:SETNAME (set1,set2,etc.):attribute ,attribute ,etc.如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分.(2) 目标与约束:这部分定义了目标函数、约束条件等.一般要用到LINGO 的内部函数,可在后面的具体应用中体会其功能与用法.求解优化问题时,该部分是必须的. (3) 数据部分(DA TA ):这部分以“DA TA :”开始,以“END DA TA ”结束.其作用在于对集合的属性(数组)输入必要的数值.格式为:attribut=value_list.该部分主要是方便数据的输入. (4) 初始化部分(INIT ):这部分以“INIT :”开始,以“END INIT ”结束.作用在于对集合的属性(数组)定义初值.格式为:attribute=value_list.由于非线性规划求解时,通常得到的是局部最优解,而局部最优解受输入的初值影响.通常可改变初值来得到不同的解,从而发现更好的解.编写LINGO 程序要注意的几点:(1) 所有的语句除SETS 、ENDSETS 、DA TA 、ENDDA TA 、INIT 、ENDINIT 和MODEL ,END 之外必须以一个分号“;”结尾.(2) LINGO 求解非线性规划时已约定各变量非负.1.2 LINGO 内部函数使用详解.LINGO 建立优化模型时可以引用大量的内部函数,这些函数以“@”符号打头. (1)常用数学函数@ABS(X) 返回变量X 的绝对数值. @COS( X)返回X 的余弦值,X 的单位为弧度 @EXP( X)返回e x 的值,其中e 为自然对数的底,即 71828.2 @FLOOR( X)向0靠近返回X的整数部分.如@FLOOR(3.7),则返回3;@FLOOR(-3.7),则返回-3.@LGM( X)返回Γ函数的自然对数值.@LOG( X)返回变量X的自然对数值.@SIGN( X)返回变量X的符号值,当X<0时为-1;当X>0时为1.@SIN( X)返回X的正弦值,X的单位为弧度@SMAX( X1, X2,..., XN)返回一列值X1, X2,..., XN的最大值.@SMIN( X1, X2,..., XN)返回一列值X1, X2,..., XN的最小值.@TAN( X)返回X的正切值,X的单位为弧度(2)集合函数集合函数的用法如下:set_operator (set_name|condition:expression)其中set_operator部分是集合函数名(见下),set_name是数据集合名,expression部分是表达式,|condition部分是条件,用逻辑表达式描述(无条件时可省略).逻辑表达式中可以三种逻辑算符(#AND#(与),#OR#(或),#NOT#(非))和六种关系算符(#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于)).常见的集合函数如下:@FOR (set_name:constraint_expressions)对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constraint_expressions)描述.@MAX(set_name:expression)返回集合上的表达式(expression)的最大值.@MIN(set_name:expression)返回集合上的表达式(expression)的最小值.@SUM(set_name:expression)返回集合上的表达式(expression)的和.@SIZE(set_name)返回数据集set_name中包含元素的个数.@IN(set_name,set_element)如果数据集set_name中包含元素set_element则返回1,否则返回0.(3)变量界定函数变量函数对变量的取值范围附加限制,共有四种.@BND(L,X,U)限制L≤X≤U@BIN(X)限制X为0或1.@FREE(X)取消对X的符号限制(即可取任意实数值).@GIN(X)限制X为整数值.二、LINGO 求解优化模型实验1.某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下:设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员?从第一班开始排,试建立线性模型.分析与求解:注意在每一时间段里上班的司机和乘务人员中,既包括在该时间段内开始时报到的人员,还包括在上一时间段工作的人员.因为每一时间段只有四个小时,而每个司乘人员却要连续工作八个小时.因此每班的人员应理解为该班次相应时间段开始时报到的人员.设i x 为第i 班应报到的人员(i =1,2,…,6),则应配备人员总数为:∑==61i ixZ按所需人数最少的要求,可得到线性模型如下:==61min i i x Z161223344556112660706050..203060,,,0x x x x x x x x s t x x x x x x x x +≥⎧⎪+≥⎪⎪+≥⎪+≥⎪⎨+≥⎪⎪+≥⎪≥⎪⎪≥⎩ LINGO 程序如下:MODEL:min=x1+x2+x3+x4+x5+x6; x1+x6>=60; x1+x2>=70; x2+x3>=60; x3+x4>=50; x4+x5>=20;x5+x6>=30;END得到的解为:x1=60,x2=10,x3=50,x4=0,x5=30,x6=0; 配备的司机和乘务人员最少为150人.2. 公司在各地有4项业务,选定了4位业务员去处理.由于业务能力、经验和其它情况不同,4业务员去处理4项业务的费用(单位:元)各不相同,见下表:表3.2 业务的费用表解:这是一个最优指派问题.引入如下变量: ⎩⎨⎧=项业务个人做第若不分派第项业务个人做第若分派第j i j i x ij 01设矩阵44A ⨯为指派矩阵,其中(,)a i j 为第i 个业务员做第j 项业务的业务费. 则可以建立如下模型:∑∑===4141min i j ij ijx aZ⎪⎪⎪⎩⎪⎪⎪⎨⎧======∑∑==4,3,2,1,104,3,2,114,3,2,11..4141j i x i x j x t s ij j ij i ij 或 LINGO 程序如下: MODEL:SETS:person/1..4/; task/1..4/;assign(person,task):a,x; ENDSETS DATA:a=1100,800,1000,700,600,500,300,800,400,800,1000,900,1100,1000,500,700;ENDDATAmin=@sum(assign:a*x);@for(person(i):@sum(task(j):x(i,j))=1);@for(task(j):@sum(person(i):x(i,j))=1);@for(assign(i,j):@bin(x(i,j)));END得到的结果如下:x(1,1)=0,x(1,2)=0,x(1,3)=0,x(1,4)=1;x(2,1)=0,x(2,2)=1,x(2,3)=0,x(2,4)=0;x(3,1)=1,x(3,2)=0,x(3,3)=0,x(3,4)=0;x(4,1)=0,x(4,2)=0,x(4,3)=1,x(4,4)=0;最小费用为2100元.即第1个业余员做第4项业务,第2个业余员做第2项业务,即第3个业余员做第1项业务,第4业余员做第3项业务.总费用达到最小,为2100元.LINGO程序中输入的数据也可以从文本文件中读入,特别是数据比较多时,将程序与数据分开,显得更方便.如上面程序也可以这样写:MODEL:SETS:person/1..4/;task/1..4/;assign(person,task):a,x;ENDSETSDATA:a=@file(data.txt);ENDDATAmin=@sum(assign:a*x);@for(person(i):@sum(task(j):x(i,j))=1);@for(task(j):@sum(person(i):x(i,j))=1);@for(assign(i,j):@bin(x(i,j)));END同时在LINGO目录下建立文本文件data.txt,数据如下:1100,800,1000,700600,500,300,800400,800,1000,9001100,1000,500,700其计算结果同上面相同.3有四种资源被用于生产三种产品,资源量、产品单件可变费用、单件售价、资源单耗量及组织三种商品生产的固定费用见下表.现要求制定一个生产计划,使总收益最大.表3.3 数据详细表解:总收益等于销售收入减去生产产品的固定费用与可变费用之和.问题的困难之处在于事先不知道某种产品是否生产,因而不能确定是否有相应的固定费用.可引入用0-1变量来解决是否需要固定费用问题.设j x 是第j 种产品的产量,1,2,3j =;再设⎪⎩⎪⎨⎧=>=)0(0)0(1jjjx j x j y种产品若不生产第种产品若生产第 3,2,1=j第I 种产品销售一件可收入7-4=3元,第II 种产品销售一件可收入10-6=4元,第III种产品销售一件可收入20-12=8元.则问题的整数规划模型为:321321200150100843m ax y y y x x x Z ---++=⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧===≥≤≤≤≤++≤++≤++≤++3,2,1,103,2,1,070075310032300432500842..333222111321321321321j y j x y M x y M x y M x x x x x x x x x x x x x t s j j 或且为整数 其中j M 为j x 的某个上界.如根据第2个约束条件,可取100,15021==M M ,753=M .也可统一取其最大值150=M .如果生产第j 种产品,则起产量0>j x .由约束条件j j j y M x ≤知1=j y ,此时相应的生产第j 种产品的固定费用在目标函数被考虑.如果不生产第j 种产品,则起产量0=j x .由约束条件j j j y M x ≤知j y 可为0也可为1.但显然只有0=j y 有利于目标函数最大,从而相应的生产第j 种产品的固定费用在目标函数将不被考虑.因此引入j y 是合理的.下面是LINGO 程序.MODEL: DATA: M=150; ENDDATAmax=3*x1+4*x2+8*x3-100*y1-150*y2-200*y3;!目标函数; 2*x1+4*x2+8*x3<=500; 2*x1+3*x2+4*x3<=300; x1+2*x2+3*x3<=100; 3*x1+5*x2+7*x3<=700; x1<=M*y1; x2<=M*y2;x3<=M*y3;@GIN(x1);@GIN(x2);@GIN(x3); !指定产品件数为整数; @BIN(y1);@BIN(y2);@BIN(y3); !指定0-1变量;end得到的解为x1=100,x2=0,x3=0,y1=1,y2=0,y3=0.最大值为Z=200元.3 TSP 问题及LINGO 求解技巧巡回旅行商问题(Traveling Salesman Problem ,TSP),也称为货郎担问题。

Lingo8[1].0演示稿


数据部分
Lingo求解非线性规划
例5
飞机定位问题
飞机在飞行过程中,能够接受到地面上各个 监控台发出的关于飞机当前位置的信息。根据这 个信息可以比较精确地确定飞机的位置。(如下 图)。vor是高频多向导航设备,它能够测到飞 机与该设备的连线的角度信息。dme是距离测量 装置,它能够测到飞机与该设备的距离信息。图 中,飞机接收到来自3个vor发出的角度和一个 dme给出的距离(括号内是误差)。并已经知道 这些设备的(x,y)坐标。假设飞机和这些设备都 在同一个平面上。如何根据这些信息,精确地确 定当前飞机的位置?
计算结果和 程序1结果相同。 当决策变量和约 束方程很多的时 候,第2种程序显 得简洁。如果再 用第1种程序,书 写很麻烦。程序2 的三部分(可以 是四部分,包括 初值)可以任意 顺序。
enddata
例4
合理装载
一艘轮船分前、中、后三个舱位,它们的容积与最 大允载重量如表1。现有三种货物待运,已知有关数据列 在表2。又为了安全,前、中、后的实际载重量大体保持 各舱最大允许载重量的比例关系。具体要求:前、后舱 分别与中舱之间的载重量比例上偏差不超过 15%,前、后 舱之间不超过 10%。问轮船应装载 A、 B、 C 各多少件才能 使运费收入最大?
@sum(huowu(i):w(i)*x(i,1))@sum(huowu(i):w(i)*x(i,3))<=t1*@sum(huowu(i): w(i)*x(i,1)); @for(link:@gin(x)); data: t1=0.10;t2=0.15; q=600,1000,800; v=10,5,7; w=8,6,5; p=1000,700,600; m=2000,3000,1500; n=4000,5400,1500; enddata

Lingo入门


• 例2 求解
2 max 98 x1 277 x2 x12 0.3x1 x2 2 x2 ,
s.t. x1 x2 100 , x1 2 x2 , x1 , x2 0, 且都是整数.
• 输入程序:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1<=2*x2;x1+x2<=100; @gin(x1); @gin(x2);
• • •
六个建筑工地作为一个集合gdjh 两个料场作为一个集合lcjh 决策变量 cij 不仅是依赖于集合gdjh的属性, 而且是依赖于集合lcjh的属性,这样的属性 应该如何定义呢? 根据两个基本集合gdjh与lcjh构造一个派生 集合gdlcjh,再把 cij 定义为这个集合的属性。

• 定义派生集合及其属性的命令格式为 派生集合名(基本集合1,基本集合2):属性
x
i 1
ij
xij 0 或 1 , i 1,2,3,4,5, j 1,2,3,4.
Lingo程序如下:
• min=66.8*x11+57.2*x21+78*x31+70*x41+67.4*x51+75.6*x12+66*x22+67 .8*x32+74.2*x42+71*x52+87*x13+66.4*x23+84.6*x33+69.6*x43+83.8*x5 3+58.6*x14+53*x24+59.4*x34+57.2*x44+62.4*x54; • x11+x12+x13+x14<=1; • x21+x22+x23+x24<=1; • x31+x32+x33+x34<=1; • x41+x42+x43+x44<=1; • x51+x52+x53+x54<=1; • x11+x21+x31+x41+x51=1; • x12+x22+x32+x42+x52=1; • x13+x23+x33+x43+x53=1; • x14+x24+x34+x44+x54=1; • @bin(x11); @bin(x21); @bin(x31); @bin(x41); @bin(x51); • @bin(x12); @bin(x22); @bin(x32); @bin(x42); @bin(x52); • @bin(x13); @bin(x23); @bin(x33); @bin(x43); @bin(x53); • @bin(x14); @bin(x24); @bin(x34); @bin(x44); @bin(x54);

小学拼音(angengingong教案

小学拼音(ang、eng、ing、ong)教案一、教学目标1. 让学生掌握拼音ang、eng、ing、ong的发音方法。

2. 能够正确拼读含有ang、eng、ing、ong音节的词语。

3. 培养学生的发音准确性、朗读流利性以及拼音书写规范性。

二、教学内容1. 拼音ang的发音方法及应用。

2. 拼音eng的发音方法及应用。

3. 拼音ing的发音方法及应用。

4. 拼音ong的发音方法及应用。

5. 含有ang、eng、ing、ong音节的词语练习。

三、教学重点与难点1. 拼音ang、eng、ing、ong的发音方法。

2. 正确拼读含有ang、eng、ing、ong音节的词语。

3. 培养学生发音的准确性和朗读的流利性。

四、教学方法1. 直观演示法:通过图片、动作等方式直观展示发音方法。

2. 练习法:通过反复练习,让学生熟练掌握发音要领。

3. 游戏法:设计拼音游戏,激发学生的学习兴趣。

4. 激励评价法:鼓励学生积极参与,及时给予表扬和鼓励。

五、教学步骤1. 导入新课:介绍拼音ang、eng、ing、ong的发音特点及重要性。

2. 讲解与示范:讲解发音方法,并进行示范。

让学生跟随老师一起发音,体会发音要领。

3. 练习发音:学生分组练习,相互纠正发音错误。

4. 拼读词语:让学生拼读含有ang、eng、ing、ong音节的词语,纠正发音错误。

5. 游戏巩固:设计拼音游戏,让学生在游戏中巩固所学内容。

6. 课堂总结:总结本节课所学内容,强调发音注意事项。

7. 作业布置:布置课后作业,要求学生复习本节课所学内容,并练习拼读词语。

六、教学评价1. 课后收集学生的作业,检查发音准确性及拼读词语的流利性。

2. 在下一节课开始时,进行ang、eng、ing、ong音节的发音测试,了解学生掌握情况。

3. 观察学生在课堂上的参与度和发音进步,及时给予表扬和鼓励。

七、课后作业1. 复习本节课所学内容,重点掌握ang、eng、ing、ong的发音方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第Ⅱ部分运筹学实验 §1 LINGO快速入门 一、 LINDO/LINGO软件简介 LINDO和LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件,这源于芝加哥大学的Linus Schrage教授于1980年前后开发的一套专门用于求解最优化问题的软件包. LINDO用于求解线性规划和二次规划.目前LINGO除了具有LINDO的全部功能外,还可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解以及代数方程求根等. LINDO和LINGO软件的最大特色是可以求解决策变量为整数的优化问题,而且执行速度很快. LINGO实际上是一种最优化问题的建模语言,简单易学、包括许多常用的函数可调用,并提供与其它数据文件的接口,易于输入、求解和分析大规模最优化问题. 由于这些特点,LINDO和LINGO软件在教学、科研、工业、商业和服务等领域得到广泛应用. 本章着重在Microsoft Windows系统下,介绍lingo9.0在运筹学中的使用和课本中相关问题求解的LINGO实现.

二、LINGO软件的安装 LINGO软件的安装非常简单,在Windows系统下双击运行安装光盘(或其它源)中的安装程序setup.exe,接受安装协议,选择安装目录,选择默认的LINGO语法(recommended),最后完成(finish)安装. 安装完成后,第一次运行LINGO软件,这时提示要输入密码,输入正版的密码输入,即可以使用LINGO软件;当然可以选择测试/试用(demo)版本,这时求解变量不能超过300个.运行成功后得到如下窗口:

图1.1 图1.1中:File(文件)、Edit(编辑)、LINGO、Window(窗口)和Help为下拉菜单项,下面一行为菜单项中的一些快捷工具按钮.主窗口LINGO Model为输入模型的窗口,在没有命名保存(save)模型时,LINGO自动命名为LINGO1,LINGO2等. 点击help菜单的About LINGO 可以获得版本的相关信息,如约束(constrain)、变量(variable)、整数变量(integer variable)、非线性变量(nonlinear variable)的限定个数,可用内存(generator memory)使用等. §2求解规划问题

一、LINGO 求解LP问题 下面就用简单的例子来说明LINGO中线性规划问题的求解. 例2.1求如下线性规划问题:

2132minxxz





0,600210035026..2121121xxxxxxx

ts

在LINGO模型窗口中图2.1输入:

图2.1 学习要点: (1) 输入max,min后LINGO就会识别优化类型; 数学运算符“乘号,除号,乘方”分别输入“*,/,^”; 关系运算符“,”分别输入“>=,<=” 来表示; 每行命令结束用“;”来表示. (2)算术运算符按优先级从高到低排序为:-(负号);^;*,/;+,-(减号) (3)关系运算符按优先级从高到低排序为:<,=,>. 输入完毕后,点击求解按钮(或依次点击菜单LINGO/Solve,或按Ctrl+S),求解状态窗口(LINGO Solve Status)被激活,如图2.2: 图2.2 此窗口显示:当前的求解状态,包括模型的类型(Model),解的状态类型(State),目标值(objective)等,如果模型由于陷入循环等一时无法得到解,可以点击中断求解按钮(Interrupt Solver).

学习要点: (1)LINGO默认所有变量非负. (2)LINGO 关于求解的种类一般有如下几种(在asibility处显示): 0 全局最优(Global Optimum) 1 不可行(Infeasible) 2 无界(Unbounded) 3 不确定(Undetermined) 4 可行(Feasible) 5 可行或者无界(Infeasible or Unbounded) 6 局部最优(Local Optimum) 7 局部不可行(Locally Infeasible) 8 目标函数的截断值被达到(Cutoff) 9 算术运算错误而停止(Numeric Error)

当关闭(Close)求解状态窗口时,求解报告窗口(Solution Report)被激活,如图2.3:

图2.3 求解报告显示:求解所需的迭代次数(iteration)(线性规划默认单纯形法);变量的值(value);及变量变化一个单位时,目标值发生的变化量(Reduced Cost);以及松弛或剩余变量(Slack or Surplus,按模型输入行的顺序显示)的值和对偶价格(Dual Price).

二、LINGO 求解ILP问题 例2.2 求如下整数规划问题:

2123maxxxz 



且为整数0,14325.45.0..212121xxxxxxts

在LINGO模型窗口中按如图2.4输入:

图2.4 点击求解按钮,就会得到:求解状态窗口显示为纯整数规划(PILP),全局最优解得到.求解报告窗口显示最优解为x1=4,x2=1,最优值为14. 学习要点: (1)“!”后面可添加为注释语句(注释以英文标识下“;” 结束); “title” 命令可以添加文档的标题和注释,在解的报告里会显示; LINGO只有在“!”和“title” 命令后才可以使用中文字符. (2)LINGO不区分大小写; (3)LINGO模型的目标、约束和约束之间的顺序可以颠倒; (4)变量界定函数: @gin(x) :限制x为整数. @bin(x) : 限制x为0或1; @bnd(L,x,U) : 限制L≤ x≤ U; @free(x) : 取消对变量x的默认下界为0的限制,即x可以为任意 实数; 其中符号“@”表示调用函数;

三、LINGO 求解非线性规划(NLP)问题 例2.3 求如下非线性规划问题: 322312119210maxxxxxxz

0,5..2121xxxx

ts

在模型窗口中输入: max=10*x1+2*x1^2-*x1^3+9*x2-x2^3; x1+x2<=5; 运行结果为:x1=2.61,x2=1.73,z=32.33. §3 灵敏度分析 对模型的目标函数的系数,约束右端项进行灵敏度分析,首先要激活灵敏度分析.依次点击菜单LINGO|Option|General Solver Tab,在Dual Computations列表框中,选择Prices and Ranges选项.当求解模型时,也作出了灵敏度分析,可以点击菜单LINGO中的Range(Ctrl+R)来查看. 例2.4 对例1.1的线性规划模型,按照上述步骤作灵敏度分析,打开灵敏度分析报告(Range Report)显示如图3.1:

图3.1

灵敏度分析报告中显示,当前模型中的目标系数(Current Coefficient),约束右

端项( Current RHS), 对应参数在其它条件不变的情况下,可允许的增加量和减少量(Allowable Increase, Allowable Decrease),INFINITY表示无穷. 本例显示在其它参数不变的情况下,参数在下列变化范围内,最优基保持不

变:目标函数中1x的系数为2,其允许变化范围为)0,()22,(,2x

的系数为3,

其允许变化范围为)0,()33,(;第一个约束右端项为350,其允许变化范围为)600,()250350,(,第二个右端项为100,其可变化范围为)300,3333.58()200100,6667.41100(,第三个右端项600,其可变化范围为),200(),400600(. §4 LINGO中集合的定义与操作 当模型的变量、数据较多时,按照前面按照模型逐个输入的办法,就显得力不从心了.LINGO是一种建模语言,使用LINGO语言可以通过输入简单的文字而代替大规模变量和约束,处理大型问题就得心应手.理解LINGO语言,最重要的是理解集合(sets)和属性(atrribute)的概念.下面我们从简单例子出发来说明这些问题.

一、定义一个基本集(原始集) 基本集的格式为: 集合名/成员1,成员2,„/:属性1,属性2,„; 例 4.1 产生表示价格的向量x=[35 26 45 78 69 66]: 在模型窗口中输入如图4.1:

图4.1 运行得到: Variable Value X(1) 35.00000 X(2) 26.00000 X(3) 45.00000 X(4) 78.00000 X(5) 69.00000 X(6) 66.00000

例4.2 定义一个名为产品的的基本集(可记为products),包括三种产品A,B和C(即它具有成员A,B和C),现在想研究它们对应的单位价格120、100和80以及对应的质量等级1、2和3(即属性可以记为price, quality) 在模型窗口中输入如图4.2:

图4.2 运行结果为: Variable Value PRICE(A) 120.0000

相关文档
最新文档