Lingo软件的介绍
lingo引用excel中的矩阵

lingo引用excel中的矩阵摘要:一、Lingo 软件介绍1.Lingo 软件的基本概念2.Lingo 软件的主要功能和应用领域二、Excel 中的矩阵使用1.Excel 中矩阵的基本概念2.Excel 中矩阵的创建与编辑3.Excel 中矩阵的数据类型与格式三、Lingo 引用Excel 中的矩阵1.Lingo 与Excel 的数据交互2.如何在Lingo 中引用Excel 中的矩阵3.Lingo 引用Excel 矩阵的优势与注意事项四、结论1.Lingo 引用Excel 矩阵的实际应用案例2.Lingo 与Excel 矩阵结合的前景与展望正文:一、Lingo 软件介绍Lingo 是一款专业的数学建模与优化软件,广泛应用于运筹学、统计学、经济学等多个领域。
Lingo 可以帮助用户解决复杂的数学问题,例如线性规划、整数规划、动态规划等。
通过Lingo 软件,用户可以快速地构建数学模型,并对模型进行求解和分析。
二、Excel 中的矩阵使用矩阵是数学中的一个重要概念,它是一个按照长方形阵列排列的复数或实数集合。
在Excel 中,用户可以通过创建公式和函数来创建和编辑矩阵。
Excel 提供了丰富的矩阵操作功能,例如矩阵的相加、相减、相乘、求逆等。
此外,Excel 还可以对矩阵进行数据透视表、图表等可视化操作。
三、Lingo 引用Excel 中的矩阵Lingo 软件可以与Excel 进行数据交互,用户可以在Lingo 中直接引用Excel 中的矩阵。
具体操作方法如下:1.在Excel 中创建或编辑矩阵2.将Excel 文件中的矩阵复制到Lingo 软件中3.在Lingo 中使用矩阵进行建模和求解通过这种方法,用户可以充分利用Excel 的矩阵编辑功能,同时利用Lingo 软件强大的数学建模和求解能力。
这种组合可以大大提高用户的工作效率和建模效果。
四、结论Lingo 引用Excel 矩阵的实际应用案例非常丰富,例如在供应链管理、物流配送、生产调度等领域。
参考一:LINGO软件入门

