当前位置:文档之家› 数学规划及软件

数学规划及软件

2020/5/22 020年5月2日5时23分
模型求解:
用鼠标点击工具栏中的图标 , 或从菜单中选择Solve|Solve(Ctrl+S)命令
LINDO首先开始编译这个 模型,编译没有错误则开 始求解; 求解时会首先显示如右图 所示的LINDO “求解器运行状态窗口 ”。
2020/5/22 020年5月2日5时23分
•数学规划是优化问题的一个分支,起始 于20世纪30年代末,50年代与60年代发展成 为一个完整的分支并受到数学界和社会各界 的重视。七八十年代是数学规划飞速发展时 期,无论是从理论上还是算法方面都得到了 进一步完善。时至今日数学规划仍然是运筹 学领域中热点研究问题。从国内外的数学建 模竞赛的试题中看,有一半以上的问题可用 数学规划进行求解。
2020/5/22 020年5月2日5时23分
数学规划模型的一般形式
min(ormax) z f (x) s.t. hi(x) 0, i 1,...,m
gj(x) 0, j 1,...,l xDRn
(1) 约 (2) 束 (3) 条

可行域 s. t. (subjetoc)t“受约束于”之意.
三要素:决策变量;目标函数;约束条件
2020/5/22 020年5月2日5时23分
常用优化软件
1.LINDO/LINGO软件 2.MATLAB优化工具箱
/mathematica优化程序包 3.EXCEL软件的优化功能 4.SAS(统计分析)软件的优化功能
2020/5/22 020年5月2日5时23分
LINDO 公司软件产品简要介绍
2020/5/22 020年5月2日5时23分
三个变量范围限定命令(FREE、SUB、SLB)的作用
求解如下的LP问题:
MAX 2x – 3y + 4z S.T. 4x + 3y + 2z ≤ 10
-3x + 5y - z ≤ 12 x + y + 5z ≥ 8
-5x - y - z ≥ 2 0≤y≤20, z≥30
9. 变量不能出现在一个约束条件的右端 10. 表达式中不接受括号“( )”和逗号“,”等任何符号, 例:
400(X1+X2)需写为400X1+400X2 11. 表达式应化简,如2X1+3X2- 4X1应写成 -2X1+3X2 12. 缺省假定所有变量非负;可在模型的“END”语句后
用“FREE name”将变量name的非负假定取消 13. 可在 “END”后用“SUB” 或“SLB” 设定变量上下界 14. 例如: “sub x1 10”的作用等价于“x1<=10”
2020/5/22 020年5月2日5时23分
例1 简单的线性规划(LP)问题: Max z 2 x 3 y s.t . 4 x 3 y 10 3 x 5 y 12 x, y 0
在空白的模型窗口中输入这个LP模型:
max 2x+3y st 4x+3y<=10
3x+5y<12 end
2020/5/22 020年5月2日5时23分
•可行解(只满足约束)与最优解(取到最优值)
2020/5/22 020年5月2日5时23分
数学规划类型
• 连续规划: 全部决策变量取值均 为连续数值 (实数)
• 离散规划: 部分或全部决策变量 只取离散数值
2020/5/22 020年5月2日5时23分
数学规划 ( Mathematical
连Pro• 线gr性am规划m(iLnPg) ) 目标和约束均为线性函数
2020/5/22 020年5月2日5时23分
“DUAL PRICES” 给出对偶价格(或影子价格)的值:表示 最优解下“资源”增加1单位时“效益”的增量。 第2、3行对偶价格分别为 .090909,.545455。 “NO. ITERATIONS= 2” 表示用单纯形法进行了两次迭代。
2020/5/22 020年5月2日5时23分
续 • 非线性规划(NLP) 目标或约束中存在非线性函数
规 划
✓ 二次规划(QP) 目标为二次函数、约束为线性
离 • 整数规划(IP) 决策变量(全部或部分)为整数
散 ✓ 整数线性规划(ILP),整数非线性规划(INLP)
规 ✓ 纯整数规划(PIP), 混合整数规划(MIP)

