谢金星-数学模型-优化模型lingo课件.ppt
《谢金星-数学模型-优化模型lingo课件.ppt》由会员分享,可在线阅读,更多相关《谢金星-数学模型-优化模型lingo课件.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、简要提纲简要提纲 优化模型简介优化模型简介 LINDO公司的主要软件产品及功能简介公司的主要软件产品及功能简介 LINDO软件的使用简介软件的使用简介 LINGO软件的使用简介软件的使用简介 建模与求解实例(结合软件使用)建模与求解实例(结合软件使用)优化模型优化模型 实际问题中实际问题中的优化模型的优化模型mixgtsxxxxfzMaxMiniTn, 2 , 1, 0)(. .),(),()(1或x决策变量决策变量f(x)目标函数目标函数gi(x) 0约束条件约束条件数学规划数学规划线性规划线性规划(LP)二次规划二次规划(QP)非线性规划非线性规划(NLP)纯整数规划纯整数规划(PIP)混
2、合整数规划混合整数规划(MIP)整数规划整数规划(IP)0-1整数规划整数规划一般整数规划一般整数规划连续规划连续规划LINDO LINDO 公司软件产品简要介绍公司软件产品简要介绍 美国芝加哥美国芝加哥(Chicago)大学的大学的Linus Schrage教授于教授于1980年前后开发年前后开发, 后来成立后来成立 LINDO系统公司(系统公司(LINDO Systems Inc.),), 网址:网址:http:/ LINDO: Linear INteractive and Discrete Optimizer (V6.1)LINGO: Linear INteractive General
3、 Optimizer (V8.0)LINDO API: LINDO Application Programming Interface (V2.0)Whats Best!: (SpreadSheet e.g. EXCEL) (V7.0)演示演示(试用试用)版、学生版、高级版、超级版、工业版、版、学生版、高级版、超级版、工业版、扩展版扩展版 (求解(求解问题规模问题规模和和选件选件不同)不同)LINDOLINDO和和LINGOLINGO软件能求解的优化模型软件能求解的优化模型 LINGO LINDO优化模型优化模型线性规划线性规划(LP)非线性规划非线性规划(NLP)二次规划二次规划(QP)连续
4、优化连续优化整数规划整数规划(IP) LP QP NLP IP 全局优化全局优化(选选) ILP IQP INLP LINDO/LINGO软件的求解过程 LINDO/LINGO预处理程序预处理程序线性优化求解程序线性优化求解程序非线性优化求解程序非线性优化求解程序分枝定界管理程序分枝定界管理程序1. 确定常数确定常数2. 识别类型识别类型1. 单纯形算法单纯形算法2. 内点算法内点算法(选选)1、顺序线性规划法、顺序线性规划法(SLP) 2、广义既约梯度法、广义既约梯度法(GRG) (选选) 3、多点搜索、多点搜索(Multistart) (选选) 建模时需要注意的几个基本问题建模时需要注意的
5、几个基本问题 1、尽量使用实数优化,减少整数约束和整数变量尽量使用实数优化,减少整数约束和整数变量2、尽量使用光滑优化,减少非光滑约束的个数尽量使用光滑优化,减少非光滑约束的个数 如:尽量少使用绝对值、符号函数、多个变量求如:尽量少使用绝对值、符号函数、多个变量求最大最大/最小值、四舍五入、取整函数等最小值、四舍五入、取整函数等3、尽量使用线性模型,减少非线性约束和非线性变尽量使用线性模型,减少非线性约束和非线性变量的个数量的个数 (如(如x/y 5 改为改为x5y)4、合理设定变量上下界,尽可能给出变量初始值合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当模型中使用
6、的参数数量级要适当 (如小于如小于103)需要掌握的几个重要方面需要掌握的几个重要方面1、LINDO: 正确阅读求解报告(尤其要掌握敏感性分析)正确阅读求解报告(尤其要掌握敏感性分析)2、LINGO: 掌握集合掌握集合(SETS)的应用;的应用;正确阅读求解报告;正确阅读求解报告;正确理解求解状态窗口;正确理解求解状态窗口; 学会设置基本的求解选项学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法掌握与外部文件的基本接口方法例例1 加工奶制品的生产计划加工奶制品的生产计划1桶牛奶 3公斤A1 12小时 8小时 4公斤A2 或获利24元/公斤 获利16元/公斤 50桶牛奶
7、桶牛奶 时间时间480小时小时 至多加工至多加工100公斤公斤A1 制订生产计划,使每天获利最大制订生产计划,使每天获利最大 35元可买到元可买到1桶牛奶,买吗?若买,每天最多买多少桶牛奶,买吗?若买,每天最多买多少? 可聘用临时工人,付出的工资最多是每小时几元可聘用临时工人,付出的工资最多是每小时几元? A1的获利增加到的获利增加到 30元元/公斤,应否改变生产计划?公斤,应否改变生产计划? 每天:每天:1桶牛奶 3公斤A1 12小时 8小时 4公斤A2 或获利24元/公斤 获利16元/公斤 x1桶牛奶生产桶牛奶生产A1 x2桶牛奶生产桶牛奶生产A2 获利获利 243x1 获利获利 164
8、x2 原料供应原料供应 5021 xx劳动时间劳动时间 48081221 xx加工能力加工能力 10031x决策变量决策变量 目标函数目标函数 216472xxzMax每天获利每天获利约束条件约束条件非负约束非负约束 0,21xx线性线性规划规划模型模型(LP)时间时间480小时小时 至多加工至多加工100公斤公斤A1 50桶牛奶桶牛奶 每天每天模型求解模型求解 max 72x1+64x2st2)x1+x2503)12x1+8x24804)3x1100end OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1
9、20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2DO RANGE (SENSITIVITY) ANALYSIS? No20桶牛奶生产桶牛奶生产A1, 30桶生产桶生产A2,利润,利润3360元。元。 模型求解模型求解 reduced cost值表值表示当该非基变量示当该非基变量增加一个单位时增加一个单位时(其他非基变量(其他非基变量保
10、持不变)目标保持不变)目标函数减少的量函数减少的量(对对max型问题型问题) OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2也可理解为:也可理解为:为了使该非基变为了使该非基变量变成基变量,量变成基
11、变量,目标函数中对应目标函数中对应系数应增加的量系数应增加的量 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000原料无剩余原料无剩余时间无剩余时间无剩余加工能力剩余加工能力剩余40max 72x1+64x2st2)x1+x2503)12
12、x1+8x24804)3x1100end三三种种资资源源“资源资源” 剩余为零的约束为紧约束(有效约束)剩余为零的约束为紧约束(有效约束) 结果解释结果解释 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000结果解释结果解释 最优解下最优
13、解下“资源资源”增增加加1单位时单位时“效益效益”的的增量增量 原料增原料增1单位单位, 利润增利润增48 时间加时间加1单位单位, 利润增利润增2 能力增减不影响利润能力增减不影响利润影子价格影子价格 35元可买到元可买到1桶牛奶,要买吗?桶牛奶,要买吗? 35 ”(或(或“=”(或(或“=”)功能相同)功能相同2.变量与系数间可有空格变量与系数间可有空格(甚至回车甚至回车), 但无运算符但无运算符3.变量名以字母开头,不能超过变量名以字母开头,不能超过8个字符个字符4.变量名不区分大小写(包括变量名不区分大小写(包括LINDO中的关键字)中的关键字)5.目标函数所在行是第一行,第二行起为约
14、束条件目标函数所在行是第一行,第二行起为约束条件6.行号行号(行名行名)自动产生或人为定义。行名以自动产生或人为定义。行名以“)”结结束束7.行中注有行中注有“!”符号的后面部分为注释。如符号的后面部分为注释。如: ! Its Comment.8.在模型的任何地方都可以用在模型的任何地方都可以用“TITLE” 对模型命名对模型命名(最多(最多72个字符),如:个字符),如: TITLE This Model is only an Example9.变量不能出现在一个约束条件的右端变量不能出现在一个约束条件的右端10. 表达式中不接受括号表达式中不接受括号“( )”和逗号和逗号“,”等任何符号等
15、任何符号, 例例: 400(X1+X2)需写为需写为400X1+400X211. 表达式应化简,如表达式应化简,如2X1+3X2- 4X1应写成应写成 -2X1+3X212. 缺省假定所有变量非负;可在模型的缺省假定所有变量非负;可在模型的“END”语句语句后用后用“FREE name”将变量将变量name的非负假定取消的非负假定取消13. 可在可在 “END”后用后用“SUB” 或或“SLB” 设定变量上设定变量上下界下界 例如:例如: “sub x1 10”的作用等价于的作用等价于“x1=10” 但用但用“SUB”和和“SLB”表示的上下界约束不计入模表示的上下界约束不计入模型的约束,也不
16、能给出其松紧判断和敏感性分析。型的约束,也不能给出其松紧判断和敏感性分析。14. “END”后对后对0-1变量说明:变量说明:INT n 或或 INT name15. “END”后对整数变量说明:后对整数变量说明:GIN n 或或 GIN name使用使用LINDOLINDO的一些注意事项的一些注意事项二次规划规划(QP)问题 LINDO可求解二次规划可求解二次规划(QP)问题,但输入方式较问题,但输入方式较复杂,因为在复杂,因为在LINDO中不许出现非线性表达式中不许出现非线性表达式 需要为每一个实际约束增加一个对偶变量需要为每一个实际约束增加一个对偶变量(LAGRANGE乘子),在实际约束
17、前增加有关乘子),在实际约束前增加有关变量的一阶最优条件,转化为互补问题变量的一阶最优条件,转化为互补问题 “END”后面使用后面使用QCP命令指明实际约束开始的命令指明实际约束开始的行号,然后才能求解行号,然后才能求解 建议总是用建议总是用LINGO解解QP注意注意对对QP和和IP: 敏感性分析意义不大敏感性分析意义不大状态窗口状态窗口(LINDO Solver Status) 当前状态:已达最优解当前状态:已达最优解 迭代次数:迭代次数:18次次 约束不满足的约束不满足的“量量”(不不是是“约束个数约束个数”):0 当前的目标值:当前的目标值:94 最好的整数解:最好的整数解:94 整数规
18、划的界:整数规划的界:93.5 分枝数:分枝数:1 所用时间:所用时间:0.00秒(太快秒(太快了,还不到了,还不到0.005秒)秒) 刷新本界面的间隔刷新本界面的间隔:1(秒秒)选项设置选项设置 Preprocess:预处理:预处理(生成割平面生成割平面); Preferred Branch:优先的分枝方式:优先的分枝方式: “Default”(缺省方式)、(缺省方式)、“Up”(向上取整优先)、(向上取整优先)、“Down”(向下取整优先);(向下取整优先); IP Optimality Tol:IP最优值允许的误最优值允许的误差上限(一个百分数,如差上限(一个百分数,如5%即即0.05)
19、;); IP Objective Hurdle:IP目标函数的篱目标函数的篱笆值,即只寻找比这个值更优最优解笆值,即只寻找比这个值更优最优解(如当知道当前模型的某个整数可行解(如当知道当前模型的某个整数可行解时,就可以设置这个值);时,就可以设置这个值); IP Var Fixing Tol:固定一个整数变量:固定一个整数变量取值所依据的一个上限(如果一个整数取值所依据的一个上限(如果一个整数变量的判别数(变量的判别数(REDUCED COST)的)的值很大,超过该上限,则以后求解中把值很大,超过该上限,则以后求解中把该整数变量固定下来)。该整数变量固定下来)。Nonzero Limit:非零
20、系数的个数上限;非零系数的个数上限;Iteration Limit:最大迭代步数;最大迭代步数;Initial Contraint Tol:约束的初始误差上限;约束的初始误差上限;Final Contraint Tol:约束的最后误差上限;约束的最后误差上限;Entering Var Tol:进基变量的进基变量的REDUCED COST的误差限;的误差限;Pivot Size Tol:旋转元的误差限旋转元的误差限Report/Statistics第一行:模型有第一行:模型有5行(约束行(约束4行),行),4个变量,两个整数变量(没有个变量,两个整数变量(没有0-1变量),从第变量),从第4行开
21、始是二次规划的实际约束。行开始是二次规划的实际约束。第二行:非零系数第二行:非零系数19个,约束中非零系数个,约束中非零系数12个个(其中其中6个为个为1或或-1),模型密度为模型密度为0.760(密度密度=非零系数非零系数/行数行数(变量数变量数) 。第三行的意思:按绝对值看,系数最小、最大分别为第三行的意思:按绝对值看,系数最小、最大分别为0.3和和277。第四行的意思:模型目标为极小化;小于等于、等于、大于等于约第四行的意思:模型目标为极小化;小于等于、等于、大于等于约束分别有、个;广义上界约束(束分别有、个;广义上界约束(GUBS)不超过个;)不超过个;变量上界约束(变量上界约束(VU
22、BS)不少于个。所谓)不少于个。所谓GUBS,是指一组不,是指一组不含有相同变量的约束;所谓含有相同变量的约束;所谓VUBS,是指一个蕴涵变量上界的约,是指一个蕴涵变量上界的约束,如从约束束,如从约束X1+X2-X3=0可以看出,若可以看出,若X3=0,则,则X1=0,X2=0(因为有非负限制),因此(因为有非负限制),因此X1+X2-X3=0是一个是一个VUBS约束。约束。第五行的意思:只含个变量的约束个数第五行的意思:只含个变量的约束个数=个;冗余的列数个;冗余的列数=个个ROWS= 5 VARS= 4 INTEGER VARS= 2( 0 = 0/1) QCP= 4NONZEROS= 1
23、9 CONSTRAINT NONZ= 12( 6 = +-1) DENSITY=0.760SMALLEST AND LARGEST ELEMENTS IN ABSOLUTE VALUE= 0.300000 277.000OBJ=MIN, NO. : 2 0 2, GUBS = 0SINGLE COLS= 0 REDUNDANT COLS= 0LINDOLINDO行命令、命令脚本文件行命令、命令脚本文件批处理:可以采用命令脚本(行命令序列)批处理:可以采用命令脚本(行命令序列)WINDOWS环境下行命令的意义不大环境下行命令的意义不大Example 演示演示Bat01.txt用用FILE / T
24、AKE COMMANDS (F11) 命令调入命令调入必须是以必须是以LINDO PACKED形式形式(压缩)保存的文件(压缩)保存的文件FILE / SAVE命令命令SAVE行命令行命令LINGO软件简介软件简介目标与约束段目标与约束段 集合段(集合段(SETS ENDSETS) 数据段(数据段(DATA ENDDATA)初始段(初始段(INIT ENDINIT)LINGO模型的构成:模型的构成:4个段个段LINGO模型的优点模型的优点包含了包含了LINDO的全部功能的全部功能提供了灵活的编程语言(矩阵生成器)提供了灵活的编程语言(矩阵生成器)LINGOLINGO模型模型 例:选址问题例:选
25、址问题某公司有某公司有6个建筑工地,位置坐标为个建筑工地,位置坐标为(ai, bi) (单位:公里单位:公里),水泥日用量水泥日用量di (单位:吨)单位:吨)ia1.258.750.55.7537.25b1.250.754.7556.57.75d35476111)现有 2 料场,位于 A (5, 1), B (2, 7),记(xj,yj),j=1,2, 日储量 ej各有 20 吨。假设:假设:料场料场和工地之间和工地之间有直线道路有直线道路目标:制定每天的供应计划,即从 A, B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。用例中数据计算,最优解为i1234561ic(料料场场 A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金星 数学模型 优化 模型 lingo 课件
限制150内