当前位置:文档之家› LINGO在数学建模中的应用

LINGO在数学建模中的应用


LINGO编程(建模)语言
• 例 运输问题 LINGO模型
MIN=@SUM(LINKS(I,J):C(I,J)*X(I,J); @FOR(WH(I):@SUM(VD(J):X(I,J)<=AI(I)); @FOR(VD(J):@SUM(WH(I):X(I,J)=DJ(J)); END 求解Lingo|Solve Solition Report Golbal optimal solution found at step:17 Objective value: 664.0000 Variable value X(w1,v1) 0.000 X(w1,v2) 19.000 ……………….. Reduced cost (缩减成本系数) 5.000000 0.000000
集合的类型
setname(parent_set_list) [/member_list/] [: attribute_list];
集合
setname [/member_list/] [: attribute_list];
派生集合 稀疏集合
基本集合
稠密பைடு நூலகம்合 直接列举法 隐式列举法
元素列表法 元素过滤法
需要掌握的几个重要方面
掌握集合(SETS)的应用; 的应用; 掌握集合 的应用 正确阅读求解报告; 正确阅读求解报告; 正确理解求解状态窗口; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 学会设置基本的求解选项 掌握与外部文件的基本接口方法
LINGO在数学建模中的应用
• LINGO的基本用法
min z =
∑ ∑
i=1
6
8
j =1
c ij x ij ,
8 ∑ x ij ≤ a i , i = 1 , L , 6 , j=1 6 s . t . ∑ x ij = d j , j = 1 , L , 8 , i=1 x ij ≥ 0 , i = 1 , L , 6 , j = 1 , L , 8 .
LINGO的菜单
3.LINGO • Solution(求解结果)
打开求解结果对话框,文本或图表方式查看结果
• Range(灵敏性分析)
产生当前模型的灵敏性分析报告:最优解不变目标函数系 数的变化范围;影子价格和缩减系数不变,约束条件右端常 数的变化范围(用时需激活)
• Options(选项设置) • Generate(生成模型展开式) • Picture(生成图形)
LINGO的菜单
3.LINGO • Debug(调试) • Model Statistics(模型资料统计) • Look(查看)
LINGO的菜单
4.Window • Command Window(命令行窗口) • Status Window(状态窗口) 5.Help • Help Topics(帮助主题) • Register(在线注册) • Auto Update(自动更新) • About Lingo(关于Lingo)
Golbal optimal solution found at iteration:2 Objective value: 29000.00 Variable value Reduced cost (缩减成本系数)
X1 100.000 0.000000 X2 30.000 0.000000 Row Slack (松池) or Surplus (剩余) Dual Price(影子价格) 1 29000.00 1 2 0.000000 50.00000 3 90.00000 0.000000 4 0.000000 150.0000 注 Row 模型中行号 Slack=右-左(<=) Surplus=左-右(>=)
3.关系运算符 = 表达式左右相等 <= 表达式左边小于或等于右边 >= 表达式左边大于或等于右边 注:Lingo没有单独的<和> A<B A + ε <= B, ε 是一个小的正数
模型窗口”LINGO Model-LINGO1”用于输入模型 可用基本类似数学公式的形式输入小模型
•LINGO的语法规则
1.最大值MAX=…,最小值MIN=… 2.语句必须以分号”;”结束 每行可多个语句 语句可跨行 3.变量名由字母、数字和下划线组成 以字母开头 长度 不超32个字符 不区分大小写 4.默认决策变量非负 其他要求可做说明 5.模型以MODEL:开头,以END结束
表1 各供货栈到8个客户的单位运价
V1 V2 V3 V4 V5 V6 V7 V8
W1 W2 W3 W4 W5 W6
6 4 5 7 2 5
2 9 2 6 3 5
6 5 1 7 9 2
7 3 9 3 5 2
4 8 7 9 7 8
2 5 4 2 2 1
5 8 3 7 6 4
9 2 3 1 5 3
LINGO编程(建模)语言 • 例 运输问题 数学模型
月份型 monthM..month OCT..JAN N 年份- monthYearM..m 年份 月份型 onthYearN OCT2001..JA N2002
LINGO编程(建模)语言 • LINGO模型的基本组成 2.数据初始化部分(数据段) LINGO建模语言通过数据初始化部分来实现对已知 属性赋予初始值 数据初始化部分以语句DATA:开始,以语句 ENDDATA结束 如:DATA:
LINGO编程(建模)语言
• 例 运输问题 LINGO模型
MODEL: SETS: WH/W1..W6/:AI;VD/V1..V8/:Dj; LINKS(WH,VD):C,X; ENDSETS DATA: AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38; C=6,2,6,7,4,2,5,9 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,5,5,8,1,4,3 ENDDATA
LINGO在数学建模中的应用
吉林大学数学学院 全国大学生数学建模竞赛吉林赛区 组委会
LINGO在数学建模中的应用
LINGO的主要功能和特点
1.求解线性规划和非线性规划问题 2.模型输入简练直观 3.运行速度快 计算能力强 4.内置建模语言 提供内部函数 较少语句直观描述大 规模优化模型 5.引入集合 容易建模 6.数据交换方便(与EXCEL和数据库)
• 例 工厂有两条生产线,分别生产M和P两种型号的 产品,利润分别为200元/个和300元/个,生产能 力分别为100和120,生产一个产品分别需1个和2 个劳动日,工厂每天能提供160个劳动日。假设原 材料不受限制,如何安排生产计划,利润最大。 设生产计划为生产x1个M和x2个P,数学模型为
max z = 200 x1 + 300 x 2 x1 ≤ 100, x 2 ≤ 120 s.t. x1 + 2 x 2 ≤ 160, x1 ≥ 0, x 2 ≥ 0.
Lingo运算符
1.算术运算符 ^乘方,*乘,/除,+加,-减 2.逻辑运算符
分 类 运算符 #EQ# #NE# 作 用 运算对象是两个数 运算对象是两个数 两个运算对象相等时为真,否则为假 两个运算对象不相等时为真,否则为假
运算对象是两个数 运算对象是两个数 运算对象是两个数 运算对象是两个数 对象是逻辑值或 表达式
LINGO编程(建模)语言
• LINGO模型的基本组成 1.集合定义部分
集合是一组相关对象构成的组合,代表模型中的实际事物,并与数学变 量和常量联系起来,实际问题到数学问题的抽象,集合使用前应定义,内 容为:集合名称、集合内的成员、集合的属性(命名规则同变量) 初始集合:集合名称/集合内的成员/:集合的属性 如:WH/W1..W6/:AI;VD/V1..V8/:Dj 衍生集合:集合名称 对应的初始集合 集合成员 集合的属性 集合名称( 对应的初始集合,对应的初始集合): 集合的属性 如:LINKS(WH,VD):C,X; 集合定义部分以语句SETS:开头,以语句ENDSETS结束
AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43, 38; C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 … ENDDATA
LINGO编程(建模)语言
• LINGO模型的基本组成 3.目标函数和约束条件 内部函数:@SUM,@FOR
@SUM是LINGO的内部函数 功能是对某个集合的所有成员 是 的内部函数,功能是对某个集合的所有成员 的内部函数 求指定表达式的和,有两个参数 其一是集合名称,指定对该 有两个参数,其一是集合名称 求指定表达式的和 有两个参数 其一是集合名称 指定对该 集合的所有成员求和,其二是一个表达式 其二是一个表达式,表示求和运算对 集合的所有成员求和 其二是一个表达式 表示求和运算对 该表达式进行. 该表达式进行 @FOR是LINGO的内部函数 功能是对某个集合的所有成员 的内部函数,功能是对某个集合的所有成员 是 的内部函数 分别派生一个约束表达式有两个参数,其一是集合名称 其一是集合名称,表 分别派生一个约束表达式有两个参数 其一是集合名称 表 示对该集合的所有成员分别派生一个约束表达式,其二是 示对该集合的所有成员分别派生一个约束表达式 其二是 约束表达式的具体内容. 注: :@SUM和@FOR可以嵌套使用 和 可以嵌套使用
集合元素的隐式列举 集合元素的隐式列举
类型 隐式列举格式 数字型 1..n 字符- stringM..stringN 字符 数字型 星期型 dayM..dayN 示例 1..5 Car101..car20 8 MON..FRI 示例集合的元素 1, 2, 3, 4, 5 Car101, car102, … , car208 MON, TUE, WED, THU, FRI OCT, NOV, DEC, JAN OCT2001, NOV2001, DEC2001, JAN2002
相关主题