第7章 LINGO 软件入门7.1 LINGO 软件基本用法7.1.1 LINGO 软件简介:LINGO 软件是一套专门用于求解最优化问题的软件包. LINGO 可用于求解线性规划(LP ),二次规划(QP ),非线性规划(NLP ),整数规划(IP ),动态规划,多目标规划等,特别是对于变量或约束条件较复杂的大规模模型,提供了较好的选择.LINGO 还是最优化问题的一种建模语言,包括许多常用的数学函数可以调用,并可以接受其他数据文件(如文本文件、Excel 电子表格文件、数据库文件等),同时LINGO 提供了与电子表格软件(如Excel 等)的接口,能够直接集成到电子表格中使用.即使对优化方面知识了解不多的用户,也能够方便地建模和输入、有效地求解.7.1.2 LINGO 基本用法:启动LINGO 后,在主窗口上弹出标题为LINGO Model – LINGO1 的窗口,称为LINGO 的模型窗口,建立的模型都要在该窗口内编码实现.例1.求解下列二次规划.22121122121212982770.32;100;2;,;x x x x x x x x x x x x N +---+≤≤∈目标函数约束条件输入模型窗口LINGO1后的形式见下图.请注意以下几点:(1)LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其他语句都是约束条件(除注释语句和TITLE语句),所以语句顺序不重要.(2)LINGO中模型以“MODEL:”开始,以“END”结束.对简单的模型,这俩个语句也可以省略.(3)LINGO模型是由一系列语句组成,每个语句都以分号“;”结尾.(4)LINGO中不分大小写字母;其变量和行名由不超过32个字符(数字和字母)组成,且以字母开头;(5)乘号不能省略,即系数与变量之间要加运算符“*”.(6)“!”开头的是注释行(注释语句),可以省略.(7)“[]”为用户自定义的行号或行名,放在每行之前,可以省略.(8)LINGO中以“@”都是函数调用,@GIN表示变量取正整数.默认情况下,LINGO规定变量是非负的.(我们将在后面详细介绍函数)(9)“TITLE”后加名字,可对此模型命名,可以省略.现在我们用LINGO来解这个模型.点击工具条上的按钮,或从菜单中选择LINGO|Sovle 即可.(若模型编译有错,会有提示)求解时会显示下图:关闭窗口,得到运行结果:Local optimal solution found at iteration:找到最优解时迭代的次数. Objective value:表示所求的最优目标值(11077.50).Variable:变量名Value:最优解中各变量( Variable)的值.Row:约束条件行名.Reduced Cost:当该非基变量增加一个单位时(其他非基变量保持不变)目标函数减少的量(对max型问题)Slack or Surplus:约束对应得松弛变量的值.(第三行取0,对于最优解来讲,第三个约束取等号,为紧约束)Dual Price:对偶价格的值.表示当对应约束有微小变动时,目标函数的变化率,若其数值为X,表示对应约束中不等式右端项若增加一个单位,目标函数将增加X个单位(max 型问题).7.1.3 在LINGO中使用集合:1、LINGO模型的基本组成LINGO也是一种建模语言,称为矩阵生成器,通过集合的引入,它可使输入较大规模问题的过程得到简化.LINGO模型由5段组成:(1)、集合段:是用于定义变量.以“SETS:”开始,以“ENDSETS”结束.定义集合变量,元素,和属性.集合名/元素/:属性元素:类似于数组的下标.属性:定义集合的变量,类似于数组.属性之间必须用逗号或空格隔开.(2)、目标与约束段:定义目标函数,约束条件.(3)、数据段:用于给变量赋值.以“DATA:”开始,以“ENDDATA”结束.对集合的属性(数组)输入必要的常数数据.attribute list(属性)= value_list;(常数列表)(value_list)中数据用逗号或空格隔开.﹡在此段也可引入参数,“变量名=?”,在运行时才对参数赋值.但这仅用于单个变量赋值,而不能用于属性变量(数组).(4)、初始段:以“init:”开始,以“endinit”结束.对集合的属性(数组)定义初值. (5)、计算段:以“CALC:”开始,以“ENDCALA”结束.对一些原始数据进行“预处理”.﹡计算段中语句是顺序执行,不能交换位置.﹡计算段中只能直接使用赋值语句.2、集合的定义:变量使用之前需先定义,而LINGO中的变量是通过集合来定义的,变量皆为向量或由向量生成的二维数组.如:Demand/1..6/:a,b,d :集合名为Demand,共6个元素,a,b,d 为属于此集合的变量,其为含6个元素的向量.Supply/1,2/:x,y,e :集合名为Supply ,共2个元素,x,y,e 为属于此集合的变量,其为含2个元素的向量.————基本集合Link(demand,supply):c :集合link 是由集合demand和 supply生成的新集合,为二维数组,其元素由demand和 supply的笛卡尔积构成,即共6*2=12个元素变量c 即为6*2的矩阵————派生集合现有2料场,位于A (5, 1), B (2, 7),记(xj,yj),j=1,2, 日储量ej 各有20吨.假设从料场到工地之间均有直线道路相连,试制定每天的供应计划,即从A, B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小.解:设决策变量:ij c (料场j 到工地i 的运量)则其为12维.则规划模型为26221/2112161min [()()].,16,1,2ijji j i j i iji j ijji c xa yb s tcd i ce j ====-+-==≤=∑∑∑∑其LINGO 模型为:(1)集合段:我们定义需求点demand 和供应点supply 两个集合,分别有6个和2个元素,Demand/1..6/:a,b,d ; 其中a 为该集合的属性(变量),表示6个工地位置的横坐标的集合,是一个有6个元素的向量. Supply/1,2/:x,y,e ; 其中x 该集合的属性(变量),表示2个料场位置的横坐标的集合,是一个有2个元素的向量.运送量ij c 的集合是一个6*2 的矩阵,它需要利用集合demand 和supply ,定义一个新集合,定义ij c 为这个新集合的属性:Link(demand,supply):c;(2)数据段:给已知变量赋值.如a,b=1.25,1.25,8.75,0.75,0.5,4.75,5.75,5,3,6.5,7.25,7.75;也可写成a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75;注 LINGO 对数据是按列赋值的,而不是按行.分割数据可用空格,逗号,回车. (3)目标与约束段: 目标函数26221/211min[()()]ijji j i j i c xa yb ==-+-∑∑用LINGO 语句表示为:min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));()11*11*222*12*233*13*21244*14*255*15*266*16*2⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪ ⎪= ⎪⎪⎪ ⎪ ⎪ ⎪⎪ ⎪⎪ ⎪⎝⎭⎝⎭@sum :求和函数.这个函数的功能是对语句中冒号“:”后面的的表达式,按照“:”前面的集合指定的下标进行求和.“@sum ”相当于∑“”,“link(i,j)”相当于“i,j ∈link ”约束条件21.,16ijij s tcd i ===∑用LINGO 语句表示为:@for(demand(i): @sum(supply(j):c(i,j)) =d(i););@for:循环函数.意思是对冒号“:”前面的集合的每个元素(下标),对于“:”后面的约束关系式都要成立.注 @for 和@sum 可以嵌套使用.@free 函数取消了变量x,y 非负限制.(4)初始段:“X ,Y =5,1,2,7;”语句的实际赋值顺序是X=(5,2),Y=(1,7).作为寻找最优解的起始值. 模型如下: MODEL:Title Location Problem; sets:demand/1..6/:a,b,d; supply/1..2/:x,y,e; link(demand,supply):c; endsets data:!locations for the 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; enddata init:!initial locations for the supply (初始点); x,y=5,1,2,7; endinit!Objective function (目标);[OBJ] min=@sum(link(i,j): c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2) ); !demand constraints (需求约束);@for(demand(i): @sum(supply(j):c(i,j)) =d(i);); !supply constraints (供应约束);@for(supply(i): @sum(demand(j):c(j,i)) <=e(i); ); @for(supply: @bnd(0.5,X,8.75); @bnd(0.75,Y,7.75); ); END 运行,得局部最优解X(1)=7.249997,X(2)=5.695940,Y(1)=7.749998,Y(2)=4.928524,,最小运量=89.8835(吨公里).NLP 中局部最优解不一定就是全局最优解,可通过“LINGO|Options|Global Solver|Use Global Solver ”菜单命令激活全局最优求解程序.7.1.4 LING O 的运算符和函数:在此我们主要介绍前六种函数1、算术运算符及其优先级:算术运算符:+(加法),—(减法或负号),*(乘法),/(除法)∧求幂)关系运算符:<(即<=,小于等于),=(等于),>(即>=,大于等于)逻辑运算符:#AND#(与),#OR#(或),#NOT#(非),#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于).结果只有“真”(1)和“假”(0)两个值。
运筹学软件(LINGO)简介

