Lingo软件介绍 2015
LINGO简介

例3 求解0—1整数线性规划问题 MAX f=-3x1+2x2-5x3 S.T x1+ x2- x3≤2 x1+4x2+x3≤4 x1+ x2 ≤3 4x2+x3≤6 xi (i=1,2,3)为0或1 程序如下:
MAX=-3*x1+2*x2-5*x3; x1+ x2-x3<=2; x1+4*x2+x3<=4; x1+x2<=3; 4*x2+x3<=6; @BIN(x1); @BIN(x2); @BIN(x3);
1、集合定义部分
这部分以“SETS:”开始,以 “ENDSETS”结束,作用在于定义必要的集合 变量(SET)及其元素(member,类似于数组 的下标)和属性(attribute,类似于数组)。 格式是: 集合名/1..n/:属性列表; 各属性之间用“,”分隔。属性的具体数值如 果是常量,则可在数据输入部分输入;如果是 未知量,则可在初始部分输入它的初值。
例 7、求解线性规划(LP)问题 min S.T
f (400xi 450yi 20zi )
i 1 4
zi zi 1 xi yi ri
xi 40 (i 1,,4)
(i 1,,4)
ri 40,60,75,25 (i 1,,4)
z0 10
三、LINGO模型的基本要素
当你遇到的是一个较大规模的优化问题时, 怎样才能做到输入几个语句就可以建立起含有 很多变量的目标函数和成千上万条约束的一个 复杂庞大的模型呢? 掌握LINGO提供的最优化模型语言是至关 重要的。 一个最复杂的LINGO模型由以下5个要素组 成(当然,如果实际问题不需要,则其中的某 些要素可以省略)。
第十章 LINGO软件使用简介及技巧

三个农场达成协议,他们的播种面积与其可灌 溉面积相等,而各农场种何种作物并无限制.问如何 制定各农场种植计划才能在上述限制条件下,使本 地区的三个农场的总净收益最大.
目录 上页 下页 返回 结束
解 设农场1种植的甜菜、棉花和高粱分别为 x 11 , x 12 , x 13亩,农场2种植的甜菜、棉花和高粱分 别为 x 21 , x 22 , x 23 亩,农场3种植的甜菜、棉花和 高粱分别为 x 31 , x 32 , x 33亩. 设三个农场可耕地分别为
s0 0 y1 y 2 y 3 5 0 0 z1 z 2 z 3 3 2 5 x1 y 1 z 1 4 0 0 x2 y2 z2 600 x3 y3 z3 3 0 0 3 x1 2 y 1 z 1 6 0 0 3 x2 2 y2 z2 800 3 x3 2 y3 z3 3 7 5 x1 , x 2 , x 3 , y 1 , y 2 , y 3 , z 1 , z 2 , z 3 0
目录 上页 下页 返回 结束
x2 , y2 , z2
得到结果如下: X(1,1)=0,X(1,2)=300,X(1,3)=0 X(2,1)=258.3333,X(2,2)=12.5,X(2,3)=0 X(3,1)=0,X(3,2)=187.5,X(3,3)=0 最大总净收益为253333.3元. 对本题来说,由于数据少,可以不采用数组形式, 而直接采用变量表示,建立模型如下: 设农场1种植的甜菜、棉花和高粱分别为
一、LINGO使用介绍 二、利用LINGO求解优化模型实例 三、LINGO调用VC编写的函数动态库技巧
目录 上页 下页 返回 结束
LINGO是一种专门用于求解数学规划问题的 软件包. 广泛应用LINGO主要用于求解线性规划、非 线性规划、二次规划和整数规划等问题,也可以 于求解一些线性和非线性方程组及代数方程求根等. 本章介绍的LINGO可在LINGO5.0,Ling8.0, Ling9.0等版本中使用.
LINGo的使用介绍

