lingo模型简介(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模型代码如下: 模型代码如下: max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100;
“Reduced Cost”列出最优单纯形表中判别数所在行 列出最优单纯形表中判别数所在行 的变量的系数,表示当变量有微小变动时, 的变量的系数,表示当变量有微小变动时 目标函数的 变化率。 变化率。 “Slack or Surplus”给出松驰变量的值 给出松驰变量的值 “DUAL PRICE”(对偶价格)表示当对应约束有微 (对偶价格) 小变动时, 目标函数的变化率。 小变动时 目标函数的变化率。 若其数值为p, 若其数值为p, 表示对应约束中不等式右端项若增加 1 个单位,目标函数将增加 个单位(max型问题) 个单位,目标函数将增加p个单位 个单位( 型问题) 型问题 DUAL PRICE 的值为 表示对应约束中不等式右 的值为0, 端项的微小扰动不影响目标函数。 端项的微小扰动不影响目标函数。
一奶制品加工厂用牛奶生产A1,A2两种奶制品, 两种奶制品, 例1.4 一奶制品加工厂用牛奶生产 两种奶制品 1桶牛奶可以在甲车间用 小时加工成 公斤 ,或者 桶牛奶可以在甲车间用12小时加工成 公斤A1, 桶牛奶可以在甲车间用 小时加工成3公斤 在乙车间用8小时加工成 公斤A2。根据市场需求, 小时加工成4公斤 在乙车间用 小时加工成 公斤 。根据市场需求,生 产的A1,A2全部能售出,且每公斤 获利 元,每公 全部能售出, 获利24元 产的 全部能售出 且每公斤A1获利 获利16元 现在加工厂每天能得到50桶牛奶的供 斤A2获利 元。现在加工厂每天能得到 桶牛奶的供 获利 每天正式工人总的劳动时间480小时,并且甲车 小时, 应,每天正式工人总的劳动时间 小时 间每天至多能加工100公斤 ,乙车间的加工能力没 公斤A1, 间每天至多能加工 公斤 有限制。试为该厂制订一个生产计划, 有限制。试为该厂制订一个生产计划,使每天获利最 大。
sets: setname /member_list / :attribute_list;
集成员) (集名) (集成员) 集名) (成员的属性) 成员的属性)
endsets 例2.1 sets: red/a b c d/:w, h; endsets
隐式罗列成员语法: 隐式罗列成员语法:
setname/member1..memberN/: attribute_list;
字符-数字型 car101..car208 字符 数字型 MON..FRI OCT..JAN OCT2008..JAN 2009
例2.2 sets: word/a1..a5/:x, y; endsets
2.定义派生集 定义派生集 setname(parent_set_list)[/member_list/][:attribute_list];
1.定义原始集 定义原始集 以关键字“ 开始, 结束。 以关键字“sets:”开始,以“endsets”结束。 开始 结束 语法: 语法: setname[/member_list /][:attribute_list]; 注意: 表示该部分内容可选。 注意:用“[ ]”表示该部分内容可选。 表示该部分内容可选 setname:集名, :集名, 命名规则:以英文字母或下划线开头,由英文字母、 命名规则:以英文字母或下划线开头,由英文字母、 下划线、数字组成;总长度不超过32个字符的字符串, 下划线、数字组成;总长度不超过 个字符的字符串, 个字符的字符串 且不区分大小写。 且不区分大小写。 member_list是集成员列表, 是集成员列表, 是集成员列表 显式罗列和 两种方式。 可采取显式罗列 隐式罗列两种方式 可采取显式罗列和隐式罗列两种方式。
求解如下的LP问题 问题: 例1.1 求解如下的 问题: 在模型窗口中输入如下代码: 在模型窗口中输入如下代码: min 2 x + 3 x
1 2
s.t x1 + x2 ≥ 350 x1 ≥ 100 2 x1 + x2 ≤ 600 x1 , x2 ≥ 0
min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; x1>=0; x2>=0;
LINGO程序(模型)的框架: 程序(模型)的框架: 程序
(1)集合段 集合段 (2)数据段 数据段 (3)优化目标与约束段 优化目标与约束段 (4)初始段 初始段 (5)数据预处理段 数据预处理段
LINGO软件的求解过程 软件的求解过程
1. 确定常数 2. 识别类型 LINGO预处理程序 预处理程序 LP QP NLP ILP IQP 线性优化求解程序 1. 单纯形算法 2. 内点算法 选) 内点算法(选 IP 分枝定界管理程序 INLP
LINGO软件与数学建模 LINGO软件与数学建模
一、LINGO软件简介 软件简介
LINGO(linear interactive and general optimiuzer) 的基本含义是交互式的线性和离散化求解器。 的基本含义是交互式的线性和离散化求解器。 最初是由芝加哥大学的Linus Schrage教授于 教授于1980年 最初是由芝加哥大学的 教授于 年 开发的. 开发的 美国LINGO系统公司 主要产品有: 系统公司,主要产品有 美国 系统公司 主要产品有: LINDO,LINGO, LINDO API等。 , , 等 最大特色:允许优化问题中的决策变量为整数, 最大特色:允许优化问题中的决策变量为整数,即可 求解整数规划,而且执行速度快。 求解整数规划,而且执行速度快。
LINGO内置了一种建立最优化模型的语言, 内置了一种建立最优化模型的语言, 内置了一种建立最优化模型的语言 可以简便地表达大规模问题,利用LINGO高效的 可以简便地表达大规模问题,利用 高效的 求解器可快速求解并分析结果。 求解器可快速求解并分析结果。
不同版本LINGO对求解规模的限制 对求解规模的限制 不同版本 版本 演示版 求解包 高级版 超级版 工业版 扩展版 变量总数 整数变量数 300 500 2000 8000 32000 无限 30 50 200 800 3200 无限 非线性变量数 30 50 200 800 3200 无限 约束数 150 250 1000 4000 16000 无限
sets: num_i/1..2 /; num_j/1..3/; link(num_i,num_j, num_i):x; endsets
setname(parent_set_list)[/member_list/][:attribute_list]; 如果限制派生集的成员, 如果限制派生集的成员,使它成为父集成员所 有组合构成的集合的一个子集, 有组合构成的集合的一个子集,这样的派生集成为 稀疏集。 稀疏集。 派生集成员的声明也可以放在数据部分。 派生集成员的声明也可以放在数据部分。 一个派生集的成员列表有两种方式生成: 一个派生集的成员列表有两种方式生成: ①显式罗列; 显式罗列; 设置成员资格过滤器。 ②设置成员资格过滤器。
非线性优化求解程序 1、顺序线性规划法(SLP) 、顺序线性规划法 2、广义既约梯度法 、广义既约梯度法(GRG) (选) 选 3、多点搜索(Multistart) (选) 、多点搜索 选
开始运行LINGO系统时,会得到下面的一个窗口: 系统时,会Leabharlann Baidu到下面的一个窗口: 开始运行 系统时
外层是主框架窗口,包含了所有菜单命令和工具条, 外层是主框架窗口,包含了所有菜单命令和工具条, 在主窗口内的标题为LINGO Model – LINGO1 在主窗口内的标题为 的窗口是LINGO的默认模型窗口,建立的模型 的默认模型窗口, 的窗口是 的默认模型窗口 都要在该窗口内编码实现。 都要在该窗口内编码实现。
集成员) (集名) (已定义集列表) (集成员) 集名) 已定义集列表) (成员的属性) 成员的属性)
例2.3 sets: pd/A /; mch/M N/; al(pd,mch):x; endsets al集的成员 (A,M),(A,N) 集的成员: 集的成员
注: (1)parent_set_list ) 中的集多个时, 中的集多个时,必须用逗 号隔开。 号隔开。 (2)派生集的父集既可以是 派生集的父集既可以是 原始集, 原始集,也可以是其它的 派生集。 派生集。
然后点击工具条上的按钮
即可。 即可。
x2 + y2 = 2 例1.2 求解非线性方程组 2 x2 + x + y2 + y = 4
model: x^2+y^2=2; 2*x^2+x+y^2+y=4; end 结果: 结果: Feasible solution found at iteration: 0 Variable Value X 0.454336 Y 1.339247
setname(parent_set_list)[/member_list/][:attribute_list]; 成员列表被忽略时, 成员列表被忽略时,派生集成员由父集成员所 有的组合构成,这样的派生集成为稠密集 稠密集。 有的组合构成,这样的派生集成为稠密集。 例2.4 sets: num_i/1..2 /; num_j/1..3/; link(num_i,num_j):x; endsets
二、LINGO中集 中集 集是一群相联系的对象,这些对象也称为集的成员。 集是一群相联系的对象,这些对象也称为集的成员。 成员 每个集成员可能有一个或多个与之有关联的特征, 每个集成员可能有一个或多个与之有关联的特征, 这些特征称为属性。 这些特征称为属性。 属性 LINGO有两种类型的集: 有两种类型的集: 有两种类型的集 原始集(primitive set)和派生集 原始集 和派生集(derived set)。 。 原始集是由一些最基本的对象组成的。 原始集是由一些最基本的对象组成的。 派生集是用一个或多个其它集来定义的。 派生集是用一个或多个其它集来定义的。
约束优化的 简单分类
min f ( x ) s .t . hi ( x ) = 0, i = 1,..., m g j ( x ) ≤ 0, j = 1,..., l x∈ D
连 • 线性规划(LP) 线性规划 目标和约束均为线性函数 续 •非线性规划 非线性规划(NLP) 目标或约束中存在非线性函数 非线性规划 优 二次规划(QP) 目标为二次函数、约束为线性 目标为二次函数、 化 √ 二次规划 整数规划(IP) 决策变量(全部或部分) 决策变量(全部或部分)为整数 离 • 整数规划 整数线性规划(ILP),整数非线性规划 整数线性规划 ,整数非线性规划(INLP) 散 优 纯整数规划(PIP), 混合整数规划(MIP) 纯整数规划 混合整数规划 化 一般整数规划, (整数) 一般整数规划,0-1(整数)规划
集合元素的隐式列举 集合元素的隐式列举 类型 数字型 星期型 月份型 年份-月份型 年份 月份型 示例 1..5 示例集合的元素 1, 2, 3, 4, 5 car101, car102, … , car208 MON, TUE, WED, THU, FRI OCT, NOV, DEC, JAN OCT2008, NOV2008, DEC2008, JAN2009
①显式罗列:必须罗列出所有要包含在派生集中的 显式罗列 必须罗列出所有要包含在派生集中的 成员,并且罗列的每个成员必须属于稠密集。 成员,并且罗列的每个成员必须属于稠密集。 例2.5 sets: num_i/1..2 /; num_j/1..3/; link(num_i,num_j)/1 2,2 3/:x; endsets x(1,2),x(2,3)
例1.3 求解非线性问题
2 2 max z = 20 x1 + 16 x2 − [2 x1 + x2 + ( x1 + x2 )^2]
x1 + x2 ≤ 5, s .t . x1 , x2 ≥ 0,
max=20*x1+16*x2-(2*x1^2+x2^2+(x1+x2)^2); x1+x2<=5; x1>=0; x2>=0;
相关文档
最新文档