lindo与lingo软件简介
LINDO与LINGO软件介绍
查看模型的统计信息, 用Reports/statistics查看模型的统计信息, 查看模型的统计信息
第一行:模型有 行 约束4行),2个变量 个变量, 个整数变量 个整数变量( 个 变量 变量), 第一行:模型有5行(约束 行), 个变量,0个整数变量(0个0-1变量), 不是二次规划. 不是二次规划 第二行:非零系数10个 约束中非零系数6个 其中 个为1或 , 其中5个为 第二行:非零系数 个,约束中非零系数 个(其中 个为 或-1),模型密度 密度=非零系数 行数* 变量数+ 为0.667(密度 非零系数 行数*(变量数+1)]) . 密度 非零系数/[行数 变量数 第三行的意思:按绝对值看,系数最小、最大分别为1和 第三行的意思:按绝对值看,系数最小、最大分别为 和8. 第四行的意思:模型目标为极大化;小于等于、等于、 第四行的意思:模型目标为极大化;小于等于、等于、大于等于约束分别有 广义上界约束(GUBS)不超过 个;变量上界约束 不超过2个 变量上界约束(VUBS)不 2、0、2个;广义上界约束 不超过 不 少于0 所谓GUBS,是指一组不含有相同变量的约束;所谓 少于0个。所谓 ,是指一组不含有相同变量的约束;所谓VUBS,是 , 指一个蕴涵变量上界的约束,如从约束X1+X2-X3=0可以看出,若X3=0,则 可以看出, 指一个蕴涵变量上界的约束,如从约束 可以看出 , X1=0,X2=0(因为有非负限制),因此 ),因此 是一个VUBS约束。 约束。 , (因为有非负限制),因此X1+X2-X3=0是一个 是一个 约束 第五行的意思:只含1个变量的约束个数=0 冗余的列数=0 第五行的意思:只含1个变量的约束个数 0个;冗余的列数 0个
版本信息,可以通过 查询.我们还 版本信息,可以通过help/about查询 我们还 查询 可以查到允许的变量个数、约束个数、 可以查到允许的变量个数、约束个数、整数 变量个数、非零系数个数等. 变量个数、非零系数个数等
Lingo软件学习
算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符: ^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减 LINGO唯一的一元算术运算符是取反函数“﹣”
LINGO具有9种逻辑运算符: #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase #lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase #le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true
Lingo以Model:开头,以end结束,这两个语句单独成行
补充:关于与Excel中数据的链接
先将Excel中的数据复制到剪切板上,然后将光标置于要插入 数据的部位,再在lingo编辑菜单中选择选择性粘贴(Paste Special),注意粘贴与粘贴链接的区别!
四、Lingo中部分函数介绍
LINGO中的函数有基本元算符,数学函数,金融函数,变 量限定函数等,全部函数请参照Edit|paste funtion。
对例一结果的相关说明
例一运行后得到如下结果:
Global optimal solution found. Objective value: Total solver iterations: Variable X1 X2 Value 250.0000 100.0000 800.0000 2 Reduced Cost 0.000000 0.000000
Lingo简介
6. “ltx”:Lindo格式的模型文件;
7. “mps”:MPS(数学规划系统) Lingo软件模型一般由5部分组成: 1. 集合段(SETS):“SETS:”开始,“ENDSETS”结束; 2. 目标与约束段; 3. 数据段(DATA):“DATA:”开始,“ENDDATA”结束; 4. 初始化段(INIT):“INIT:”开始,“ENDINIT”结束;
无限
800 3200
无限
4000 16000
无限
Lindo/Lingo 软件简介
Lindo是英文Linear INteractive and Discrete Optimizer 字母的缩写,可求解线性规划(LP)和二次规划(QP)。
Lingo是英文Linear INteractive and General Optimizer 字母的缩写,除了具有Lindo所有功能之外,还可以用于求 解非线性规划(NLP),也可用于一些线性和非线性方程 的求解等。
Lindo/Lingo 软件简介
Lindo/Lingo内部求解器: 1. 直接求解程序(Direct Solver)
2. 线性优化求解程序(Linear Solver)
3. 非线性优化求解程序(Nonlinear Solver) 4. 分支定界管理程序(Branch and Bound Manager)
Lindo/Lingo 软件简介
美国芝加哥大学 Linus Schrage 教授于1980年前后开发 的一套专门用于求解最优化问题的软件包。 软件包括:Lindo、Lingo、Lindo API以及What’sBest! 这四款软件分为演示版(试用版)和正式版,两者的区别 在于求解问题的规模不同。正式版又可以分为求解包 (Solver Suite)、高级版(Super)、超级版(Hyper)、 工业版(Industrial)、扩展版(Extended)。
优化建模入门与LINGOLINDO简介
优化建模
整数规划问题对应的松弛问题
取消整数规划中决策变量为整数的限制(松弛),对 应的连续优化问题称为原问题的松弛问题 整数规划问题 最优解
最优解 凸多边形的某个顶点
求解LP的基本思想
凸多面体的某个顶点
思路:从可行域的某一顶点开始,只需在有限多个 顶点中一个一个找下去,一定能得到最优解。
LP的通常解法是单纯形法(G. B. Dantzig, 1947)
优化建模
LP其他算法
内点算法(Interior point method)
• 20世纪80年代人们提出的一类新的算法——内点算法 • 也是迭代法,但不再从可行域的一个顶点转换到另一个 顶点,而是直接从可行域的内部逼近最优解。
f ( x)
优化建模
s.t.
hi ( x) 0, i 1,...,m g j ( x) 0, j 1,...,l
整数规划问题的分类
• 整数线性规划(ILP) 目标和约束均为线性函数 • 整数非线性规划(NLP) 目标或约束中存在非线性函数 • 纯(全)整数规划(PIP) 决策变量均为整数 • 混合整数规划(MIP) 决策变量有整数,也有实数 • 0-1规划 决策变量只取0或1
决策变量:周一至周日每天(新)聘用人数 x1, x2,x7 目标函数:7天(新)聘用人数之和 约束条件:周一至周日每天需要人数
设系统已进入稳态(不是开始的几周) 连续工作5天 周一工作的应是(上)周四至周一聘用的 x4 x5 x6 x7 x1 50
min s.t. z x1 x2 x3 x4 x5 x6 x7 x1 x4 x5 x6 x7 50
优化建模
优化问题的一般形式
优化问题三要素:决策变量;目标函数;约束条件 目标函数 约 束 条 件
LINDOLINGO优化软件
LINDO/LINGO优化软件 优化软件
主讲教师: 主讲教师:吕 红 2006.3
简要提纲
1. 优化模型与优化软件简介 2. LINDO公司的主要软件产品及功能简介 公司的主要软件产品及功能简介 3. LINDO / LINGO软件的使用简介 软件的使用简介 4. 建模与求解实例(结合软件使用) 建模与求解实例(结合软件使用)
例 家具生产的安排
一家具公司生产桌子和椅子,用于生产的全部劳力共计 450个工时,共有4立方的木材。 每张桌子要使用15个工时,0.2立方木材,售价80元。 每张椅子使用10个工时,0.05立方木材,售价45元。 问为达到最大的收益,应如何安排生产?
• 分析: • 1. 求什么? • 生产多少桌子? • 生产多少椅子? • 2. 优化什么? • 收益最大 • 3. 限制条件? • 原料总量 • 劳力总数
x1 x2 Max f=80 x1+45 x2 0.2 x1 +0.05 x2 ≤4 15 x1 +10 x2 ≤450
一般线性规划的数学模型及解法: min f=cTx s.t. Ax ≤ b A1x=b1 LB ≤ x ≤ UB Matlab求解程序 [x,f]=linprog(c,A,b,A1,b1,LB,UB)
试用)版 学生版、高级版、超级版、工业版、 演示(试用 版、学生版、高级版、超级版、工业版、 试用 问题规模和 不同) 扩展版… 求解问题规模 选件不同 扩展版 (求解问题规模和选件不同)
LINDO和LINGO软件能求解的优化模型 LINDO和LINGO软件能求解的优化模型
优化模型 连续优化 整数规划(IP) 整数规划
(最)优化理论是运筹学的基本内容 最 优化理论是运筹学的基本内容
数学建模Lingo软件简介
版本类型 总变量数 整数变量数 非线性变量数 约束数
演示版 求解包 高级版 超级版 工业版 扩展版
300 500 2000 8000 32000 无限
30 50 200 800 3200 无限
30 50 200 800 3200 无限
150 250 1000 4000 16000 无限
Lingo(Linear Interactive and General Optimizer),即交互 式的线性和通用优化求解器,可求解线性规划,也可以求解非 线性规划,还可以用于一些线性和非线性方程组的求解等。 Lingo软件的最大特),而且执行速度很快。Lingo实际上还是最 优化问题的一种建模语言,包括许多常用的数学函数共建立优 化模型时调用,并可以接受其它数据文件。
2. 建立LINDO/LINGO优化模型需要注意的几个基本问题
1. 尽量使用实数优化模型,尽量减少证书约束和整数变 量的个数;
2. 尽量使用光滑优化模型,尽量避免使用非光滑函数; 3. 尽量使用线性优化模型,尽量减少非线性约束和非线 性变量的个数; 4. 合理设定变量的上下界,尽可能给出变量的初始值; 5. 模型中使用的单位的数量级要适当。
演示版和正式版的基本功能是类似的,只是试用版能够
求解问题的规模受到严格限制,对于规模稍微大些的问题就不 能求解。即使对于正式版,通常也被分成求解包(solver suite)、 高级版(super)、超级版(hyper)、工业版(industrial)、扩展版 (extended)等不同档次的版本,不同档次的版本的区别也在于 能够求解的问题的规模大小不同,下表给出了不同版本 LINGO程序对求解规模的限制:
LINDO,LINGO,LINDO API 和 What’s Best! 在最优化软件的市场上占有很大的份额,尤其在供微机上使用 的最优化软件的市场上,上述软件产品具有绝对的优势。根据 LINDO公司主页()上提供的信息,位列 全球《财富》杂志500强的企业中一半以上使用上述产品,其 中位列全球《财富》杂志25强企业中有23家使用上述产品。读 者可以从上述主页下载上面4种软件的演示版和大量应用例子。
lingo与lindo
广西大学数学与信息科学学院 韦琳娜 ln_wln@
1 在Lingo中使用Lindo模型
• Lindo与Lingo都是LINDO系统公司开发的专门用 于求解最优化问题的软件包。与Lindo相比, Lingo软件主要具有两大优点: • (1)除具有LINDO的全部功能外,还可用于求解 非线性规划问题,包括非线性整数规划问题。 • (2)LINGO包含了内置的建模语言,允许以简 练、直观的方式描述较大规模的优化问题,模型 中所需的数据可以以一定格式保存在独立的文件 中。
X 1.272727 Y 1.636364
3)
.000000
.545455
NO.ITERATIDNS=2 DO RANGE (SENSITIVITY)ANALYSIS
?
:GO 减少的成本 LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1 ) 7.4545450 VARIABLE VALUE REDUCED COST X 1.272727 .000000 对偶价格 Y 1.636364 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .090909 3) .000000 .545455 NO.ITERATIDNS=2 单纯形进行了2次迭代 DO RANGE (SENSITIVITY)ANALYSIS ?
注意LINDO软件在使用单纯形法时,目标函数行使用的 公式是: Z c1 x1 c2 x2 cn xn 0. 而我们第2章中使用 的公式是: Z c1 x1 c2 x2 cn xn 0. 因此它的检验数 值与我们第2章中介绍的差一个符号。
Lingo 入门
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拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&非球面的),二次的,二次约束的,和整数优化问题。
数学建模软件LinDoLinGo的简介(修改)
X——表示变量X可取任意实数值。 GIN X——表示变量X只取非负整数值。 INT X——表示变量X只能取0或1。 SLB X value——表示变量X以value为下界。 SUB X value——表示变量X以value为上界。 FREE m——表示问题的前m个变量为自由变量 GIN m——表示问题前m个变量为非负整数值 INT m——表示问题前m个变量为0-1变量。
LINGO 示例
查看简单例子
LINHGO程序
Lindo模型到Lingo模型的转换
“ST”在Lingo模型中不再需要,所以删除了; 在每个系数与变量之间增加了运算符“*”;
将目标函数的表示方式从“MAX”变成“MAX=”;
每行(目标、约束和说明语句)后面均增加了一
个分号“;”; 约束的名字被放ngo中模型以“Model:”开始,以“END”结束。 对简单模型,这两个语句也可以省略。
LINDO/LINGO软件 使用简介
LinDo/LinGo简介
LINDO(Linear Interactive and Discrete Optimizer),即“交互式的线性和离散优化求解 器”,可以用来求解线性规划(LP)和二次规划 (QP); LINGO(Linear Interactive and General Optimizer),即“交互式的线性和通用优化求解 器”,除了用来求解线性规划(LP)、二次规划 (QP)和非线性规划,还可用于线性和非线性方程 组的求解。 最大的特色:允许决策变量是整数(即整数规划,包 括0-1规划)。
Lindo求解整数规划
Lindo求解整数规划程序
LP OPTIMUM FOUND AT STEP 2 OBJECTIVE VALUE = 998.811951
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拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&非球面的),二次的,二次约束的,和整数优化问题。
lindo和lingo简介
LINDO和LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包。
LINDO 用于求解线性规划和二次规划,LINGO除了具有LINDO的全部功能外,还可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解以及代数方程求根等。
LINDO和LINGO软件的最大特色在于可以允许优化模型中的决策变量是整数(即整数规划),而且执行速度很快。
LINGO实际上还是最优化问题的一种建模语言,包括许多常用的函数可供使用者建立优化模型时调用,并提供与其它数据文件(如文本文件、EXCEL电子表格文件、数据库文件等)的接口,易于方便地输入、求解和分析大规模最优化问题。
由于这些特点,LINDO和LINGO软件在教学、科研和工业、商业、服务等领域得到广泛应用。
1)目标函数及各约束条件之间一定要有“Subject to (ST) ”分开。
2)变量名不能超过8个字符。
3)变量与其系数间可以有空格,单不能有任何运算符号(如乘号“*”等)。
4)要输入<=或>=约束,相应以<或>代替即可。
5)一般LINDO中不能接受括号“()“和逗号“,“,例:400(X1+X2) 需写成400X1+400X2;10,000需写成10000。
6)表达式应当已经过简化。
不能出现 2 X1+3 X2-4 X1,而应写成-2X1+3 X2。
用LINDO求解施工中的线性规划(LP)问题1 引言线性规划是现代化管理的常用工具与方法,在施工过程中,很多实际问题,如配(下)料,运输(土石方调配),施工机具车辆调度,施工场地的合理设点,成品、半成品、原材料的合适库存量规划问题等等,都需要运用线性规划方法求得最优方案。
线性规划一般需要先确定要求的未知变量和目标函数,然后找出所有的约束条件,表示为线性方程或不等式,建立问题的数学模型,对于变量数目和约束条件较少的情况可用手工计算,较多的情况则需运用计算机来求解。
2 LINDO介绍LINDO是Linear INteractive and Discrete Optimizer字首的缩写形式,是由Linus Schrage 于1986年开发的优化计算软件包。
LINDO LINGO使用简介
1 LINDO菜单命令和语句1.1菜单命令我们可以从类似于其它Windows程序的便捷菜单访问LINDO的命令。
主菜单包括屏幕顶部的6个子菜单,它们列出了各种命令。
当单击其中一个子菜单——File、Edit、Solve、Reports、Window或Help时,将出现了一个包含各种命令的下拉菜单。
你可以像在大多数windows程序中那样选择命令——或者用鼠标单击命令,或者在适当的子菜单亮显时,按命令名中带下划线的字母。
许多命令还有快捷键(F2、Ctrl+Z等)。
为了增加方便性,还可以利用位于屏幕顶部工具栏中的图标访问一些最常用的命令。
下面简要介绍各种菜单命令,并列出了可以应用的快捷键和图标。
1.File(文件)菜单File菜单命令能够以各种方法操纵LINDO数据文件。
可以使用这个命令打开、关闭、保存和打印文件,并且可以执行LINDO独有的各种任务。
下面将描述File命令。
命令说明New F2 创建用于输入数据的新窗口。
Open F3 打开已有的文件。
利用对话框可以选择各种文件类型和位置。
View F4 打开已有的文件,仅进行浏览。
不对文件进行修改。
Save F5 保存窗口。
可以保存输入数据(模型)、Reports窗口或命令窗口。
可以下列格式保存数据:*.LTX,可以利用字处理软件进行编辑的文本格式;*.LPK,以“填充”格式保存编译模型,但是不进行特殊的格式化或解释;*.MPS,与机器无关的工业标准格式,用于在LINDO和其它LP软件之间传递LP问题。
Save As F6 利用指定的文件名保存活动窗口。
这特别适合于重命名已修改的文件,同时能够保持原始文件不受影响。
Close F7 关闭活动窗口。
如果窗口包含新的输入数据,将询问你是否保存修改。
Print F8 把活动窗口发送到打印机。
Printer Setup…F9 选择打印机和打印格式的各种选项。
Log Output…F10 把通常发送到Reports窗口的所有后续屏幕活动发送到文本文件中。
LINGO软件介绍
关于LINGO软件的其它介绍
三、LINGO中的集 四、集循环函数 五、集操作函数
六、运用定义集的方法求解规划问题
由于时间关系所限,更主要是涉及的内容 有相当的难度,所以关于LINGO软件的以 上四方面的介绍只能从略。有兴趣的读者 可以自学有关内容。
21
上机作业
再现教材P165-167的程序文件: ex_1.lg4、 ex_2.lg4 、 ex_3max.lg4 以及 ex_3min.lg4 要求:提交程序文件和相应的截图文件(图形 文件格式为 JPG格式,文件名自定)
二、用LINGO解决基本的线性规划问题和二次规划问题
例3 求解二次规划问题:
解法一:直接使用LINGO最大化过程:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1 + x2 <= 100; x1 <= 2*x2; @gin(x1);@gin(x2);
15
二、用LINGO解决基本的线性规划问题和二次规划问题
3
一、LINGO介绍
LINGO的主要功能特色为: 1. 既能求解线性规划问题,也有一定求解非 线性规划问题的能力; 2. 输入模型简练直观; 3. 运行速度快、计算能力强;
4
一、LINБайду номын сангаасO介绍
LINGO的主要功能特色为: 4. 内置建模语言,提供几十个内部函数,从 而能以较少的语句,较直观的方式描述较大规 模的优化模型; 5. 将集合的概念引入编程语言,很容易将实 际问题转换为LINGO模型; 6. 能方便地与Excel、数据库等其他软件交换 数据。
7
二、用LINGO解决基本的线性规划问题和二次规划问题
我们编辑程序并求解后,得到LINGO Model窗口、 Solution report窗口和Solver status窗口如下:
Lingo、Lindo软件
④ Lingo模型语句由一系列语句组成,每一个语句都必 须以“;”结尾;
⑤ Lingo中以“!”开始的是说明语句,说明语句也以 “ ;” 结束。
Lingo/Lindo软件介绍 ---Lingo
➢在Lingo中建立的优化模型可以引用大量的内部函数这些函 数都以@符号打头,其用法比较简单,我们一一列出:
整数模型
线性规划
二次规划
Lindo
非线性规划 Lingo
Lingo/Lindo软件介绍
➢Lindo是英文Linear Interactive and Discrete
Optimizer字首的缩写,即“交互式的线性和离散优化 求解器”,可以用来求解线性规划(LP)和二次规划 (QP);
➢Lingo是英文Linear Interactive and General
⑦ Lindo中以“!”开始的是说明语句,说明语句也以“ ;” 结束。
Lingo/Lindo软件介绍 ---Lindo
➢下面我们用一个例子来说明Lindo中三个变量范围限制命令(FREE、SBU、 SLB)的作用和使用方法:
例-2 max 2x 3y 4z S.T. 4x 3y 2z 10
➢该软件包功能强大,版本也很多,而我们 使用的只
是演示版(试用版),演示版与正式版功能基本上是
类似的,只是能够求解问题的规模受到限制,总变量数 不超过30个,这在我们目前的使用过程中,基本上是 足够。
Lingo/Lindo软件介绍 Lingo/Lindo软件求解的优化模型类型见下图:
优化模型
连续模型
Interrupt 中断求解程序 Solver
Close 关闭该窗口
用LINDO解运筹学问题
输入语句: 输入语句:
max(不区分大小写 不区分大小写) 不区分大小写 x1+x2+x3+x4 ST(大写或写 大写或写subject to) 大写或写 x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100 2.85x1-1.42x2+4.27x318.49x4>=0 2.85x5-1.42x6+4.27x718.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 end
使用LINDO的一些注意事项 的一些注意事项 使用 1.目标函数所在行是第一行,第二行起为约束条件 目标函数所在行是第一行, 目标函数所在行是第一行 2.目标函数及各约束条件之间一定要有“Subject to (ST) ”分 目标函数及各约束条件之间一定要有“ 目标函数及各约束条件之间一定要有 分 开。 3.变量与系数间可有空格 甚至回车 但无运算符 变量与系数间可有空格(甚至回车 变量与系数间可有空格 甚至回车), (如乘号“*”等) 如乘号“ 4.变量名以字母开头,不能超过8个字符 变量名以字母开头,不能超过 个字符 变量名以字母开头 5.变量名不区分大小写(包括LINDO中的关键字) 变量名不区分大小写(包括 中的关键字) 变量名不区分大小写 中的关键字 6. “>”(或“<”)号与“>=”(或“<=”)功能相同 ( )号与“ ( ) 7.行号 行名 自动产生或人为定义。行名以“)”结束 行号(行名 自动产生或人为定义。行名以“ 行号 行名)自动产生或人为定义 8.行中注有“!”符号的后面部分为注释。如: 行中注有“ 符号的后面部分为注释 符号的后面部分为注释。 行中注有 ! It’s Comment.
运筹学软件介绍
Liujinghua 2008.5.14
ቤተ መጻሕፍቲ ባይዱ
运筹学软件介绍(5种)
1.LINDO软件 软件 2.LINGO软件 软件 3.Excel 4.MATLAB 5.GAMS
介绍框架
用途 适用 应用领域 具体事务 设计原则 不同版本 网站
1.LINDO软件
用途:LINDO (Linear, Interactive, and Discrete 用途 Optimizer)是一个解决二次线性整数规划问题的方便 是一个解决二次线性整数规划问题的方便 而强大的工具。 而强大的工具。 适用:一些拥有超过50,000个约束条件和 个约束条件和200,000万个 适用:一些拥有超过 个约束条件和 万个 变量的大规模复杂问题。 变量的大规模复杂问题。 应用领域:商业、工业、研究和政府等领域。 应用领域:商业、工业、研究和政府等领域。 具体事务:产品分销、成分混合、 具体事务:产品分销、成分混合、生产与个人事务安 存货管理。 排、存货管理。 设计原则:如果一个用户只是想解决一个简单的问题, 设计原则:如果一个用户只是想解决一个简单的问题, 就不应该在学习LINDO的基本特性上花费太多的准备 就不应该在学习 的基本特性上花费太多的准备 成本。 成本。 不同版本: 学生版至多可求解多达300个 不同版本:LINDO 6 .1 学生版至多可求解多达 个 变量和150个约束的规划问题。其正式版(标准版) 个约束的规划问题。 变量和 个约束的规划问题 其正式版(标准版) 则可求解的变量和约束在1量级以上 量级以上。 则可求解的变量和约束在 量级以上。
LINDO软件LP的注意事项
1.目标函数及各约束条件之间一定要有 目标函数及各约束条件之间一定要有 "Subject to (ST) "分开 分开. 分开 2.变量名不能超过8个字符 变量名不能超过8 变量名不能超过 个字符. 3.变量与其系数间可以有空格,单不能有任何 变量与其系数间可以有空格, 变量与其系数间可以有空格 运算符号(如乘号 如乘号"*"等 运算符号 如乘号 等). 4. 要输入 或>=约束,相应以 或>代替即可 要输入<=或 约束 相应以<或 代替即可 约束, 代替即可. 5.一般 一般LINDO 中不能接受括号 中不能接受括号"()"和逗号 和逗号",", 一般 和逗号 需写成400X1+400X2;10,000 例:400(X1+X2) 需写成 需写成10000. 需写成 6.表达式应当已经过简化。不能出现 表达式应当已经过简化。 表达式应当已经过简化 2X1+3X2-4X1,而应写成 而应写成-2X1+3X2. 而应写成
LINDO-LINGO简介及使用方法
欢迎访问华中数学建模网 1.LINDO、LINGO一、软件简介LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
LINDO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP —QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。
虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。
要学好用这两个软件最好的办法就是学习他们自带的HELP文件。
下面拟举数例以说明这两个软件的最基本用法。
(例子均选自张莹《运筹学基础》)例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题)一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。
某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。
lingo入门-PPT课件
Global optimal solution found at iteration:
y 1 ,y 1 ',y 2,y 2',y 3,y 3' 0
(3)min max(x1,x2,x3);
s.t.xx11
x2 x3 10, 3x2 2x3 12.
最高分越低越好!!
解 令 yma1x ,x2(,xx3),则此约束的充分条件是
yx 1 ,yx 2,yx 3 .
2、Lindo/Lingo软件内部有以下4个求解程序用于求解 不同类型的优化模型
(1)直接求解器(Direct Solver);
(2)线性优化求解程序(Linear Solver);
(3)非线性优化求解程序(Nonlinear Solver);
(4)分支定界管理程序(Branch and Bound Manager)。
6
Objective value:
244.0000
Variable X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
Value 4.000000 0.000000 12.00000 0.000000 4.000000 0.000000 0.000000 6.000000 0.000000 14.00000 0.000000 8.000000
LINGO软件介绍
基本模型
获利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 24x1 16x2 44x3 32x4 3x5 3x6
• 35元可买到1桶牛奶,要买吗?
35 <48, 应该买! 2元!
• 聘用临时工人付出的工资最多每小时几元?
敏感性分析 (“LINGO|Ranges” )
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
例1 加工奶制品的生产计划 问 题
1桶 牛奶 或 12h 3kgA1 4kgA2 获利24元/kg 获利16元/kg
8h 每天: 50桶牛奶 时间480h
至多加工100kgA1
制订生产计划,使每天获利最大 • 35元可买到1桶牛奶,买吗?若买,每天最多买多少? • 可聘用临时工人,付出的工资最多是每小时几元? • A1的获利增加到 30元/kg,应否改变生产计划?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5、模型中使用的参数数量级要适当
(如小于103)
lifengbing
2007-4-16
7
需要掌握的几个重要方面
掌握集合(SETS)的应用;
正确阅读求解报告(尤其要掌握敏感性分析) 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
min f x 2 x 2 x1 x2 4 x1
2 1 2 2
初始值为:
x 1, 1
0
model: init: x1=1; x2=1; endinit min=x1^2+2*x2^2-2*x1*x2-4*x1; @free(x1); @free(x2); end
lifengbing 2007-4-16 16
LINDO/LINGO预处理程序
LP QP NLP IP 全局优化(选) 分枝定界管理程序
ILP
线性优化求解程序 1. 单纯形算法 2. 内点算法(选)
lifengbing
IQP
INLP
非线性优化求解程序 1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
model: max=2*x1-3*x2-2*x3+x4; x1-2*x2-3*x3-2*x4=5; x1-x2+2*x3+x4=10; End
lifengbing 2007-4-16
DEMO
9
运行结果如下:
Global optimal solution found at iteration: 2 Objective value: 18.33333
2007-4-16 10
看完例1后,能解下面这个问题吗?
例 2
min f x1 2 x1 3 x2 7 2 x 3x 6 1 2 s.t. 4 x x 4 1 2 x1 0, x2 0
演示
11
lifengbing
2007-4-16
例 3
Reduced Cost 0.8823973E-07 0.000000
Slack or Surplus Dual Price -7.161290 -1.000000 0.9677434E-01 0.000000 0.000000 -1.032258
2007-4-16 21
例 8
max f 98 x1 277 x2 x 0.3 x1 x2 2 x
2007-4-16 19
例 7
min f 2 x 2 x 2 x1 x2 4 x1 6 x2
2 1 2 2
2 x1 x2 0 5 x1 5 x2 0 x ,x 0 1 2
model: min=2*x1^2+2*x2^2-2*x1*x2-4*x1-6*x2; 2-x1-x2>=0; 5-x1-5*x2>0; end
2 1
2 2
x1 x2 100 x1 2 x2 x , x Z 1 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
lifengbing 2007-4-16 22
lifengbing
2007-4-16
2
优化模型简介
优化模型的一般形式如下:
Max(或 Min) z=f(x) , x=(x1, x2 , … , xn)T s.t. gi(x)<=0, i= 1, 2, …, m hj(x)=0, j= m, m+1, …, n
x — 决策变量
f(x) — 目标函数
优化建模与LINDO/LINGO软 件介绍
单位: 桂林电子科技大学 数学与计算 科学学院
制作人: 李丰兵
Lfb_guidian@
lifengbing 2007-4-16 1
简 要 提 纲
• 优化模型简介
•优化问题与LINGO/LINDO软件
•LINGO建模与求解实例(结合软件介绍) •LINGO软件语法简介 •LINGO建模注意事项
Slack or Surplus Dual Price -8.000000 -1.000000
lifengbing
2007-4-16
17
例 6
min f 3 x x 2 x
2 1 2 2
2 3
x x x 3 0 x1 x2 0 x ,x ,x 0 1 2 3
model: !this is an uncontrained optimal problem; min=3/2*x1^2+1/2*x2^2-x1*x2-2*x1; @free(x1); @free(x2); end
lifengbing 2007-4-16 14
运行结果如下:
Local optimal solution found at iteration: Objective value: -1.000000 73
gi(x) ,hj(x) — 约束条件
lifengbing
2007-4-16
3
优 化 模 型 分 类
线性规划(LP)
非线性规划(NLP)
连续规划
二次规划(QP)
0-1 整数规划(ZOP) 纯整数规划(PIP) 混合整数规划(MIP)
离散规划
当然还有其它规划,如: 随机规划,模糊规划 ,不确定规划, 半定 规划 等等!
model: sets:
I/1,2,3,4/:c,a1,a2,x; !相当于定义c,a1,a2,x均为一维数组,含4个元素;
endsets data: c=2,-3,-2,1; !给数组C赋值; a1=1,-2,-3,-2; a2=1,-1,2,1; enddata max=@sum(I:c*x); @sum(I:a1*x)=5; @sum(I:a2*x)=10; lifengbing 2007-4-16 end
演示
Variable X1 X2 X3 Row 1 2 3
lifengbing
Value 1.212809 1.212809 0.2412201
Reduced Cost 0.000000 0.000000 0.000000
Slack or Surplus Dual Price -6.000000 -1.000000 0.000000 2.000000 0.000000 -2.425619
lifengbing 2007-4-16 4
优化问题与LINGO/LINDO软件
优化模型
连续优化
整数规划(IP)
线性规划 (LP)
二次规划 (QP)
非线性规划 (NLP) LINGO
LINDO
lifengbing 2007-4-16
5
LINDO/LINGO软件的求解过程
1. 确定常数
2. 识别类型
max ci xi
iI
24
Global optimal solution found at iteration: 2 Objective value: 18.33333 Variable Value Reduced Cost C( 1) 2.000000 0.000000 C( 2) -3.000000 0.000000 C( 3) -2.000000 0.000000 C( 4) 1.000000 0.000000 A1( 1) 1.000000 0.000000 A1( 2) -2.000000 0.000000 A1( 3) -3.000000 0.000000 A1( 4) -2.000000 0.000000 A2( 1) 1.000000 0.000000 A2( 2) -1.000000 0.000000 A2( 3) 2.000000 0.000000 A2( 4) 1.000000 0.000000 X( 1) 8.333333 0.000000 X( 2) 0.000000 0.6666667 X( 3) 0.000000 4.333333 X( 4) 1.666667 0.000000 Row 1 2 3 Slack or Surplus Dual Price 18.33333 1.000000 0.000000 0.3333333 2007-4-16 0.000000 1.666667
2 1 2 2 2 3
model: min=-3*x1^2-x2^2-2*x3^2; x1^2+x2^2+x3^2-3=0; -x1+x2>=0; end
lifengbing 2007-4-16 18
运行结果如下:
Local optimal solution found at iteration: 37 Objective value: -6.000000
运行结果如下:
Local optimal solution found at iteration: 60 Objective value: -8.000000
演示
Variable X1 X2 Row 1
Value 3.999997 1.999998
Reduced Cost 0.000000 0.000000
lifengbing 2007-4-16 12
运行结果如下:
Global optimal solution found at iteration: Objective value: 11.00000 0
演示
Variable X1 X2 Row 1 2 3