练习题
见习题.doc
例 加工奶制品的生产计划
1桶 牛奶 或 12小时 3公斤A1 4公斤A2 获利24元/公斤 8小时 每天: 50桶牛奶 时间480小时 至多加工100公斤A1 制订生产计划,使每天获利最大
获利16元/公斤
例 加工奶制品的生产计划
线性规划模型(LP)
M a x Z 7 2 x1 6 4 x 2
据该公司网站称:位列全球《财富》杂志500强 的企业中,一半以上在使用该产品,25强的企 业中,23家有使用该产品。
某工厂生产两种产品,已知生产单位产品所需的设 备台时、A,B两种原材料的消耗及利润如下表所示:
产品一
产品二
设备 原材料A
原材料B 净利润
1台时 4千克
0 2千克
2台时 0
4千克 3千克
如果该厂在计划内能够安排的总台时为8台时,可限量采购原材料
A为16千克,B为12千克,问如何安排生产计划使获利最大?
设 x1 和 x 2 分 别 是 产 品 一 和 产 品 二 的 产 量 , 则 根 据 题 意 得 : x1 2 x2 8 4 x1 1 6 4 x2 12 x ,x 0 1 2
原料供应 约束 条件 劳动时间 加工能力 非负约束
x 1 x 2 50
12 x 1 8 x 2 480
3 x 1 100
x1 , x 2 0
例 加工奶制品的生产计划
1桶 牛奶 或 12小时 3公斤A1 4公斤A2 获利24元/公斤 8小时 每天: 50桶牛奶 时间480小时 至多加工100公斤A1 制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗? • 可聘用临时工人,付出的工资最多是每小时几元? • A1的获利增加到 30元/公斤, 应否改变生产计划?
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软件介绍

收点
B1
B2
B3
B4
B5
B6
B7
B8 产量
发点
A1
6
2
6
7
4
2
5
9 60
A2
4
9
5
3
8
5
8
2 55
A3
5
2
1
9
7
4
3
3 51
A4
7
6
7
3
9
2
7
1 43
·集的名字 ·父集的名字 ·可选,集成员 ·可选, 集成员的属性
定义派生集的语法:
setname(parent_set_list)[/member_list/][:attribute_list];
说明:setname是集的名字,parent_set_list是已定义的集的列 表,多个时必须用逗号隔开。
集循环函数
1.@for 该函数用来产生对集成员的约束。基于
建模语言的标量需要显式输入每个约束,不 过@for函数允许只输入一个约束,然后 LINGO自动产生每个集成员的约束。
例 产生序列{1,4,9,16,25}
model: sets:
number/1..5/:x; endsets
@for(number(I): x(I)=I^2); end
Lingo软件介绍
➢ 这套软件包由美国芝加哥大学的Linus Scharge 教授于1980年前后开发,专门用于求解最优化 问题,后经不断完善和扩充,并成立LINDO公 司进行商业化运作,取得了巨大的成功。全球 《财富》杂志500强的企业中,一半以上使用该 公司产品,其中前25强企业中有23家使用该产 品。
LINGO软件简介

