当前位置:文档之家› Lingo_简单教程

Lingo_简单教程


通过“LINGO | Generate | Display Model
(Ctrl +G)”命令可以看到完整的模型以及每行语 句对应的行号了。
可使用“ LINGO |
Picture ”命令检查模型中 的简单错误,该命令将 目标函数和约束表达式 中的非零系数通过列表 (或图形)显示出来。
用“LINGO | Solve

LINDO格式的模型文 件



· 后缀“ldt”表示LINGO数据 文件; · 后缀“ltf”表示LINGO命令 脚本文件; · 后缀“lgr”表示LINGO报告 文件; · 后缀“mps”表示MPS(数 学规划系统)格式的模型文 件; ·“*.*”表示所有文件。
2 用Lingo求解 二次规划( QP)模型
(4)初始段(INIT)——赋初值 (5)计算段(CALC)——预处理
例4.2 建筑工地的位置(用平面坐标a,b表示,距离单位:
km)及水泥日用量d(单位:t)由下表给出。目前有两 个临时料场位于P(5,1),Q(2,7),日储量各有 20t,求从A,B两料场分别向各工地运送多少吨水泥,使 总的吨公里数最小。两个新的料场应建在何处,节省的 吨公里数有多大?
优化模型
决策变量:
设每天用x1桶牛奶生产A1,用x2桶牛奶生产A2
目标函数:
设每天获利为z(元),x1桶牛奶生产3x1(kg)A1,获利 24×3x1,x2桶牛奶生产4x2(kg) A2,获利16×4x1,故 z=72x1+64x2.
约束条件:
原料供应:生产A1,A2的原料(牛奶)总量不得超过每 天的供应,即x1+x2≤50(桶); 劳动时间:生产A1,A2的总加工时间不得超过每天正式 工人总的劳动时间,即 12x1+8x2≤480(h); 设备能力:A1的产量不得超过甲车间设备每天的加工 能力,即3x1≤100; 非负约束:x1,x2均不能为负值。
Max
z 72 x1 64 x 2
l5
Z=0
x1 D Z=2400
z=c (常数) ~等值线
在B(20,30)点得到最优解 最优解一定在凸多边 形的某个顶点取得。
目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线
Lingo优化模型
这是一个(连 续)线性规划(LP)问题
献给忠诚愿为数学付出的人
Come onபைடு நூலகம்!
Lingo 入门
广西大学数学与信息科学学院 韦琳娜 j_wln@
1 在Lingo中使用Lindo模型
Lindo与Lingo都是LINDO系统公司开发的专门用
于求解最优化问题的软件包。与Lindo相比, Lingo软件主要具有两大优点: (1)除具有LINDO的全部功能外,还可用于求解 非线性规划问题,包括非线性整数规划问题。 (2)LINGO包含了内置的建模语言,允许以简 练、直观的方式描述较大规模的优化问题,模型 中所需的数据可以以一定格式保存在独立的文件 中。
DEM——需求量,RP——正常生产的产量,OP——加班 生产的产量,INV——库存量 目标函数:
约束条件: 能力限制 RP(I)≤40,I=1,2,3,4 产品数量的平衡方程 INV(I)=INV(I-1)+RP(I)+OP(I)- DEM(I) I=1,2,3,4 INV(0)=10; 变量的非负约束
修改运行时的 内存限制
激活敏感 性分析
例3.1 一奶制品加工厂用牛奶生产A1,A2两种奶制品, 1桶牛奶可以在甲车间用12h加工成3kgA1,或者在乙车 间用8h加工成4kg A2。根据市场需求,生产出的A1,A2 全部能售出,且每千克A1获利24元,每千克A2获利16 元。现在加工厂每天能得到50桶牛奶的供应,每天正式 工人总的劳动时间为480h,并且甲车间的设备每天至多 能加工100kg A1,乙车间的设备的加工能力可以认为没 有上限限制(即加工能力足够大)。试为该厂制定一个 生产计划,使每天获利最大,并进一步讨论以下3个附 加问题: (1)若用35元可以买到1桶牛奶,是否作这项投资?若 投资,每天最多购买多少桶牛奶? (2)若可以聘用临时工人以增加劳动时间,付给临时 工人的工资最多是每小时几元? (3)由于市场需求变化,每千克A1的获利增加到30元, 是否应该改变生产计划?
1 在Lingo中使用Lindo模型
Lingo 9.0完全支持Lindo模型程序的书写格式。
在Lingo 9.0模型窗口中选择菜单命令 “File|Open (F3)” 注意 在Lingo 9.0以前的版本中(如Lingo 8.0), “File|Import LINDO File (F12)”命 令可以将Lindo模型文件转化成Lingo模型。 这个菜单命令的意思是“导入Lindo文件” (在LINGO 9.0中已无必要,所以该命令已 经被取消了)。
Lingo优化模型
集合
属性
集合的属性相当于以集合的元素为下标的数组
Lingo模型的基本要素
(1)集合段(SETS) (2)目标与约束段 (3)数据段(DATA):作用在于对集合的属性(数
组)输入必要的常数数据。格式为: attribute(属性)=value _list(常数列表); 常数列表(value _list)中数据之间可以用逗号“,” 分 开,也可以用空格分开(回车的作用也等价于一个 空 格) “变量名=?;” ——运行时赋值
工地的位置(a,b)及水泥日用量d
1
2 8.75 0.75 5
3 0.5 4.75 4
4 5.75 5 7
5 3 6.5 6
6 7.25 7.75 11
a b d
1.25 1.25 3
优化模型
记工地的位置为(ai,bi),水泥日用量为di, i=1,2,…,6;料场位置为(xj,yj),日储量为ej, j=1,2;从料场j向工地i的运送量为cij。 决策变量: 在问题(1)中,决策变量就是料场j向工地i的 运送量cij,该问题是个LP问题;在问题(2)中, 决策变量除了料场j向工地i的运送量cij,新建料场 位置(xj,yj)也是决策变量,该问题是个NLP问 题。 目标函数: f是总吨公里数(运量乘以运输距离)
结 论
应该批准用35元买1桶牛奶的投资,但每天
最多购买10桶牛奶。
可以用低于2元/h的工资聘用临时工人以增
加劳动时间,但最多增加53.3333h。
若每千克A1的获利增加到30元,则x1系数
变为30×3=90,在允许的范围内,所以不 应改变生产计划,但最优值变为 90×20+64×30=3720。
线性规划模型
A1,A2每公斤的获利是与各 自产量无关的常数 每桶牛奶加工出A1,A2的数量 和时间是与各自产量无关的常 数 A1,A2每公斤的获利是与相 互产量无关的常数 每桶牛奶加工出A1,A2的数量和 时间是与相互产量无关的常数 加工A1,A2的牛奶桶数是实数
模型求解
约 束 12 x 1 8 x 2 条 3 x 1 100 件
综上所述
max z=98 x1+277 x2-x12-0.3 x1 x2-2x22 (1.1) s.t. x1+x2≤100 x1≤2x2 x1,x2≥0 (1.2) (1.3) (1.4)
LINGO中的变量名
由字母和数字组成, 但必须以字母开头, 长度不能超过32个 字符(只能是英文字 符,不能含有中文字 符) 行号、“TITLE”语 句和注释语句是 LINGO中唯一可以 使用汉字字符的地方 行号必须以字母或下 划线开头; LINGO中不区分大 小写字母 LINGO中已假定所 有变量非负
(1)若用35元可以买到1桶牛奶,是否作这项投资?若投资,每天最多购买多 少桶牛奶? (2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时 几元? (3)由于市场需求变化,每千克A1的获利增加到30元,是否应该改变生产计 划?
“LINGO| Solve”求解结果报告
“LINGO| Range”敏感性分析
例2.1 某厂生产的一种产品有甲、乙两个牌号,讨论在产
销平衡的情况下如何确定各自的产量,使总的利润最大。 所谓产销平衡指工厂的产量等于市场上的销量,没有卖不 出去的产品的情况。显然,销售总利润既取决于两种牌号 产品的销量和(单件)价格,也依赖于产量和(单件)成 本,按照市场经济规律,甲的价格p1固然会随其销量x1的 增长而降低,同时乙的销量x2的增长也会使甲的价格有稍 微的下降,可以简单地假设价格与销量成线性关系,即 p1=b1-a11x1-a12x2,b1,a11,a12>0,a11>a12;类似地,乙 的价格p2遵循同样的规律,即有p2=b2-a21x1-a22x2, b2,a21,a22>0,a22>a21.例如,假定实际中b1=100,a11=1, a12=0.1,b2=280;a21=0.2,a22=2。此外,假设工厂的生 产能力有限,两种牌号产品的产量之和不可能超过100件, 且甲的产量不可能超过乙的产量的两倍,甲乙的单件生产 成本分别是q1=2和q2=3(假定为常数)。求甲、乙两个牌号 的产量 x1,x2使总利润最大。
x1 , x 2 0 x 1 x 2 50
480
图解法
l1 : x1 x 2 50
l 2 : 12 x1 8 x 2 480
x2 A
l1 B l4 c l2 C Z=3600 l3
l 3 : 3 x1 100
l 4 : x1 0 , l 5 : x 2 0
0
目标 函数
(Ctrl +S)”命令来运 行这个程序。 (如果想要了解运行状 态窗口中各项的含义, 可先点击工具栏上的图 标 ,再点击运行状态 窗口,屏幕上自动弹出 运行状态窗口的帮助信 息。)
求解结果报告窗口
相关主题