9Lingo优化软件及其应用-第九章
LINGO软件的使用方法
2
2
答案
model: max=98*x1+277*x2-x1^2 -0.3*x1*x2-2*x2^2; x1+x2<100; x1<2*x2; @gin(x1); @gin(x2); end ※@gin()是调用的整数函数
第三节 在LINGO中使用集合
• 例题:某公司要决定下四个季度帆船生 产量。下四个季度需求量分别是40条, 60条,75条,25条。每季度生产能力40 条,生产费用400美元/条,如果加班生产 费用450美元/条,每季度库存费20美元/ 条。假定生产提前期为0,初始库存10条, 问如何安排生产总费用最小?
显式列举法 元素列表 隐式列举法
第四节 运算符及其优先级
• 算术运算符:+,-,*,/,^ • 逻辑运算符: #AND#,#OR#.#NOT#,#EQ#,#NE#,#GT#,# GE#,#LT#,#LE#,TRUE,FALSE • 关系运算符:<(即<=),=,>(即>=)
优先级
优先级 表: 最高 运算符 #NOT#,-(负号) ^ *,/ +,-(减号) #EQ#,#NE#,#GT#,#GE#, #LT#,#LE# #AND#,#OR# <,=,>
集合循环函数
• 用法:@function(setname:expression_list); • 具体如下:@for @sum @max @min
变量界定函数
• • • • @BND(L,X,U)-限制L<=X<=U @BIN(X)-限制X为0或1 @FREE(X)-取消对X的符号限制 @GIN(X)-限制X为整数
• • • • • • • • • 以model:开始,以end结束。 不区分大小写。 目标函数为max=。 语句以;结束。 数与变量之间的乘号不能省。 约束S.t.省略不写。 <与<=,>与>=是等价的。 非负约束可以不输入。 说明语句以!开头。
优化软件LinGo的使用
•LINGO软件的使用
需要掌握的几个重要方面
正确阅读求解报告(尤其要掌握灵敏性分
析的求解选项
掌握与外部文件的基本接口方法
模型
min或max f(x)
S.T. G(x)≤或≥或=0 L ≤x≤U
例题2
数学模型:
min
s.t.
其中:
ij ij
c x
i 1 j 1
3
4
xl=5 2 4 6 cl= 4 9 4
c = 10 6 7 12
16 10 5 9 5 4 10 10
x
i 1 4
j 1
3
ij
xl j , j 1 4
cli , i 13
x
ij
xij 0, i 13, j 1 4
优化(Optimization), 规划(Programming)
无 约 束 优 化 线 性 规 划 非 线 性 规 划
整 数 规 划
组 合 优 化
不 确 定 规 划
多 目 标 规 划
目 标 规 划
网 络 优 化
动 态 规 划
优化问题的一般形式
优化问题三要素:决策变量;目标函数;约束条件
min s.t.
其中SI {1,, n},SJ ={1,, m}
Lingo表示:
SI/1..n/; SJ/1..m/; IJ(I,J):x,c;
集合的类型
setname(parent_set_list) [/member_list/] [: attribute_list];
集合
setname [/member_list/] [: attribute_list];
Lingo的基本使用方法
用DEM,RP,OP,INV分别表示需求量、正常生产的产量、加班生 产的产量、库存量,则DEM,RP,OP,INV对每个季度都应该有一 个对应的值,也就说他们都应该是一个由4个元素组成的数组, 其中DEM是已知的,而RP,OP,INV是未知数。
2021/10/10
22
问题的模型(可以看出是LP模型 )
27
目标函数的定义方式
@SUM(集合(下标):关于集合的属性的表达式) 对语句中冒号“:”后面的表达式,按照“:”前面的集合 指定的下标(元素)进行求和。
本例中目标函数也可以等价地写成 @SUM(QUARTERS(i): 400*RP(i) +450*OP(i) +20*INV(i) ),
“@SUM”相当于求和符号“∑”, “QUARTERS(i)”相当于“iQUARTERS”的含义。 由于本例中目标函数对集合QUARTERS的所有元素(下标) 都要 求和,所以可以将下标i省去。
个值非常接近,是计算误差
引起的。如果采用全局最优 求解程序(后面介绍),可以 验证它就是全局最优解。
2021/10/10
14
运行状态窗口
Variables(变量数量): 变量总数(Total)、 非线性变量数(Nonlinear)、 整数变量数(Integer)。
Constraints(约束数量): 约束总数(Total)、 非线性约束个数(Nonlinear)。
Max98x127x72x120.3x1x22x22 1
s.t. x1x2100
2
x12x2
3
x1,x20 为整数
4
输入窗口如下:
2021/10/10
11
程序语句输入的备注:
LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注 释语句和TITLE语句外的其他语句都是约束条件,因此语句的 顺序并不重要 。 限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”,不 可以写成“@GIN(2)”,否则LINGO将把这个模型看成没有整 数变量。 LINGO中函数一律需要以“@”开头,其中整型变量函数( @BIN、@GIN)和上下界限定函数(@FREE、@SUB、 @SLB)与LINDO中的命令类似。而且0/1变量函数是@BIN函 数。
LINGO软件在优化模型中的应用
LINGO软件 ——在优化模型中的应用
腾讯微博:羊羽
LINGO软件在优化模型中的应用
LINGO软件在优化模型中的应用
解:设每天用x1 桶牛奶在甲车间生产,用x2 桶牛 奶在乙车间生产,可获利z 元。
则该问题的数学模型为: max z=72x1+64x2 s.t x1+x2≤50 12x1+8x2≤480 3x1≤100 x1,x2≥0
LINGO软件在优化模型中的应用
结果:
这个线性规划的最优解为x1=20,x2=30,最优值 为z=3360,即用20 桶牛奶在甲车间生产,30 桶 牛奶在乙车间生产,可获最大利润3360 元。
优点
3)强大的求解器 LINGO拥有一整套快速的,内建的求 解器用来求解线性、非线性、二次约束和 整数优化问题。
LINGO软件在优化模型中的应用
优点
4)交互式模型 在LINGO内可以直接创建和求解模型, 也可以从自己编写的应用程序中直接调用 LINGO。对于开发交互式模型,LINGO提 供了一整套建模环境,用来求解和分析构 建的模型。
从该问题的求解我们可以看到用LINGO 软件求 解线性规划是非常方便、快捷的,比单纯形法人 工计算效率高很多。
LINGO软ห้องสมุดไป่ตู้在优化模型中的应用
附加问题:
1) 若用35元可以买到1桶牛奶,应否作这项投资? 若投资,每天最多购买多少桶牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临 时工人的工资最多是每小时几元? 3) 由于市场需求变化,甲车间奶制品的获利增加 到30元,应否改变生产计划?
实用管理运筹学 第9章 LINGO软件的进阶操作
@pps(a,x)
均值为a的Poisson分布的累积分布函数
@psl(x)
单位正态线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从标准正态分布
@psn(x)
标准正态分布的累积分布函数
@ptd(n,x)
自由度为n的t分布的累积分布函数
@qrand(seed)
产生服从(0,1)区间的伪随机数
在默认情况下,LINGO规定变量是非负的
集循环函数
能够简化所构建的数学模型
语法:@function(setname[(set_index_list)[|conditional_qualifier]]:expression_list)
@function:表示四个集循环函数之一 setname:要遍历的集合 set_index_list:集索引列表
运筹学
第9章 LINGO软件的进阶操作
目录 CONTENTS
1 LINGO的运算符 2 LINGO的函数 3 LINGO的段与过滤条件 4 LINGO与EXCEL交互
PART 1 LINGO的运算符
LINGO的运算符
LINGO包含三种运算符,即算术运算符、关系运算符及逻辑运算符
算术运算符
关系运算符
LINGO中的关系运算符有3种: <(即≤,小于等于)、=(等于)、>(即≥,大于等于)
LINGO不支持严格小于和严格大于关系运算符,如果需 要A严格小于B:A<B,则可以用A+ε≤B表示, ε是一个 小的正数。
逻辑运算符
LINGO共有9种逻辑运算符,逻辑运算符最终的结果也是一个Boolean值
符号
@if函数可以嵌套使用。
例9-1 用@if函数表示以下分段函数。
LINGO9.0培训教程
相较于其他非线性规划软件,Lingo9.0在算法优化方面更 加出色,能够更快地找到最优解。
适用范围
相较于专门针对非线性规划问题的软件,Lingo9.0的适用 范围更广,既可以处理线性规划问题,也能处理一些非线 性规划问题。
与其他整数规划软件的比较
整数规划能力
Lingo9.0在处理整数规划问题时,具有较高的求解精度和速度,能 够提供更精确的解决方案。
灵活性
相较于其他专门针对整数规划问题的软件,Lingo9.0更加灵活,不 仅适用于整数规划问题,还能处理一些混合整数规划问题。
扩展性
Lingo9.0具有良好的扩展性,可以与其他软件和编程语言集成,方便 用优解。
多目标规划问题
多目标规划问题概述
01
多目标规划是解决具有多个相互冲突的目标函数的优
化问题。
多目标规划问题实例
02 例如,一个城市需要制定交通规划,目标是最大化交
通便利性、减少交通拥堵和降低环境污染。
Lingo9.0求解多目标规划问题
03
使用Lingo9.0软件,可以建立多目标规划模型,并使
随着技术的发展,Lingo9.0不断更新迭代,成为一款功能强大、用户友好的优化求 解器。
Lingo9.0在学术界和工业界都得到了广泛的应用,为决策者提供有效的解决方案。
Lingo9.0的主要特点和功能
01
02
03
04
支持线性规划、整数规 划、二次规划和网络优 化等多种优化问题。
内置丰富的算法库,能 够快速求解大规模问题。
建模常见问题
总结词
建模常见问题主要包括模 型建立错误、模型无法导 出等。
模型建立错误
请检查您的模型是否符合 Lingo9.0的语法规则,并 确保所有参数和变量都已 正确设置。
优化建模与LINGO软件使用
每天 50桶牛奶 决策变量
目标函数
时间480小时 至多加工100公斤A1 x2桶牛奶生产A2
x1桶牛奶生产A1
获利 24×3x1 获利 16×4 x2 max z 72x1 64x2 每天获利 原料供应 劳动时间 加工能力 非负约束
x1 x2 50
12x1 8x2 480
目标函数系数允许变化范围
RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000
利润 时间 2 x 2 x 480 5 6 非负约束
x1 , , x6 0
结果解释
Objective Value: 3460.800 Variable Value Reduced Cost X1 0.000000 1.680000 X2 168.000000 0.000000 X3 19.200001 0.000000 X4 0.000000 0.000000 X5 24.000000 0.000000 X6 0.000000 1.520000 Row Slack or Surplus Dual Prices 2 0.000000 37.920000 3 0.000000 3.260000 4 76.000000 0.000000 5 0.000000 44.000000 6 0.000000 32.000000
X2
ROW 2 3 4
64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE
lingo9.0使用教程
lingo9.0使⽤教程LINGO 使⽤教程LINGO 是⽤来求解线性和⾮线性优化问题的简易⼯具。
LINGO 内置了⼀种建⽴最优化模型的语⾔,可以简便地表达⼤规模问题,利⽤LINGO ⾼效的求解器可快速求解并分析结果。
§1 LINGO 快速⼊门当你在windows 下开始运⾏LINGO 系统时,会得到类似下⾯的⼀个窗⼝:外层是主框架窗⼝,包含了所有菜单命令和⼯具条,其它所有的窗⼝将被包含在主窗⼝之下。
在主窗⼝内的标题为LINGO Model – LINGO1的窗⼝是LINGO 的默认模型窗⼝,建⽴的模型都都要在该窗⼝内编码实现。
下⾯举两个例⼦。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 2121121213£+33++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 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end然后点击⼯具条上的按钮即可。
《培训教案LINGO》课件
《培训教案LINGO》课件第一章:LINGO软件概述1.1 课程目标了解LINGO软件的基本功能和应用领域熟悉LINGO软件的界面和操作流程1.2 教学内容LINGO软件的简介和发展历程LINGO软件的主要功能和特点LINGO软件的应用领域和案例介绍LINGO软件的操作界面和基本操作流程1.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解1.4 教学活动教师讲解LINGO软件的基本功能和应用领域学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,熟悉界面和基本操作流程1.5 教学评估学生参与操作演示,展示对LINGO软件的基本操作掌握程度学生完成课后练习,巩固所学知识第二章:LINGO函数和操作符2.1 课程目标熟悉LINGO软件中的常用函数和操作符掌握函数和操作符的使用方法和规则2.2 教学内容LINGO软件中的常用函数和操作符分类介绍函数和操作符的使用方法和规则结合实际案例进行函数和操作符的应用演示2.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解2.4 教学活动教师讲解LINGO软件中常用函数和操作符的分类和特点学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,熟悉函数和操作符的使用方法和规则2.5 教学评估学生参与操作演示,展示对LINGO软件中函数和操作符的掌握程度学生完成课后练习,巩固所学知识第三章:线性规划模型3.1 课程目标了解线性规划模型的基本概念和特点学会构建和求解线性规划模型3.2 教学内容线性规划模型的定义和特点线性规划模型的构建方法线性规划模型的求解方法和算法3.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解3.4 教学活动教师讲解线性规划模型的基本概念和特点学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习构建和求解线性规划模型3.5 教学评估学生参与操作演示,展示对线性规划模型构建和求解的掌握程度学生完成课后练习,巩固所学知识第四章:非线性规划模型4.1 课程目标了解非线性规划模型的基本概念和特点学会构建和求解非线性规划模型4.2 教学内容非线性规划模型的定义和特点非线性规划模型的构建方法非线性规划模型的求解方法和算法4.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解4.4 教学活动教师讲解非线性规划模型的基本概念和特点学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习构建和求解非线性规划模型4.5 教学评估学生参与操作演示,展示对非线性规划模型构建和求解的掌握程度学生完成课后练习,巩固所学知识第五章:整数规划模型5.1 课程目标了解整数规划模型的基本概念和特点学会构建和求解整数规划模型5.2 教学内容整数规划模型的定义和特点整数规划模型的构建方法整数规划模型的求解方法和算法5.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解5.4 教学活动教师讲解整数规划模型的基本概念和特点学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习构建和求解整数规划模型5.5 教学评估学生参与操作演示,展示对整数规划模型构建和求解的掌握第六章:LINGO在工程中的应用6.1 课程目标了解LINGO在工程领域中的应用案例学会使用LINGO解决工程问题6.2 教学内容LINGO在工程领域中的应用案例介绍LINGO在工程问题求解中的具体应用方法结合实际案例进行操作演示和讲解6.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解6.4 教学活动教师讲解LINGO在工程领域中的应用案例学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习解决工程问题6.5 教学评估学生参与操作演示,展示对LINGO在工程问题求解的掌握程度学生完成课后练习,巩固所学知识第七章:LINGO在财务和经济管理中的应用7.1 课程目标了解LINGO在财务和经济管理领域中的应用案例学会使用LINGO解决财务和经济管理问题7.2 教学内容LINGO在财务和经济管理领域中的应用案例介绍LINGO在财务和经济管理问题求解中的具体应用方法结合实际案例进行操作演示和讲解7.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解7.4 教学活动教师讲解LINGO在财务和经济管理领域中的应用案例学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习解决财务和经济管理问题7.5 教学评估学生参与操作演示,展示对LINGO在财务和经济管理问题求解的掌握程度学生完成课后练习,巩固所学知识第八章:LINGO在交通运输中的应用8.1 课程目标了解LINGO在交通运输领域中的应用案例学会使用LINGO解决交通运输问题8.2 教学内容LINGO在交通运输领域中的应用案例介绍LINGO在交通运输问题求解中的具体应用方法结合实际案例进行操作演示和讲解8.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解8.4 教学活动教师讲解LINGO在交通运输领域中的应用案例学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习解决交通运输问题8.5 教学评估学生参与操作演示,展示对LINGO在交通运输问题求解的掌握程度学生完成课后练习,巩固所学知识第九章:LINGO在生产计划与控制中的应用9.1 课程目标了解LINGO在生产计划与控制领域中的应用案例学会使用LINGO解决生产计划与控制问题9.2 教学内容LINGO在生产计划与控制领域中的应用案例介绍LINGO在生产计划与控制问题求解中的具体应用方法结合实际案例进行操作演示和讲解9.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解9.4 教学活动教师讲解LINGO在生产计划与控制领域中的应用案例学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习解决生产计划与控制问题9.5 教学评估学生参与操作演示,展示对LINGO在生产计划与控制问题求解的掌握程度学生完成课后练习,巩固所学知识第十章:LINGO在其它领域的应用10.1 课程目标了解LINGO在其他领域中的应用案例学会使用LINGO解决其他领域的问题10.2 教学内容LINGO在其他领域中的应用案例介绍LINGO在其他领域问题求解中的具体应用方法结合实际案例进行操作演示和讲解10.3 教学方法讲授和示范相结合的方式进行教学结合实际案例进行操作演示和讲解10.4 教学活动教师讲解LINGO在其他领域中的应用案例学生观看实际案例操作演示学生跟随教师一起操作LINGO软件,学习解决其他领域问题10.5 教学评估学生参与操作演示,展示对LING重点和难点解析重点环节1:LINGO软件的基本功能和应用领域重点关注内容:LINGO软件的功能特点、应用领域及案例介绍补充说明:详细讲解LINGO软件的各项功能,如线性规划、非线性规划、整数规划等,并通过实际案例展示其在工程、财务、经济管理、交通运输等领域的应用重点环节2:LINGO函数和操作符的使用方法和规则重点关注内容:LINGO函数和操作符的分类、使用方法和规则补充说明:详细介绍LINGO软件中的常用函数和操作符,包括数学函数、逻辑函数、财务函数等,并通过实际案例展示其应用方法重点环节3:线性规划模型的构建和求解重点关注内容:线性规划模型的基本概念、构建方法和求解算法补充说明:通过实际案例,讲解如何构建线性规划模型,包括定义变量、约束条件和目标函数,并介绍常用的求解算法,如单纯形法、内点法等重点环节4:非线性规划模型的构建和求解重点关注内容:非线性规划模型的基本概念、构建方法和求解算法补充说明:通过实际案例,讲解如何构建非线性规划模型,包括定义变量、约束条件和目标函数,并介绍常用的求解算法,如梯度下降法、牛顿法等重点环节5:整数规划模型的构建和求解重点关注内容:整数规划模型的基本概念、构建方法和求解算法补充说明:通过实际案例,讲解如何构建整数规划模型,包括定义变量、约束条件和目标函数,并介绍常用的求解算法,如分支定界法、动态规划法等本教案主要介绍了LINGO软件的基本功能和应用领域、函数和操作符的使用方法和规则,以及线性规划、非线性规划、整数规划等模型的构建和求解方法。
Lingo软件使用指南
Lingo软件使用指南摘要:本文介绍了Lingo软件的基本使用方法。
从最基本的使用到复杂问题的解决,本文给出了比较详细的介绍。
Lingo软件是美国Lindo公司的产品,主要用来求解优化问题。
它是一个非常强大的软件,可以求解大部分优化问题,包括线性规划、二次规划、整数规划、运输问题等,是目前全球应用最广泛的优化软件之一。
这里我们简单介绍它的使用方法。
一进入Lingo如果你的计算机已经安装了Lingo,只需要在桌面上双击Lingo的快捷方式,就可以进入Lingo。
为了使自己的程序易于阅读,经常需要有一些注释,因此在编写程序中,每一行前面有感叹号的表示这一行是注释行,在程序运行中不起作用,希望初学者养成注释的好习惯。
二建立数学模型和 Lingo模型语言例1 在Lingo的命令窗口中输入下面的线性规划模型!目标函数;MAX = 100 * x1 + 150 * x2;!第一个约束;X1<= 100;!第二个约束;X2 <= 120;!第三个约束;X1 + 2 * x2<= 160;!end可有可无;end求解可得全局最优解:Objective value: 14500.00Variable ValueX1 100.0000X2 30.00000从这个例子可以看出,用Lingo软件求解一个简单的优化问题是非常容易的。
我们只需要输入优化问题的两个主要部分:目标函数和约束,就可以直接求解。
对于比较简单的问题,我们可以采取这种直接的方式去求解,但是,对于比较复杂的问题,用这种方式就不现实。
比如下面的例2,这就必须要使用Lingo的模型语言。
例2 一个运输问题假设WWW公司有6个仓库,储存着8个分厂生产所需要的原材料。
要求每一个仓库的供应量不能超过储存量,而且每一个分厂的需求必须得到满足。
问:如何组织运输,使总运输费用最小?已知从6个仓库到8个分厂的运输费用表。
表1 供应表2 需求表3 运输费用Wh5 2 3 9 5 7 2 6 5Wh6 5 5 2 2 8 1 4 3 这个问题是一个典型的优化问题,通常称为运输问题。
优化软件LINGO使用入门
华中农业大学建模基地
-实例1-
模型建立 设用 x1 , x2 分别表示计划生产产品Ⅰ,Ⅱ的数量,可建立模型为:
max f = 2 x1 + 3 x2 x1 + 2 x2 ≤ 8 4 x ≤ 16 s.t. 1 4 x1 ≤ 12 x1 , x2 ≥ 0
华中农业大学建模基地
华中农业大学建模基地
-注意事项-
“>”(或“<”)号与“>=”(或“<=”)功能相同; ( )号与“ ( )功能相同; LINGO模型以“MODEL:”开始,“END”结束; 模型以“ 结束; 模型以 : 开始, 结束 目标函数为“ 目标函数为“MAX=”。不需要写“ST” ; 。不需要写“ 变量与系数间有乘号运算符“ 变量与系数间有乘号运算符“ * ”; 变量名以字母开头,不能超过64个字符 个字符; 变量名以字母开头,不能超过 个字符; 变量名不区分大小写(包括LINGO中的关键字); 中的关键字); 变量名不区分大小写(包括 中的关键字 语句的顺序不重要; 语句的顺序不重要; 行号自动产生或人为定义。目标函数所在行是第一行, 行号自动产生或人为定义。目标函数所在行是第一行, 第二行起为约束条件,约束行名字被放 约束行名字被放“ 第二行起为约束条件 约束行名字被放“〔 〕”中; 中 行中注有“ 符号的后面部分为注释 符号的后面部分为注释; 行中注有“!”符号的后面部分为注释;
Edit|Find (Ctrl+F) 查找
Edit|Match Parenthesis (Ctrl+P) 匹配括号
LINGO|Options (Ctrl+I) 选项设置
Window|Close All (Alt+X) 关闭所有窗口 Help|Contents (F1) 在线帮助
《培训教案LINGO》课件
《培训教案LINGO》课件第一章:LINGO软件简介1.1 教学目标了解LINGO软件的基本功能和应用领域熟悉LINGO软件的用户界面和操作流程1.2 教学内容LINGO软件的起源和发展历程LINGO软件的主要功能和特点LINGO软件的用户界面和操作流程1.3 教学方法讲解演示:通过讲解和演示来介绍LINGO软件的基本功能和操作流程案例分析:通过分析实际案例来展示LINGO软件的应用领域1.4 教学评估课堂练习:学生通过实际操作LINGO软件来完成练习题课后作业:学生完成相关的课后作业来巩固所学知识第二章:LINGO模型的建立2.1 教学目标学会使用LINGO软件建立和编辑模型掌握LINGO模型的基本结构和语法规则2.2 教学内容LINGO模型的基本结构和语法规则变量的定义和赋值约束条件的添加和修改目标函数的设置和优化2.3 教学方法讲解演示:通过讲解和演示来介绍LINGO模型的建立和编辑方法练习操作:学生通过实际操作LINGO软件来练习建立和编辑模型2.4 教学评估课堂练习:学生通过实际操作LINGO软件来完成练习题课后作业:学生完成相关的课后作业来巩固所学知识第三章:LINGO求解与优化3.1 教学目标学会使用LINGO软件进行求解和优化掌握LINGO软件的求解器和优化工具3.2 教学内容LINGO软件的求解器和优化工具求解器的启动和参数设置优化工具的使用方法和技巧3.3 教学方法讲解演示:通过讲解和演示来介绍LINGO软件的求解和优化方法练习操作:学生通过实际操作LINGO软件来练习求解和优化3.4 教学评估课堂练习:学生通过实际操作LINGO软件来完成练习题课后作业:学生完成相关的课后作业来巩固所学知识第四章:LINGO在工程中的应用4.1 教学目标了解LINGO软件在工程中的应用领域学会使用LINGO软件解决工程问题4.2 教学内容LINGO软件在工程中的应用案例分析工程问题的建模方法和技巧LINGO软件在工程优化中的应用4.3 教学方法讲解演示:通过讲解和演示来介绍LINGO软件在工程中的应用案例案例分析:学生通过分析实际案例来学习工程问题的建模和优化方法4.4 教学评估课堂练习:学生通过实际操作LINGO软件来完成练习题课后作业:学生完成相关的课后作业来巩固所学知识第五章:LINGO软件的扩展与提高5.1 教学目标学会使用LINGO软件的扩展功能掌握LINGO软件的高级技巧和应用5.2 教学内容LINGO软件的扩展功能和插件LINGO软件的高级技巧和应用LINGO软件与其他软件的集成和数据交换5.3 教学方法讲解演示:通过讲解和演示来介绍LINGO软件的扩展功能和高级技巧练习操作:学生通过实际操作LINGO软件来练习扩展功能的应用5.4 教学评估课堂练习:学生通过实际操作LINGO软件来完成练习题课后作业:学生完成相关的课后作业来巩固所学知识第六章:LINGO在财务与经济学中的应用6.1 教学目标理解LINGO软件在财务和经济学领域的应用学会使用LINGO软件构建财务和经济模型6.2 教学内容财务和经济问题的基本概念LINGO在财务和经济模型构建中的具体应用案例分析:使用LINGO解决投资决策、成本效益分析等问题6.3 教学方法案例教学:通过分析具体的财务和经济案例,引导学生学会使用LINGO 互动讨论:鼓励学生提出问题,共同探讨解决问题的方法软件操作:现场演示和指导学生如何使用LINGO软件构建模型6.4 教学评估小组项目:学生分组完成一个财务或经济模型,评估其理解和应用能力第七章:LINGO在物流与供应链管理中的应用7.1 教学目标熟悉LINGO软件在物流和供应链管理领域的应用掌握使用LINGO解决物流和供应链问题的高级技巧7.2 教学内容物流和供应链管理的基本概念LINGO在物流和供应链模型构建中的具体应用案例分析:使用LINGO进行运输规划、库存控制和网络设计等7.3 教学方法案例教学:通过分析具体的物流和供应链案例,让学生学会使用LINGO 软件操作:现场演示和指导学生如何使用LINGO软件构建复杂模型互动讨论:鼓励学生提出问题,共同探讨解决问题的方法7.4 教学评估综合项目:学生独立完成一个物流或供应链管理模型,评估其应用能力第八章:LINGO在生产与运营管理中的应用8.1 教学目标了解LINGO软件在生产和运营管理领域的应用学会使用LINGO软件构建生产和运营模型8.2 教学内容生产和运营管理的基本概念LINGO在生产和运营模型构建中的具体应用案例分析:使用LINGO解决生产调度、设备更换和质量控制等问题8.3 教学方法案例教学:通过分析具体的生产和运营案例,引导学生学会使用LINGO软件操作:现场演示和指导学生如何使用LINGO软件构建模型互动讨论:鼓励学生提出问题,共同探讨解决问题的方法8.4 教学评估小组项目:学生分组完成一个生产和运营管理模型,评估其理解和应用能力第九章:LINGO在能源与环境管理中的应用9.1 教学目标认识LINGO软件在能源和环境管理领域的应用学会使用LINGO软件构建能源和环境模型9.2 教学内容能源和环境管理的基本概念LINGO在能源和环境模型构建中的具体应用案例分析:使用LINGO解决能源优化、污染控制和资源分配等问题9.3 教学方法案例教学:通过分析具体的能源和环境案例,让学生学会使用LINGO软件操作:现场演示和指导学生如何使用LINGO软件构建模型互动讨论:鼓励学生提出问题,共同探讨解决问题的方法9.4 教学评估综合项目:学生独立完成一个能源或环境管理模型,评估其应用能力第十章:LINGO软件的综合应用与实践10.1 教学目标掌握LINGO软件在不同领域的综合应用培养解决实际问题的实践能力10.2 教学内容综合案例分析:结合前面章节的内容,选择跨领域的案例进行综合分析实践项目:学生自主选择一个感兴趣的课题,使用LINGO软件构建模型并解决问题经验分享:学生之间互相分享使用LINGO软件的心得和经验10.3 教学方法实践导向:鼓励学生动手实践,自主学习和解决问题指导与反馈:提供指导和建议,帮助学生完成实践项目小组讨论:学生分组讨论,共同完成综合案例分析10.4 教学评估实践项目:评估学生完成实践项目的能力和成果重点和难点解析一、LINGO软件简介环节重点:了解LINGO软件的基本功能和应用领域,熟悉用户界面和操作流程。
基于LINGO的优化算法在运筹管理中的应用
基于LINGO的优化算法在运筹管理中的应用优化算法作为一种高效的数据处理方法,已经被广泛应用于各行各业。
在运筹管理领域中,基于LINGO的优化算法已经成为了一种不可替代的分析工具。
在实际应用中,我们可以通过LINGO优化算法,有效地优化生产流程、物流配送、供应链管理等方面的问题,使得整个企业的经营效益得到明显提升。
一、LINGO优化算法的基本原理LINGO是一种专业的优化算法语言,其主要目的是快速地解决复杂的优化问题。
LINGO主要利用线性规划、整数规划、非线性规划等方法,通过数学模型来优化决策问题。
基于LINGO的优化算法的基本原理就是通过建立数学模型,将现实问题转换成为数学问题。
将整个问题转换成一个标准的数学形式后,LINGO可以更加高效地运用各类优化算法将其求解。
这种方法可以大大提高解决问题的准确性和效率。
二、LINGO优化算法在企业生产流程优化中的应用生产流程是企业生产过程中最为核心的环节,一般来讲,生产流程中存在许多可以优化的环节。
例如,生产调度问题、零部件的优化选配、库存管理等。
这些问题的优化都可以运用基于LINGO的优化算法进行求解。
例如,对于生产调度问题,我们可以通过LINGO建立一个优化模型,考虑生产过程中的资源利用率、时间效率等因素,系统地推导出生产调度的最优方案。
通过模型计算结果,我们可以得到最适合企业生产排程的生产方案,并在实践中应用。
三、LINGO优化算法在物流配送中的应用物流配送是企业供应链管理中非常重要的一环。
通过LINGO优化算法,我们可以对物流配送过程中的问题进行求解。
例如,考虑如何优化物流线路、改善配送效率、降低运输成本等。
对于物流配送中的问题,我们可以运用LINGO算法建立一个数学模型,通过模拟尝试,优化各环节,获得最合理的运输方案,进一步优化企业运营成本,并为企业提高利润效益。
四、LINGO优化算法在供应链管理中的应用供应链管理是现代企业运营活动中不可缺少的环节。
LINGO使用大全
目录第一章引言······························································ 1.1 优化模型的基本概念·······································1.1.1 优化模型的一般形式··································1.1.2 可行解与最优解······································1.1.3 优化模型的基本类型···································1.2 优化问题的建模实例·········································1.2.1 线性规划模型··········································1.2.2 二次规划模型··········································1.2.3 非线性规划模型·········································1.2.4 整数规划模型···········································1.2.5 其他优化模型···········································1.3 LINDO/LINGO软件简介········································1.3.1 LINDO/LINGO软件的基本功能···························1.3.2 LINDO/LINGO软件的求解过程···························1.3.3 建立LINDO/LINGO优化模型需要注意的几个基本问题·······习题1··························································第二章 LINDO软件的基本使用方法··································2.1LINDO入门··················································2.1.1LINDO软件的安装过程··································2.1.2编写一个简单的LINDO程序······························2.1.3一些注意事项···········································2.2敏感性分析··················································2.3整数线性规划的求解··········································*2.4 二次规划的求解··············································*2.5 LINDO的主要菜单命令········································2.5.1 文件主菜单·············································2.5.2 编辑主菜单·············································2.5.3 求解主菜单·············································2.5.4 报告主菜单············································*2.6 LINDO命令窗口··············································2.6.1 INFORMATION(信息类命令)·····························2.6.2 INPUT(输入类命令)····································2.6.3 DISPLAY(显示类命令)··································2.6.4 OUTPUT(输出类命令)···································2.6.5 SOLUTION(求解类命令)·································2.6.6 PROBLEM EDITING(编辑类命令)·······················2.6.7 QUIT(退出类命令)······································2.6.8 INTEGER,QUADRATIC,AND PARAMETRIC PROGRAMS(整数,二次与参数规划命令)····························2.6.9CONVERSATIONAL PARAMETERS(对话类命令)··········2.6.10 USER SUPPLIED ROUTINES(用户过程类命令)·········2.6.11 MISCELLANEOUS(其他命令)···························*2.7 LINGO命令脚本文件·······································附录 MPS格式数据文件········································习题2·························································第三章 LINGO软件的基本使用方法··································3.1LINGO入门···············································3.1.1LINGO软件的安装过程和主要特色··················3.1.2在LINGO中使用LINGO模型·······················3.1.3编写一个简单的LINGO程序························3.2在LINGO中使用集合······································3.2.1集合的基本用法和LINGO模型的基本要素············3.2.2基本集合与派生集合·······························3.2.3稠密集合与稀疏集合·······························3.2.4集合的使用小结···································3.3运算符和函数·············································3.3.1运算符及优先级···································3.3.2基本的数学函数···································3.3.3集合循环函数·····································3.3.4集合操作函数·····································3.3.5变量定界函数·····································3.3.6财务会计函数·····································3.3.7概率论中的相关函数·······························3.3.8文件输入输出函数·································3.3.9结果报告函数·····································3.3.10其他函数·········································3.4LINGO的主要菜单命令·····································3.4.1文件主菜单·······································3.4.2编辑主菜单·······································3.4.3LINGO系统(LINGO)主菜单·······················3.5LINGO命令窗口···········································习题3························································第四章 LINGO软件与外部文件的接口································4.1 通过WINDOWS剪贴板传递数据···························4.1.1粘贴命令的用法·······························4.1.2特殊粘贴命令的用法······························4.2通过文本文件传递数据···································4.2.1通过文本文件输入数据····························4.2.2通过文本文件输出数据····························4.3通过电子表格文件传递数据·································4.3.1在LINGO中使用电子表格文件的数据················4.3.2将LINGO模型嵌入、链接到电子表格文件中···········4.4LINGO命令脚本文件·······································附录 LINGO出错信息··········································习题4························································第五章生产与服务运作管理中的优化问题·······························5.1 生产与销售计划问题·······································5.1.1 问题实例·········································5.1.2 建立模型·········································5.1.3 求解模型·········································5.2 有瓶颈设备的多级生产计划问题·····························5.2.1 问题实例·········································5.2.2 建立模型·········································5.2.3 求解模型·········································5.3 下料问题················································5.3.1 钢管下料问题·····································5.3.2 易拉罐下料问题···································5.4 面试顺序与消防车调度问题································5.4.1 面试顺序问题·····································5.4.2 消防车调度问题···································5.5 飞机定位和飞行计划问题··································5.5.1 飞机的精度定位问题·······························5.5.2 飞机计划问题·····································习题5························································第六章经济与金融中的优化问题·····························.6.1经济均衡问题及应用······································6.1.1单一生产商、单一消费者的情形······················6.1.2两个生产商、两个消费者的情形······················6.1.3拍卖与投标问题···································6.1.4交通流均衡问题···································6.2投资组合问题············································6.2.1基本的投资组合模型·······························6.2.2存在无风险资产时的投资组合模型···················6.2.3考虑交易成本的投资组合模型·······················6.2.4利用股票指数简化投资组合模型·····················6.2.5其他目标下的投资组合模型·························6.3市场营销问题············································6.3.1新产品的市场预测·································6.3.2产品属性的效用函数·······························6.3.3机票的销售策略···································习题6························································第七章图论与网络模型······································7.1运输问题与转运问题······································7.1.1运输问题········································7.1.2指派问题·········································7.1.3转运问题········································7.2最短路问题和最大流问题··································7.2.1最短路问题·······································7.2.2最大流问题······································7.2.3最小费用最大流问题······························。
Lingo软件在最优化问题中的应用
• endsets
• 这里allowed定义为product,machine,week的派生集,其 组成成员如下:
(A,M,1),(A,M,2),(A,N,1),(A,N,2)
(B,M,1),(B,M,2),(B,N,1),(B,N,2) 三、模型的数据部分; 数据部分以关键字“data:”开始,以关键字"enddata"结束。在这里,可 以指定集成员、集的属性。其语法如下:
在Lingo模型中使用集之前,必须事先定义。 集以关键字“sets:”开始,以“endsets”结束。
• 1、原始集的定义 • 用下面的语法定义一个原始集: • setname[/member_list][:attribute_list]; • (1)若要一列出集成员:则用显式罗列成员,中间用空 格或逗号隔开,也可混合使用。如: • set: • students/Mike Peter,Rose,Carl/:sex,age;
• 2、派生集的定义 • 定义一个派生集,用如下语法: • setname(parent_set_list)[/member_list/][:attribute_list]; • 其中parent_set_list是已定义集的列表,多个时必须用逗 号隔开。如: • set:
product/A B/; machine/M N/; • week/1..2/; • allowed(product,machine,week):x;
• X=1,2,3; • Y=4,5,6; • enddata
• 四、Lingo软件使用的注意事项。 • (1)LINGO中不区分大小写字母,变量(和行名)可以 使用不超过32个字符表示,且必须以字母开头。 • (2)在命令方式下(Command Window中),必须先输 入MODEL:表示开始输入模型。LINGO中模型以 “MODEL:”开始,以“END”结束。对简单的模型,这 两个语句也可以省略。 •
LINGO优化软件
1、LINGO: 、 : 掌握集合(SETS)的应用;(重点 的应用; 重点 掌握集合 的应用 重点) 正确阅读求解报告; 正确阅读求解报告; 正确理解求解状态窗口; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ;(提高 提高) 学会设置基本的求解选项 提高 掌握与外部文件的基本接口方法. 提高) 掌握与外部文件的基本接口方法 (提高
所有决策变量为0-1变量 所有决策变量为 变量
4 5
即xij=1, 或xij=0 ,
Min
4
Z = ∑ ∑ c ij x ij
j =1 i =1
∑x
j =1
5
ij
≤ 1, i = 1,L5
= 1, j = 1, L 4
∑x
i =1
ij
4、非线性规划问题 整数非线性规划模型
Min x1 + x 2 + x3
2、整数规划(Integer Programming,简记 ) 整数规划( ,简记IP)
Max z = 2 x1 + 3 x 2 + 4 x3
s. t. 1.5x1 + 3x2 + 5x3 ≤ 600
280x1 + 250x2 + 400x3 ≤ 60000
x1 , x2 , x3为非负整数
3、0-1规划模型 、 规划模型
优化模型
实际问题中 Min (或Max ) z = f ( x ), x = ( x1 , Lx n )T 的优化模型 s.t. g i ( x ) ≤ 0, i = 1,2, L m x~决策变量 决策变量 数学规划 线性规划(LP) 线性规划 二次规划(QP) 二次规划 非线性规划(NLP) 非线性规划 连续规划 0-1整数规划 整数规划 一般整数规划 纯整数规划(PIP) 纯整数规划 混合整数规划(MIP) 混合整数规划 f(x)~目标函数 目标函数 gi(x)≤0~约束条件 ≤ 约束条件
LINGO软件及其应用
LINGO软件及其应用LINGO 软件及其应用一、求解线性规划例题1:目标函数:max z=2x1+3x2约束条件:x1+2x2<=84x1<=174x2<=13x1,x2>=0输入语句:model:max=2*x1+3*x2;x1+2*x2<8;4*x1<17;4*x2<13;end说明:1)问题模型由MODEL:命令开始,END 结束,对简单模型可以省略。
2)目标函数必须由“min =”或“max =”开头。
3)分号是LINGO的分隔符。
LINGO中的每一行都以分号结束,如果缺少,模型将无法求解。
若一个命令或语句一行写不下,可以分多行写,但是,最后结束命令时,一定别忘了打个分号“;”,一行内也可写多个命令,只要每个用分号分开即可。
4)语句中乘号(*)不能省略,支持()的输入。
5)LINGO中<与<=均代表<=,>与>=也均代表>=。
6)LINGO中的注解必须用感叹号“!”开始,用分号结束。
在感叹号和分号之间的所有内容都将被LINGO忽略。
注释可以占据多行,也可以插入LINGO 表达式之中。
7)LINGO的命令从来不区分大小写,当你在LINGO中定义变量时,每个变量都要以26个字母开始,后面可跟数字或者下划线,最多可以是32个字符。
8)软件默认决策变量是非负的。
如果需要一个变量取负数、整数或一定范围内的值,可以通过变量限定函数加以限制。
@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的约束。
求解结果如下:Global optimal solution found.Objective value: 14.12500Total solver iterations: 1Variable Value Reduced Cost X1 4.250000 0.000000 X2 1.875000 0.000000Row Slack or Surplus Dual Price1 14.12500 1.0000002 0.000000 1.5000003 0.000000 0.12500004 5.500000 0.000000例题2 一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车or Surplus Dual Price1 3360.000 1.00000020.000000 48.0000030.000000 2.000000440.00000 0.000000Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 72.00000 24.00000 8.000000X2 64.00000 8.000000 16.00000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 50.00000 10.00000 6.6666673 480.0000 53.33333 80.000004 100.0000 INFINITY 40.00000结果告诉我们:这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1, 30桶牛奶生产A2,可获最大利润3360元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5:目标函数 这个模型的目标函数是使得总成本(运输总成本加上运 作成本的总和)达到最小。这可以用下面的表达式计算 [TTL_COST]MIN=@SUM(ARC:COST*VOL)+ @SUM(PLANTS:FCOST*OPEN); 目标函数里运输总成本是@SUM(ARC:COST*VOL); 而运作成本总和是@SUM(PLANTS:FCOST*OPEN) 6:约束条件 这个模型有两种类型的约束:第一种是每个客户必须 得到足够的产品以满足需求;第二种是每个工厂的运 输量不能超过它的生产量。 下面的表达式保证所有客户都可以获得足够的产品 @FOR(CUSTOMERS(J):[DEMAND] @SUM(PLANTS(I):VOL(I,J))>=DEM(J));
Lingo优化软件及其应用
Lingo Optimal Software and its Applications
中国科学院研究生院
Lingo设计高级模型
1:确定性模型
最短路问题 确定最佳的工厂位置 飞行计划问题(来源于实际)
2:随机性模型
离散型随机变量的概率分布—二项分布 航空机票超订票问题 Erlang排队模型
P{ X 4} P{ X 0} P{ X 1} P{ X 2} P{ X 3} P{ X 4}
k P{ X k } C 20 0.2 1 0.2 k 20 k
, k 0,1,2,3,4
t =@pbn(0.2,20,4);
Feasible solution found at iteration: Variable Value T 0.6296483 0
飞
行
计
划
的
原
始
数
据
第4月 185.0
第1月
新飞机价格 闲置的熟练飞行员 报酬 教练和新飞行员报 酬(含培训费用) 执行飞行任务的熟 练飞行员报酬
第2月 195.0
第3月 190.0
200.0
7.0
10.0 9.0
6.9
9.9 8Leabharlann 96.89.8 9.8
6.7
9.7 9.7
休假期间的熟练飞 行员报酬
D(V1,V2) F(V2)
V1 D(V1,V3)
V3
V4 F(V3)
V5
2:集合 只建立一个基本集合CITIES,它代表了网络里的城市。 我们用这个基本集合派生出一个集合ROADS是一个疏 集。 3:变量 定义在CITIES集合上的属性F为每一个城市到终点城 市的最短距离。定义在ROADS集合上的属性D表示两 个城市之间的直达距离。 4:公式 我们使用下面的语句计算各城市到城市10的最短距离: @FOR( CITIES( i)| i #LT# @SIZE( CITIES): F( i) = @MIN( ROADS( i, j): D( i, j) + F( j)) );
约
束
条
件
(1)飞机数量限制。 4个月中执行飞行任务的飞机分别为100,150, 150,200(架),但只有80,120,120,160 (架)能够返回供下个月使用。 第一个月:100 第二个月:150 第三个月:150 第四个月:200 + + + + y1 y2 y3 y4 = = = = 110; 80 + y1 + x1; 120 + y2 + x2; 120 + y3 + x3;
3:集合 在这个模型里,我们建立了两个基本集合:一个是 PLANTS(工厂)集合;一个是CUSTOMER(客户)集合。 用这两个集合,我们建立了一个密集ARCS,它是由 工厂集合与客户集合相乘而得。我们用个集合来表达 工厂与客户之间的运输线路。 4:变量 在这个模型里,我们有两类决策变量。定义在集合 ARCS上的属性VOL代表了工厂到客户每一个线路上 的运输量;定义在集合PLANTS上的属性OPEN是用 于表示哪些工厂将开工。具体地说,如果工厂p将开工, 则OPEN(p)的值为1,否则为0。属性OPEN的元素将 用下式定义为二元0/1变量: @FOR(PLANTS:@BIN(OPEN));
用Lingo确定最佳的工厂位置
1:背景 工厂定位模型是运输问题的推广。工厂定位问题具有 较大的决策范围,工厂位置是变量。厂商很可能会遇 到这样一类问题:在满足顾客对产品要求的前提下使 总运输成本达到最小。 2:问题 某公司计划增加一些产品加工点(工厂),有三个位置可 供选择。现有四个客户需要该公司的产品且需求量已 知。在每一个位置建立工厂都有与其关联的月运作费 用,从工厂到客户的运输成本也不相同。此外,工厂 的运输能力也是有限的,不得突破它的生产能力。现 在需要决定哪些工厂要开工?开工的工厂给每一个客 户运送多少产品使得总运输成本和工厂月运作费用之 和最少。
(以第二次世界大战中的实例为背景,简化) 在甲乙双方的一场战争中,一部分甲方部队被乙方部队包 围长达4个月。由于乙方封锁了所有水陆交通通道,被包围的甲 方部队只能依靠空中交通维持供给。运送4个月的供给分别需要 2,3,3,4次飞行,每次飞行编队由50架飞机组成(每架飞机 需要3名飞行员),可以运送10万吨物资。每架飞机每个月只能 飞行一次,每名飞行员每个月也只能飞行一次。在执行完运输 任务后的返回途中有20%的飞机会被乙方部队击落,相应的飞行 员也因此牺牲或失踪。 在第一个月开始时,甲方拥有110架飞机和330名熟练的飞 行员。在每个月开始时,甲方可以招聘新飞行员和购买新飞机。 新飞机必须经过一个月的检查后才可以投入使用,新飞行员必 须在熟练飞行员的指导下经过一个月的训练才能投入飞行。每 名熟练飞行员可以作为教练每个月指导20名飞行员(包括他自 己在内)进行训练。每名飞行员在完成一个月的飞行任务后, 必须有一个月的带薪假期,假期结束后才能再投入飞行。 各项费用如下表,请安排一个飞行计划
MODEL:! 工厂定位问题; SETS: PLANTS / P1, P2, P3/: FCOST, CAP, OPEN; CUSTOMERS / C1, C2, C3, C4/ : DEM; ARCS( PLANTS, CUSTOMERS) : COST, VOL; ENDSETS DATA: FCOST = 91, 70, 24; ! 每个工厂的月运作费用; CAP = 39, 35, 31; ! 每个工厂的生产能力; DEM = 15, 17, 22, 12; ! 每个客户的月需求; ! 单位产品的运输成本; COST = 6, 2, 6, 7, 4, 9, 5, 3, 8, 8, 1, 5; ENDDATA ! 目标函数; [TTL_COST] MIN = @SUM( ARCS: COST * VOL) + @SUM( PLANTS: FCOST * OPEN); !需求约束; @FOR( CUSTOMERS( J): [DEMAND] @SUM( PLANTS( I): VOL( I, J)) >= DEM( J) ); ! 供应约束; @FOR( PLANTS( I): [SUPPLY] @SUM( CUSTOMERS( J): VOL( I, J)) <= CAP( I) * OPEN( I) ); !限制OPEN为0/1变量; @FOR( PLANTS: @BIN( OPEN)); END
对每一个客户,我们计算出接收运输量的总和,并且 让它大于或等于客户的需求量。为了限制工厂的运输 量不超过它的生产能力: @FOR(PLANTS(I):[SUPPLY] @SUM(CUSTOMERS(J):VOL(I,J))<= CAP(I)*OPEN(I)); 对于每一个客户,计算出了运输量的总和,并且让它 小于或等于工厂的生产能力乘上表示工厂开工与否的 指示器OPEN。
!x<=4时的概率;
t4_all = @pbn(0.2,20,4) ;
!x=0时的概率; t0 =@pbn(0.2,20,0); !x=1时的概率; t1 = @pbn(0.2,20,1) - t0;
!x=2时的概率;
t2 = @pbn(0.2,20,2) - t1-t0; !x=3时的概率; t3 = @pbn(0.2,20,3) - t2-t1-t0; !x=4时的概率; t4 = @pbn(0.2,20,4) -t3-t2-t1-t0;
航空机票超订票问题 某航空公司执行两地的飞行任务。已知飞 机的有效载客量为150人。按民用航空管理有关 规定:旅客因有事或误机,机票可免费改签一 次,此外也可在飞机起飞前退票。航空公司为 了避免由此发生的损失,采用超量订票的方法, 即每班售出票数大于飞机载客数。但由此会发 生持票登机旅客多于座位数的情况,在这种情 况下,航空公司让超员旅客改乘其它航班,并 给旅客票价的20%作为补偿。现假定两地的机 票价格为1500元,每位旅客有0.04的概率发生 有事、误机或退票的情况,问航空公司多售出 多少张票使该公司的预期损失达到最小?
约
束
条
件
(2)飞行员数量限制。 4个月中执行飞行任务的熟练飞行员分别为300, 450,450,600(人),但只有240,360,360, 480(人)能够返回(下个月一定休假)。 第一个月:300+0.05*u1+v1 第二个月:450+0.05*u2+v2 第三个月:450+0.05*u3+v3 第四个月:600+0.05*u4+v4 = = = = 330; u1+v1; u2+v2+240; u3+v3+360;
5.0
4.9
4.8
4.7
定
义
决
策
变
量
设4个月开始时甲方新购买的飞机数量分别 为x1,x2,x3,x4架,闲置的飞机数量分别为 y1,y2,y3,y4架。4个月中,飞行员中教练和新 飞行员数量分别为u1,u2,u3,u4人,闲置的熟练 飞行员数量分别为v1,v2,v3,v4人。