第三篇 LINGO 软件简介LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
3.1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
例1.2 使用LINGO软件计算6个发点8个收点的最小费用运输问题。
产销单位运价如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然后点击工具条上的按钮即可。
LINGO软件简介
LINGO 软件简介LINGO 软件是一个处理优化问题的专门软件,它尤其擅长求解线性规划、非线性规划、整数规划等问题.一个简单示例有如下一个混合非线性规划问题:⎪⎩⎪⎨⎧≥≤≤+++---+为整数2132121321322212121,;0,,210022..15023.027798max x x x x x x x x x x t s x x x x x x x .LINGO 程序模型:max =98x1+277x2-x1^2-0.3x1x2-2x2^2+150x3; x1+2x2+2x3<=100; x1<=2x2;gin x1;gin x2; Lingo 默认变量非负注意:binx 表示x 是0-1变量;ginx 表示x 是整数变量;bndL,x,U表示限制LxU ;freex 表示取消对x 的符号限制,即可正、可负.结果:Global optimal solution found.Objective value: 9561.200 Extended solver steps: 0 Total solver iterations: 45 Variable Value Reduced CostX1 6.000000 -76.70000X2 31.00000 -151.2000X3 16.00000 -150.0000Row Slack or Surplus Dual Price1 9561.200 1.0000002 0.000000 0.0000003 56.00000 0.000000———————— 非常简单在LINGO 中使用集合为了方便地表示大规模的规划问题,减少模型、数据表示的复杂程度,LINGO 引进了“集合”的用法,实现了变量、系数的数组化下标表示.例如:对⎪⎪⎩⎪⎪⎨⎧==-++-==≤++∑=.,,;10)0(;4,3,2,1),()())()1()(;4,3,2,1,20)(..)}(20)(450)(400{min4,3,2,1均非负INV OP RP INV I I DEM I OP I RP I INV I INV I I RP t s I INV I OP I RP I求解程序:model :sets :mark/1,2,3,4/:dem,rp,op,inv;也可以vmark/1..4/:dem,rp,op,inv;endsetsmin=sum mark:400rp+450op+20inv;也可以markI:400rpI+450opI+20invI;for markI: rpI<40;for markI|Igt1: invI=invI-1+rpI+opI-demI;inv1=10+rp1+op1-dem1;data:dem=40,60,75,35;enddataend上面程序在model…end之间有1集合定义、2数据输入和3其他三部分内容.集合定义部分从sets:到endsets:定义了一个指标集合mark可以理解为数组下标及其范围和其4个属性dem、rp、op、inv用此向量的数组变量.数据输入部分从data:到enddata依次给出常量dem的值.其他部分:给出优化目标及约束.一般而言,LINGO中建立优化模型的程序可以由五部分组成,或称为五段section:1集合段SETS:这部分以“SETS:”开始,以“ENDSETS”结束,作用在于定义必要的集合变量SET及其元素member,含义类似于数组的下标和属性attribute,含义类似于数组.2目标与约束段:这部分实际上定义了目标函数、约束条件等,但这部分没有段的开始和结束标记;该段一般常用到LINGO内部函数,尤其是和集合相关的求和函数SUM和循环函数FOR等.3数据段DATA:这部分以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性数组输入必要的常数数据.格式为:attribute属性=value_list常数列表;常数列表中的数据之间可以用逗号、空格或回车符分隔.如果想要在运行时才对参数赋值,可以在数据段使用输入语句,其格式为“变量名=;”,但仅限对单个变量赋值,而不能用于属性变量数组的单个元素.4初始段INIT:这部分以“INIT:”开始,以“ENDINIT”结束,作用在于对集合的属性数组定义初值因为求解算法一般是迭代算法,提供一个较好的初值,能提高计算效果.定义初值的语句格式为:attribute属性=value_list常数列表;这与数据段中的用法类似.5计算段CALC:这部分以“CALC:”开始,以“ENDCALC”结束,作用在于对一些原始数据进行预处理加工,使其成为模型直接需要的数据.该段中通常是计算赋值语句.基本集合与派生集合为了处理二维数组变量等有多个下标的问题,LINGO引入了“派生集”的概念.我们把直接列出元素的指标集合叫“基本集合”,而基于其他集合派生出来的二维或多维指标集合称为“派生集”.派生集的定义格式为:派生集名原始集合1,原始集合2,…,原始集合n:属性变量列表;实际上就是笛卡儿积的意思,即:派生集={i1,i2, (i)n| i1集合1, i2集合2,…, in集合n}.1一个应用例子布局问题:某些建筑工地的位置用平面坐标a,b表示及水泥日用量d已知.现有A、B两临时料场位于P5,1、Q2,7,日储量20.问A、B两料场分别向各工地运输多少吨水泥,使总吨公里数最小若重新安排两料场的位置,应怎样安排才能使总吨公里数最小这样安排可节省多少吨公里设工地位置ai ,bi,水泥日用量为dii=1,2,…,6;料场位置xi,yi,日储量ej,j=1,2;从料场j向工地i运送量为cij.该问题的数学模型为:LINGO求解程序为:MODEL:sets:Imark/1..6/:a,b,d;Jmark/1,2/:x,y,e;IJmarkImark,Jmark:c;endsetsdata:Location for demand需求点位置;a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;Quantities of the demand and supply供需量;d=3,5,4,7,6,11;e=20,20;enddatainit:Initial location for the supply初始点;x,y=5,1,2,7;endinitObjective function目标;OBJ min=sum IJmarki,j: ci,jxj-ai^2+yj-bi^2^1/2; demand contraints需求约束;for Imarki:DEMAND_CON SUM Jmarkj:ci,j=di;; supply constrains供给约束;for Jmarkj:SUPPLY_CON SUM Imarki:ci,j<=ej;;for Jmark: free x;free y;;2一个动态规划的例子:最短路问题从S城市到T城市之间找一条最短路径,道路情况如下:数学模型为:LINGO求解程序:model:sets:cities/s,a1,a2,a3,b1,b2,c1,c2,t/:L; 属性Li表示城市S到城市i的最优行驶路线的里程;roadscities,cities/ 派生集合roads表示的是网络中的道路;s,a1 s,a2 s,a3 由于并非所有城市间都有道路直接连接,所以将路具体列出;a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2b1,c1 b1,c2 b2,c1 b2,c2 属性Di,j是城市i到城市j的直接距离已知;c1,t c2,t/:D;endsetsD= 6 3 36 5 8 67 46 7 8 95 6;L=0,,,,,,,,; 因为Ls=0;enddatafor citiesi|igt index s: 这行中"indexs"可以直接写成"1";Li=min roadsj,i:Lj+Dj,i;; 这就是最短路关系式;endVariable ValueL S0.000000L A16.000000L A23.000000L A33.000000L B110.00000L B27.000000L C115.00000L C216.00000L T20.00000最短路径为: S-〉A3-〉B2-〉C1-〉T3指派问题设有6个人做6件事.其中cij表示第i人做第j事的收益;设第i人做第j事时xij =1,否则xij=0.该问题的规划模型:说明:其中“-”表示某人无法做该事.可令其为-表示绝对不行或0领薪不用干活LINGO求解程序:MODEL:sets:Imark/1..6/:i;Jmark/1..6/:j;IJmarkImark,Jmark:c,x;endsetsdata:第i人做第j事的收益;c=20,15,16,5,4,717,15,33,12,8,69,12,18,16,30,1312,8,11,27,19,14-99,7,10,21,10,32-99,-99,-99,6,11,13;enddataOBJ max=sum IJmarki,j: cx;每人做一项工作;for Imarki: SUM Jmarkj:xi,j=1;;每事一人做;for Jmarkj: SUM Imarki:xi,j=1;;for IJmark: bin x;本约束可以不要,因为有解时必为0或1; END4生产与销售计划问题某公司用两种原油A 和B 混合加工成两种汽油甲和乙.甲、乙两种汽油含原油A 的最低比例分别为50%和60%,每吨售价分别是4800元和5600元.该公司现有原油A 和B 的库存量分别为500吨和1000吨,还可以从市场上买到不超过1500吨的原油A.原油A 的市场价为:购买量不超500吨时单价为10000元/吨;购买量超过500吨但不超1000吨时,超过500吨部分单价为8000元/吨;购买量超过1000吨部分的单价是6000元/吨.该公司应如何安排原油的采购和加工以获得最大利润数学模型: 设原油A 用于生产甲、乙两种汽油的数量分别是x11和x12,原油B 用于生产甲、乙两种汽油的数量分别是x21和x22;购买原油A 的数量是x 吨,采购支出为cx 千元/吨.为了处理分段函数cx,将原油采购量x 分解为对应价格10千元/吨的采购量x1、对应对应价格8千元/吨的采购量x2和对应价格6千元/吨的采购量x3,它们应满足:0)500(21=-x x 表示要么x1=500要么x2=0,即x1的量不达到500时x2=00)500(32=-x x 表示要么x2=500要么x3=0,即x2的量不达到500时x3=0此时采购支出3216810)(x x x x c ++=模型改变为:LINGO 求解程序:model :init:x1=500;x2=500;x3=0;x12=1500;x22=1000;x11=0;x21=0;endinitmax=4.8x11+4.8x21+5.6x12+5.6x22-10x1-8x2-6x3; x11+x12<=x+500;x21+x22<=1000;0.5x11-0.5x21>=0;0.4x12-0.6x22>=0;x=x1+x2+x3;x1-500x2=0;x2-500x3=0;bnd0,x1,500;bnd0,x2,500;bnd0,x3,500;。
《LINGO简介》课件
某些复杂的数学表达可能无法直接在 LINGO中表示。用户可以通过混合编 程或使用其他建模语言(如GAMS) 来解决这一问题。
对于特定行业或领域的定制化需求, LINGO可能无法直接提供相应的功能 。在这种情况下,用户可以通过扩展 LINGO的API或与其他软件的集成来 实现定制化需求。
感谢您的观看
目标函数的设置
目标函数定义
在LINGO中,需要定义一个目标函数来描述决策变量 的优化目标。
目标函数类型
目标函数可以是最大化或最小化形式,根据实际问题 的需求进行选择。
目标函数编辑器
LINGO提供了一个目标函数编辑器,用户可以在其中 方便地定义和编辑目标函数。
求解操作
求解器选择
在LINGO中,可以选择不同的求解器 来求解模型,根据模型的规模和复杂
LINGO软件广泛应用于生产计划、资源分配 、工艺流程优化等方面。
物流运输
LINGO软件用于运输路线规划、车辆调度、 仓储优化等问题求解。
金融投资
LINGO软件用于投资组合优化、风险管理、 信贷决策等问题求解。
科研领域
LINGO软件在数学建模、统计分析、机器学 习等领域有广泛应用。
02
LINGO软件的基本操作
物流配送问题
总结词
物流配送问题是一个复杂的优化问题,LINGO软件能够通过建立有效的数学模型,优化配送路线和成本。
详细描述
物流配送问题涉及到如何合理规划配送路线、分配运输资源,以最小化运输成本并确保及时送达。LINGO软件通 过构建配送问题的数学模型,帮助企业找到最优的配送方案,降低运输成本、提高运输效率。
LINGO软件与其他软件的比较与选择
MATLAB
MATLAB在科学计算和数据分析领域具有广泛的应用,但 相比之下,LINGO在求解优化问题方面更加专业和高效。
Lingo软件介绍
@sign(x)如果 x<0 返回 -1;否则,返回 1。 @floor(x) 返回 x 的整数部分。当 x>=0 时,返回不超过 x 的最大整数;当 x<0 时, 返回不低于 x 的最大整数。 @smax(x1,x2,…,xn)返回 x1, x2,… ,xn 中的最大值。 @smin(x1,x2,…,xn)返回 x1,x2, …, xn 中的最小值。 (5)变量界定函数 变量界定函数实现对变量取值范围的附加限制,共 4 种 @bin(x)限制 x 为 0 或 1; @bnd(L,x,U)限制 L≤x≤U; @free(x) 取消对变量 x 的默认下界为 0 的限制,即 x 可以取任意实数; @gin(x)限制 x 为整数。 在默认情况下, Lingo 规定变量是非负的,也就是说下界为 0 ,上界为+∞。@free 取消了默认的下界为 0 的限制,使变量也可以取负值。@bnd 用于设定一个变量的上下 界,它也可以取消默认下界为 0 的约束。 (6)集循环函数 @for:该函数用来产生对集成员的约束。 @sum:该函数返回遍历指定的集成员的一个表达式的和。 @min 和 @max:返回指定的集成员的一个表达式的最小值或最大值。 例 5 求向量[5,1,3,4,6,10]前 5 个数的最小值,后 3 个数的最大值。 model: data: N=6; enddata sets: number/1..N/:x; endsets data: x = 5 1 3 4 6 10; enddata minv=@min(number(I) | I #le# 5: x); maxv=@max(number(I) | I #ge# N-2: x); end 注: |用来表示成员资格过滤器的开始。 (7)概率函数
2
lingo-lindo简介
Lingo、lindo简介一、软件概述 (1)二、快速入门 (4)三、Mathematica函数大全--运算符及特殊符号 (11)参见网址: /一、软件概述(一)简介LINGO软件是由美国LINDO系统公司研发的主要产品。
LINGO是Linear Interactive and General Optimizer的缩写,即交互式的线性和通用优化求解器。
LINGO可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。
其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。
能方便与EXCEL,数据库等其他软件交换数据。
LINGO实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其他数据文件(如文本文件、Excel 电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题。
(二)LINGO的主要特点:Lingo 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。
Lingo 提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。
1 简单的模型表示LINGO 可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。
LINGO的建模语言允许您使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似您在使用纸和笔。
模型更加容易构建,更容易理解,因此也更容易维护。
2 方便的数据输入和输出选择LINGO 建立的模型可以直接从数据库或工作表获取资料。
同样地,LINGO 可以将求解结果直接输出到数据库或工作表。
使得您能够在您选择的应用程序中生成报告。
3 强大的求解器LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&非球面的),二次的,二次约束的,和整数优化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入格式要求: (1)利用 Lingo 编写最优化模型要包含目标函数、决策变量、约束条件三个要素。 (2)在 Lingo 的模型中,每一行都必须要用一个分号结尾,而且分号必须是英文状态 下的。 (3)Lingo 模型的一个表达式可以分几行输入,但是表达式必须用一个分号结束。 (4)在 Lingo 中为了提高可读性,需要增加注释,以!号开始,;结束,可以跨行。 (5)Lingo 不区分字母的大小写。 (6)Lingo 中的变量名都必须用字母开始,接下来可以是其他字符、数字或下划线。 2)求解状态窗口
1
1、Lingo 软件
1.1 Lingo 软件的基本语法
1.1.1Lingo 软件简介 Lingo 是美国 Lindo 系统公司开发的一套专门用来求解最优化问题的软件包。Lindo 是 Linear Interactive and Discrete Optimizer 的缩写,可以用来求解 LP、IP 和 QP 问题; Lingo 除了拥有 Lindo 的全部功能(求解线性和二次规划问题)还可以用来求解非线性 规划和整数规划, 是一种建立最优化问题的语言。 下图显示了 Lingo 和 Lindo 软件能求 解的优化模型:
3、Lingo 编程实例 .................................................................................... 72
3.1 飞行管理问题 ................................................................................................... 72 3.2 生产管理问题 .................................................................................................... 77 3.3 物流问题 ........................................................................................................... 84 3.4 财务模型 ........................................................................................................... 87
4
说明: (1)红框内的部分是对目标函数进行的灵敏性分析,第一列是变量,第二列是对应的 系数,第三列是允许增加量,第四列是允许减少量,允许增加和允许减少都是在当前系 数基础上改变的。 (2)蓝框内所示为保持最优基不变的约束右端项的变化范围, 使得最优基保持不变的 情况下。 Lingo 模型的组成: 集合段:sets…endsets; 数据段:data…enddata; 初始段:init…endinit; 目标与约束段(模型段或者子模型段) 计算段:calc…endcalc; 所有的段一般都放在 model…end 之间。 Title 用来设置模型的标题。 4)Lingo 软件中的 Option 菜单 (1)Interface 选项卡 选项组 含义 如果选择该选项,求解程序遇到错误时将打开一个对 Errors In Dialogs(错误对话 话框显示错误, 你关闭该对话框后程序才会继续执行; General 否则,错误信息将在报告窗口显示,程序仍会继续执 ( 一 般 选 框) 行 项) Splash Screen 如果选择该选项,则 LINGO 每次启动时会在屏幕上
2、线性规划问题的 Lingo 求解 ............................................................... 48
2.1 一般线性规划模型的建立与求解 ................................................................... 48 2.2 使用文本文件传递数据 ................................................................................... 50 2.3 使用 Excel 文件传递数据 ................................................................................ 51 2.4 LINGO 与数据库的接口 .................................................................................. 52 2.5 灵敏性分析与影子价格 ................................................................................... 59 2.6 Lingo 求解整数(0-1)规划问题 .................................................................... 62 2.7、数学建模竞赛中的数学规划问题及示例 ..................................................... 65 2.8、图论中的数学规划问题 ................................................................................. 68
5
选项
(弹出屏幕) Status Bar (状态栏) Status Window (状态窗口) Terse Output (简洁输出) Toolbar (工具栏) Solution Cutoff (解的截断) lg1 (extended) File (lg1,扩展格式) Format ( 文 件 格 lng (text only) 式) (lng,纯文本格式) Line limit (行数限制)
6
生成器的内存限制(兆) Iterations 迭代次数 Time (sec) 运行时间(秒)
Runtime Limits 运行限制
Dual Computations (对偶计算)
Model Regeneration (模型的重新生成)
Degree (线性化程度) Linearization(线 性化) Big M (线性化的大 M 系数) Delta(线性化的误差 限) Allow Unrestricted Use of Primitive Set Member Names (允 许无限制地使 用基本 集合的成员 名) Check for Duplicate Names in Data and Model(检查数据和模型中的名称是否重 复使用) Use R/C format names for MPS I/O (在 MPS 文件格式的输入输出中使用 R/C 格 式的名称)
Lingo 软件的特点: 1)简单的模型表示; 2)强大的求解工具,lingo 在建立模型、求解模型、结果显示、数据查询、档案处 理和敏感度分析上都有对应的指令和功能; 3)方便的数据输入和输出选择; 4)强大的求解引擎和求解工具; 5)模型交互或创建交互式应用(Create Turn-key Applications); 6)广泛的文档和帮助功能。 Lingo 软件的窗口环境: 1)模型输入窗口
Syntax Coloring (语法配 Delay (延迟) 色) Paren Match (括号匹配) Send Reports to Command 如果选择该选项,则输出信息会发送到命令窗口;否 Window 则不使用该功能 (报告发送到命令窗口) 如果选择该选项,则用 File|Take Command 命令执行 Echo Input 命令脚本文件时,处理信息会发送到命令窗口;否则 Command (输入信息反馈) 不使用该功能 Window 命令窗口能显示的行数的最大值为 Maximum(缺省 ( 命 令 窗 Line Count Limits 为 800) ;如果要显示的内容超过这个值,每次从命令 口) (行数限制) 窗口滚动删除的最小行数为 Minimum(缺省为 100) 命令窗口每次显示的行数的最大值为 Length (缺省为 Page Size Limit (页面大小限 没有限制) ,显示这么多行后会暂停,等待用户响应; 制) 每行最大字符数为 Width(缺省为 71,可以设定为 61-200 之间) ,多余的字符将被截断 (2)General Solver(通用求解器)选项卡 选项组 选项 含义 Generator Memory Limit (MB)矩阵 缺省值为 32M,矩阵生成器使用的内存超过该限制,
Lingo 软件介绍 目录
1、Lingo 软件 .............................................................................................. 2
1.1 Lingo 软件的基本语法 ....................................................................................... 2 1.2 Lingo 常用函数 ............................................................................................ 的版本和版权信息; 否则不弹出 如果选择该选项,则 LINGO 系统在主窗口最下面一 行显示状态栏;否则不显示 如 果 选 择 该 选 项 , 则 LINGO 系 统 每 次 运 行 LINGO|Solve 命令时会在屏幕上弹出状态窗口;否则 不弹出 如果选择该选项,则 LINGO 系统对求解结果报告等 将以简洁形式输出;否则以详细形式输出 如果选择该选项,则显示工具栏;否则不显示 小于等于这个值的解将报告为“0”(缺省值是 10-9) 模型文件的缺省保存格式是 lg1 格式(这是一种二进 制文件,只有 LINGO 能读出) 模型文件的缺省保存格式是 lng 格式(纯文本) 语法配色的行数限制(缺省为 1000) 。LINGO 模型窗 口中将 LINGO 关键此显示为兰色,注释为绿色,其 他为黑色,超过该行数限制后则不再区分颜色。特别 地,设置行数限制为 0 时,整个文件不再区分颜色。 设置语法配色的延迟时间(秒,缺省为 0,从最后一 次击键算起) 。 如果选择该选项,则模型中当前光标所在处的括号及 其相匹配的括号将以红色显示;否则不使用该功能