目标与约束段
对于产品数量的平衡方程而言, 由于下标I=1时的约束关系 与I=2,3,4时有所区别(因为定义的变量INV是不包含INV(0)), 因 此把I=1的约束关系单独写出“INV(1)=10+RP(1)+OP(1)-DEM(1);”, 而对I=2,3,4对应的约束, 增加了一个逻辑表达式来刻划: @FOR(QUARTERS(I)|I#GT#1: INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I););
② 变量定界函数 @GIN(X): @BIN(X): @FREE(X): 限制X为整数. 限制X为0或1. 取消对X的符号限制.
@BND(L,X,U): 限制 L ≤ X ≤ U .
注: 有关其它函数的介绍, 请参考LINGO的帮助文件.
4、运算符说明 ① 运算符 算数运算符: +(加法), -(减法或负号), *(乘法), /(除法), ^(求幂). 关系运算符: <(即<=,小于等于), >(即>=,大于等于). 注:优化模型中的约束一般没有严格小于、严格大于关系. =(等于),
逻辑运算符: #AND#(与), #EQ#(等于), #OR#(或), #NE#(不等于), #NOT#(非); #GT#(大于).
#GE#(大于等于), #LT#(小于),#LE#(小于等于).
注: 逻辑运算的结果为“真”(TRUE)和“假”(FALSE), LINGO 中用数字1代表TRUE, 其它值都是FALSE.
2、状态窗口说明(例1)
Variables(变量数量) Total(变量总数) Nonlinear(非线性变量) Integer(整数数量)
注:由于LINGO对中文操作系 统的兼容性不好, 所以有些 显示字符和单词被截掉了.
4-1 LINGO软件简介

Z=110万元 x1=70,x2=160,x3=120
一 LINGO软件 软件
简介 功能与界面 建立线性优化模型 结果分析 敏感性分析
1
1.1 LINGO软件简介 软件简介
LINGO是Lindo Systems Inc 是 开发的用于求解线性和非线性 开发的用于求解线性和非线性 优化问题的简易工具 执行速度很快、输入方便、 执行速度很快、输入方便、 易于求解和分析数学规划问题。 易于求解和分析数学规划问题。 因此在数学、 因此在数学、科研和工业界得 到广泛应用。 到广泛应用。
定义一般整数的方法: 定义一般整数的方法: @GIN(x2); @GIN( variable_name); 最优解 x1=4, x2=1, z=29
22
3.4 案例分析
某开发公司选择建造两房、三房和四房的住宅, 某开发公司选择建造两房、三房和四房的住宅,现 需要确定每种房型的数量,以获得利润最大。 需要确定每种房型的数量,以获得利润最大。 约束条件: 约束条件: 工程总预算不超过900万元 工程总预算不超过 万元 为使经济上可行,总单元数必须不少于350套 为使经济上可行,总单元数必须不少于 套 各类住宅的最 大百分比数 二房 三房 四房 20% 60% 40% 建筑造价/套 建筑造价 套 万元 2.0 2.5 3.0 纯利润/套 纯利润 套 万元 0.2 0.3 0.4
14
1.5灵敏度分析 1.5灵敏度分析
灵敏度分析的内容: 灵敏度分析的内容: 目标函数系数在什么范围变化时 在什么范围变化时( 目标函数系数在什么范围变化时(此时假 定其它系数保持不变), ),最优解不变化 定其它系数保持不变),最优解不变化 约束右端项在什么范围变化时 在什么范围变化时( 约束右端项在什么范围变化时(此时假定 其它系数保持不变),对应项约束的对偶 ),对应项约束的 其它系数保持不变),对应项约束的对偶 价格(边际值)不变。 对偶问题 价格(边际值)不变。
《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软件介绍