✓ 一般整数规划,0-1(整数)规划
2020/5/22 020年5月2日5时23分
• 最大规模的模型的非零系数可以达到1,000,000个 • 最大变量个数可以达到100,000个,最大目标函数
和约束条件个数可以达到32000个 • 最大整数变量个数可以达到100,000个 • LINDO 6 .1 学生版至多可求解多达300 个变量和
2020/5/22 020年5月2日5时23分
LINDO和LINGO能求解的数学规划模型
数学规划模型
连续规划
整数规划(IP)
线性规划 二次规划
(LP)
(QP)
LINDO
2020/5/22 020年5月2日5时23分
非线性规划 (NLP)
LINGO
二. LINDO/LINGO软件简介
• LINDO 是专门用于求解数学规划的软件包。 LINDO 执行速度很快、易于方便输入,因此在数 学、科研和工业界得到广泛应用。
Infeasibility 约束不满足的量(即各个约束条件不满足 不可行性 的“数量”的和):“0”表示解是可行的。
Objective 当前目标值
显示目标函数当前的值:7.45455。
Best IP 整数规划当前最
佳目标值
显示整数规划当前的最佳目标值: “N/A” (No Answer)表示无答案或无 意义,因为这个模型中没有整数变量, 不是整数规划(IP)。
150 个约束的规划问题
2020/5/22 020年5月2日5时23分
LINGO软件的主要功能和特点
1.求解线性规划和非线性规划问题 2.模型输入简练直观 3.运行速度快 计算能力强 4.内置建模语言 提供内部函数 较少语句直
观描述大规模优化模型 5.引入集合 容易建模 6.数据交换方便(与EXCEL和数据库)
16. 简单错误的检查和避免:
输入模型时可能会有某些输入错误. 当问题规模 较大时, 要查找错误是比较困难的。在LINDO 中有一 些可帮助寻找错误的功能,其中之一就是菜单命令 “Report | Picture(Alt+5)” , 它的功能是可以将 目标函数和约束表达式中的非零系数通过列表(或图 形)显示出来。
如图: 2020/5/22 020年5月2日5时23分
LINDO程序有以下特点:
★ 程序以“MAX”(或“MIN”)开始,表示目标最大化(或 最小化)问题,后面直接写目标函数表达式和约束表达式; ★ 目标函数和约束之间用“ST”分开;(或用“s.t.”) ★ 程序以“END”结束( “END” 也可以省略)。 ★ 系数与变量之间的乘号必须省略。 ★ 系统对目标函数所在行自动生成行名“1)”,对约束默认 的行名分别是“2)” “3)”…,用户也可以自己输入行名;行名 放在对应的约束之前。 ★ 书写相当灵活,不必对齐,不区分字符的大小写。 ★ 默认所有的变量都是非负的, 所以不必输入非负约束。 ★ 约束条件中的“<=” 及“>=”可分别用“<” 及“>”代替。 ★ 一行中感叹号“!”后面的文字为是注释语句,可增强程 序的可读性,不参与模型的建立。
Close关闭
显示计算所用时间(秒):“0.00”说明 计算太快了,用时还不到0.005秒。
显示和控制刷新本界面的时间间隔: “1”表示1秒;用户可以直接在界面上 修改这个时间间隔。
当模型规模比较大时,求解时间会很长, 可以在程序运行过程中用鼠标点击该按 钮终止计算。
该按钮是关闭状态窗口,并不终止计算
求解器运行状态窗口显示的相应信息及含义:
名称
含义
Status 当前状态
显示当前求解状态:“Optimal”表示已 达到最优解;其他可能的显示还有三个:
Feasible(可行解), Infeasible(不可行), Unbounded(最优值无界)。
Iterations 迭代次数
显示迭代次数:“2”表示经过了2次迭 代。
7. 行中注有“!”符号的后面部分为注释。如:
8.
! ITITLE” 对模型命名 (最多72个字符),如:
202T0/5I/22T0L2E0年Th5月is 2M日o5d时el2i3s 分only an Example
使用LINDO的一些注意事项
但用“SUB”和“SLB”表示的上下界约束不计入模型 的约束,也不能给出其松紧判断和敏感性分析。
2020/5/22 020年5月2日5时23分
使用LINDO的一些注意事项
14. “END”后对0-1变量说明:INT n 或 INT name 15. “END”后对整数变量说明:GIN n 或 GIN name
使用LINDO的一些注意事项
1. “>”(或“<”)号与“>=”(或“<=”)功能相同 2. 变量与系数间可有空格(甚至回车), 但无运算符
3. 变量名以字母开头,不能超过8个字符
4. 变量名不区分大小写(包括LINDO中的关键字)
5. 目标函数所在行是第一行,第二行起为约束条件
6. 行号(行名)自动产生或人为定义。行名以“)”结 束
美国芝加哥(Chicago)大学的Linus Schrage教授于 1980年前后开发, 后来成立 LINDO系统公司 (LINDO Systems Inc.), 网址:lindo
LINDO: Linear Interaction and Discrete Optimizer LINGO: Linear Interaction General Optimizer
相关主题