例:邮局一周中每天需要不同数目的雇员,设周一 至少20人,周二至少16人,13,16,19,14,12人,又 规定应聘者需连续工作5天,问邮局每天聘多少雇 员才能既满足需求,又使聘用总人数最少。 min =s1+s2+s3+s4+s5+s6+s7; s1+s4+s5+s6+s7>=20; !周1雇员数; s1+s2+s5+s6+s7>=16; !周2雇员数; s1+s2+s3+s6+s7>=13; !周3雇员数; s1+s2+s3+s4+s7>=16; !周4雇员数; s1+s2+s3+s4+s5>=19; !周5雇员数; s2+s3+s4+s5+s6>=14; !周6雇员数; s3+s4+s5+s6+s7>=12; !周7雇员数;
五个基本的组成部分: 1.变量定义; 2.数据输入; 3.目标函数; 4.约束; 5.变量取值范围。
结束。 (1) 每条语句后必须使用分号“;”结束。问题 ) 每条语句后必须使用分号“ 模型必须由MODEL命令开始,END结束。 命令开始, 结束。 模型必须由 命令开始 结束 命令来作为输入问题模型的开始, (2) 用MODEL命令来作为输入问题模型的开始, ) 命令来作为输入问题模型的开始 格式为MODEL:statement (语句)。 语句)。 格式为 : (3) 目标函数必须由“min =”或“max =”开头。 开头。 ) 目标函数必须由“ 或 开头 (4) 数字与变量之间 变量与变量之间要使用运 ) 数字与变量之间,变量与变量之间要使用运 算符。 如 号等 号等) 算符。(如*号等
12 Lingo软件基础1

练习
EX1 解线性规划
max z = − x1 + x 2 2 x1 − x 2 ≥ − 2 x − 2x ≤ 2 1 2 s .t . x1 + x 2 ≤ 5 x1 ≥ 0
EX2 求解问题
min z = − x 2 + 2 x 3 x1 x 2 s .t . x2 x j − 2 x2 + x3 = 2 − 3x3 + x4 = 1 − x3 + x5 = 2 ≥ 0 ; j = 1, 2 ,..., 5
• 当前时间
外层是主框架窗口, 外层是主框架窗口,包含了所有菜单命令和工 具条,其它所有的窗口将被包含在主窗口之下。 具条,其它所有的窗口将被包含在主窗口之下。 在主窗口内的标题为LINGO LINGO1的窗 在主窗口内的标题为LINGO Model – LINGO1的窗 口是LINGO的默认模型窗口, LINGO的默认模型窗口 口是LINGO的默认模型窗口,建立的模型都都要 在该窗口内编码实现。 在该窗口内编码实现。 例 如何在LINGO中求解如下的LP问题: 在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。
LINGO软件的求解过程
1. 确定常数 2. 识别类型 LINDO/LINGO预处理程序 预处理程序 LP QP NLP IP 全局优化(选 全局优化 选)
分枝定界管理程序 ILP 线性优化求解程序 1. 单纯形算法 2. 内点算法 选) 内点算法(选 IQP INLP
非线性优化求解程序 1、顺序线性规划法(SLP) 、顺序线性规划法 2、广义既约梯度法 选 、广义既约梯度法(GRG) (选) 3、多点搜索 、多点搜索(Multistart) (选) 选
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
min f ( x) 2 x1 3x2 s.t. x1 x2 350 x1 100 2x1 x2 600 x1 , x2 0
LINGO代码:
min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600;
最优解不变时目标函 数系数允许变化范围
(约束条件不变) x1系数范围(64,96)
x2系数范围(48,72)
x1系数由24 3=72 增加为303=90, 在允许范围内
• A1获利增加到 30元/kg,应否改变生产计划?
不变!
影子价格有意义(不变)时约束右端的允许 变化范围 结果解释
Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 原料最多增加10 MILK 50.00000 10.00000 6.666667 时间最多增加53 TIME 480.0000 53.33333 80.00000 CPCT 100.0000 INFINITY 40.00000 充分条件 !
纯整数规划(PIP) 混合整数规划(MIP)
连续规划
整数规划(IP)
LINGO软件能求解的优化模型
优化模型
连续优化
整数规划(IP)
线性规划 (LP)
二次规划 (QP)
非线性规划 (NLP) LINGO
LINDO
LINGO的主要功能特色
(1) 既能求解线性规划问题,也有较强的求解非线性规划 问题的能力;
基本模型
获利24元/kg 0.8kg B1 获利16元/kg 获利32元/kg 0.75kg B2 x3 kg B1, x4 kg B2 获利44元/kg
变量
目标 函数 约束 条件
x5 kg A1加工B1, x6 kg A2加工B2 利润
max z 24 x1 16 x2 44 x3 32 x4 3x5 3x6
12 x1 8 x2 480 3x1 100
线性 规划 模型 (LP)
x1 , x2 0
模型求解
软件实现
LINGO
model: Global optimal solution found. max = 72*x1+64*x2; Objective value: 3360.000 [milk] x1 + x2<50; Total solver iterations: 2 [time] Variable Value Reduced Cost 12*x1+8*x2<480; X1 20.00000 0.000000 [cpct] 3*x1<100; X2 30.00000 0.000000 end Row Slack or Surplus Dual Price 1 3360.000 1.000000 MILK 0.000000 48.00000 TIME 0.000000 2.000000 CPCT 40.00000 0.000000
敏感度分析 (“LINGO|Range” )
Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease MILK 50.00000 10.00000 6.666667 TIME 480.0000 53.33333 80.00000 CPCT 100.0000 INFINITY 40.00000
Lingo软件
• 软件简介 • 简单编程及灵敏度分析
• 使用简介
• 数据处理 • 练习与总结
LINDO 公司软件产品简要介绍
美国芝加哥(Chicago)大学的Linus Schrage教授于1980 年前后开发, 后来成立 LINDO系统公司(LINDO Systems Inc.), 网址:
20桶牛奶生产A1, 30桶生产A2,利润3360元.
结果解释
model: max = 72*x1+64*x2; [milk] x1 + x2<50; [time] 12*x1+8*x2<480; [cpct] 3*x1<100; end Global optimal solution found. Objective value: 3360.000 Total solver iterations: 2 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 原料无剩余 MILK 0.000000 48.00000 三 TIME 0.000000 2.000000 时间无剩余 种 CPCT 40.00000 0.000000 加工能力剩余40
• 35元可买到1桶牛奶, 每天最多买多少?
最多买10桶!
例3 奶制品的生产销售计划 在例2基础上深加工
12h 1桶 牛奶 或 8h 3kgA1 1kg 2h, 3元 4kgA2 1kg 2h, 3元 获利24元/kg
0.8kgB1
获利16元/kg 0.75kgB2
获利44元/kg
50桶牛奶, 480h
至多100kgA1
获利32元/kg
制订生产计划,使每天净利润最大
• 30元可增加1桶牛奶,3元可增加1h时间,应否投资?现投资 150元,可赚回多少? • B1,B2的获利经常有10%的波动,对计划有无影响? • 每天销售10kgA1的合同必须满足,对利润有什么影响?
3kg A1 12h 1kg 1桶 2h, 3元 牛奶 或 4kg A2 8h 1kg 2h, 3元 决策 出售x1 kg A1, x2 kg A2,
4kgA2
获利16元/kg
时间480h
至多加工100kgA1
制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗?若买,每天最多买多少?
• 可聘用临时工人,付出的工资最多是每小时几元?
• A1的获利增加到 30元/kg,应否改变生产计划?
基本 1桶 模型 牛奶 或
12h
3kgA1
4kgA2
(2) 输入模型简练直观; (3) 运行速度快,计算能力强; (4) 内置建模语言,提供几十个内部函数,从而能以较少 语句,较直观的方式描述较大规模的优化模型; (5) 将集合的概念引入编程语言,很容易将实际问题转换 为LINGO模型;
(6) 能方便地与Excel、文本文件等其他软件交换数据;
简单编程
• 35元可买到1桶牛奶,要买吗? 35 <48, 应该买! • 聘用临时工人付出的工资最多每小时几元? 2元!
说明
敏感度分析 (“LINGO|Range” ) 用该命令产生当前模型的灵敏性分析报告:研究 当目标函数的费用系数和约束右端项在什么范围 (此时假定其它系数不变)时,最优基保持不变 。灵敏性分析是在求解模型时作出的,因此在求 解模型时灵敏性分析是激活状态,但是默认是不 激活的。为了激活灵敏性分析,运行 LINGO|Options…,选择General Solver Tab, 在 Dual Computations列表框中,选择Prices and Ranges选项。灵敏性分析耗费相当多的求解时间 ,因此当速度很关键时,就没有必要激活它。
获利24元/kg
获利16元/kg
8h 每天 50桶牛奶 时间480h 决策变量 x1桶牛奶生产A1
至多加工100kgA1
x2桶牛奶生产A2
目标函数
获利 24×3x1 获利 16×4 x2 每天获利 max z 72 x1 64 x2 原料供应
x1 x2 50
约束条件
劳动时间 加工能力 非负约束
资 源
“资源” 剩余为零的约束为紧约束(有效约束)
Global optimal solution found. 结果解释 Objective value: 3360.000 Total solver iterations: 2 最优解下“资源”增加 Variable Value Reduced Cost 1单位时“效益”的增 X1 20.00000 0.000000 量 X2 30.00000 0.000000 影子价格 Row Slack or Surplus Dual Price 1 3360.000 1.000000 MILK 0.000000 48.00000 原料增加1单位, 利润增长48 TIME 0.000000 2.000000 时间增加1单位, 利润增长2 CPCT 40.00000 0.000000 加工能力增长不影响利润
LINDO: Linear INteractive and Discrete Optimizer LINGO: Linear INteractive General Optimizer What’s Best!: (SpreadSheet e.g. EXCEL) (V6.1) (V8.0) (V7.0)