数学规划及软件市公开课一等奖百校联赛特等奖课件.pptx
《数学规划及软件市公开课一等奖百校联赛特等奖课件.pptx》由会员分享,可在线阅读,更多相关《数学规划及软件市公开课一等奖百校联赛特等奖课件.pptx(160页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7/1/2024 11:37 PM7/1/2024 11:37 PM 王文祥王文祥.7数学规划模型、案例与数学规划模型、案例与软件求解软件求解10/10/第1页7/1/2024 11:37 PM7/1/2024 11:37 PM一一.数学规划模型与优化软件介绍数学规划模型与优化软件介绍二二.LINDO/LINGO.LINDO/LINGO软件软件Outline四四.LINGO LINGO建模语言建模语言 三三.建模实例建模实例10/10/第2页7/1/2024 11:37 PM7/1/2024 11:37 PM数学规划数学规划是优化问题一个分支,起始于是优化问题一个分支,起始于2020世纪世纪3
2、030年代末,年代末,5050年代与年代与6060年代发展成为年代发展成为一个完整分支并受到数学界和社会各界重视。一个完整分支并受到数学界和社会各界重视。七八十年代是数学规划飞速发展时期,不论七八十年代是数学规划飞速发展时期,不论是从理论上还是算法方面都得到了深入完善。是从理论上还是算法方面都得到了深入完善。时至今日数学规划依然是运筹学领域中热点时至今日数学规划依然是运筹学领域中热点研究问题。从国内外数学建模竞赛试题中看,研究问题。从国内外数学建模竞赛试题中看,有二分之一以上问题可用数学规划进行求解。有二分之一以上问题可用数学规划进行求解。一一.数学规划模型与优化软件介绍数学规划模型与优化软件
3、介绍10/10/第3页7/1/2024 11:37 PM7/1/2024 11:37 PM约约束束条条件件决议变量决议变量数学规划模型普通形式数学规划模型普通形式目标函数目标函数可行域三要素:三要素:决议变量决议变量;目标函数目标函数;约束条件约束条件可行解(只满足约束)与最优解可行解(只满足约束)与最优解(取到最优值取到最优值)“受约束于受约束于”之意10/10/第4页7/1/2024 11:37 PM7/1/2024 11:37 PM数学规划类型数学规划类型连续规划连续规划:全部决议变量取值均全部决议变量取值均 为连续数值为连续数值(实数实数)离散规划离散规划:部分或全部决议变量部分或全部
4、决议变量 只取离散数值只取离散数值10/10/第5页7/1/2024 11:37 PM7/1/2024 11:37 PM线性规划线性规划(LP)目标和约束均为线性函数目标和约束均为线性函数非线性规划非线性规划(NLP)目标或约束中存在非线性函数目标或约束中存在非线性函数二次规划二次规划(QP)目标为二次函数、约束为线性目标为二次函数、约束为线性整数规划整数规划(IP)决议变量决议变量(全部或部分全部或部分)为整数为整数整数整数线性线性规划规划(ILP),整数,整数非线性非线性规划规划(INLP)纯整数规划纯整数规划(PIP),混合整数规划混合整数规划(MIP)普通整数规划,普通整数规划,0-1
5、(整数)规划(整数)规划连连续续规规划划离离散散规规划划数学规划数学规划(Mathematical Programming Mathematical Programming)10/10/第6页7/1/2024 11:37 PM7/1/2024 11:37 PM惯用优化软件惯用优化软件 1.LINDO/LINGO软件软件2.MATLAB优化工具箱优化工具箱/mathematica优化程序包优化程序包3.EXCEL软件优化功效软件优化功效4.SAS(统计分析统计分析)软件优化功效软件优化功效10/10/第7页7/1/2024 11:37 PM7/1/2024 11:37 PMLINDO企业软件产品
6、简明介绍企业软件产品简明介绍美国芝加哥美国芝加哥(Chicago)大学大学LinusSchrage教授于教授于1980年前后开发年前后开发,以后成立以后成立LINDO系统企业系统企业(LINDOSystemsInc.),),网址:网址:http:/LINDO:LinearInteractionandDiscreteOptimizerLINGO:LinearInteractionGeneralOptimizer10/10/第8页7/1/2024 11:37 PM7/1/2024 11:37 PMLINDO和和LINGO能求解数学规划模型能求解数学规划模型LINGOLINDO数学规划模型数学规划模
7、型线性规划线性规划(LP)非线性规划非线性规划(NLP)二次规划二次规划(QP)连续规划连续规划整数规划整数规划(IP)10/10/第9页7/1/2024 11:37 PM7/1/2024 11:37 PMLINDO 是专门用于求解数学规划软件包。是专门用于求解数学规划软件包。LINDO 执行速度很快、易于方便输入,所以在数学、科研执行速度很快、易于方便输入,所以在数学、科研和工业界得到广泛应用。和工业界得到广泛应用。LINDO 主要用于解线性规划、二次规划。也能够主要用于解线性规划、二次规划。也能够用于线性方程组求解以及代数方程求根等。用于线性方程组求解以及代数方程求根等。LINDO 中包含
8、了建模语言和许多惯用数学函数中包含了建模语言和许多惯用数学函数(包含大量概论函数),可供使用者建立规划问题(包含大量概论函数),可供使用者建立规划问题时调用。时调用。普通用普通用LINDO(Linear Interactive and Discrete Optimizer)处理线性规划)处理线性规划二二.LINDO/LINGO LINDO/LINGO软件介绍软件介绍10/10/第10页7/1/2024 11:37 PM7/1/2024 11:37 PM最大规模模型非零系数能够到达最大规模模型非零系数能够到达1,000,0001,000,000个个最大变量个数能够到达最大变量个数能够到达100,
9、000100,000个,最大目标函数个,最大目标函数和约束条件个数能够到达和约束条件个数能够到达3 3个个最大整数变量个数能够到达最大整数变量个数能够到达100,000100,000个个 LINDO 6.1 学生版至多可求解多达学生版至多可求解多达300 个变量和个变量和150 个约束规划问题个约束规划问题10/10/第11页7/1/2024 11:37 PM7/1/2024 11:37 PM1.求解线性规划和非线性规划问题2.模型输入简练直观3.运行速度快计算能力强4.内置建模语言提供内部函数较少语句直观描述大规模优化模型5.引入集合轻易建模6.数据交换方便(与EXCEL和数据库)LINGO
10、 LINGO软件主要功效和特点软件主要功效和特点10/10/第12页7/1/2024 11:37 PM7/1/2024 11:37 PM例例1 简单线性规划(简单线性规划(LP)问题:)问题:在在空白模型窗口中输入这个空白模型窗口中输入这个LP模型:模型:max 2x+3yst 4x+3y=10 3x+5y12end10/10/第13页7/1/2024 11:37 PM7/1/2024 11:37 PM如图:如图:10/10/第14页7/1/2024 11:37 PM7/1/2024 11:37 PMLINDO程序有以下特点:程序有以下特点:程序以程序以“MAX”(或(或“MIN”)开始,表示
11、目标最大化(或)开始,表示目标最大化(或最小化)问题,后面直接写目标函数表示式和约束表示式;最小化)问题,后面直接写目标函数表示式和约束表示式;目标函数和约束之间用目标函数和约束之间用“ST”分开;(或用分开;(或用“s.t.”)程序以程序以“END”结束(结束(“END”也能够省略)。也能够省略)。系数与变量之间乘号必须省略。系数与变量之间乘号必须省略。系统对目标函数所在行自动生成行名系统对目标函数所在行自动生成行名“1)”,对约束默认对约束默认行名分别是行名分别是“2)”“3)”,用户也能够自己输入行名;行名,用户也能够自己输入行名;行名放在对应约束之前。放在对应约束之前。书写相当灵活,无
12、须对齐,不区分字符大小写。书写相当灵活,无须对齐,不区分字符大小写。默认全部变量都是非负默认全部变量都是非负,所以无须输入非负约束。所以无须输入非负约束。约束条件中约束条件中“=”可分别用可分别用“”代替。代替。一行中感叹号一行中感叹号“!”后面文字为是注释语句,可增强程序后面文字为是注释语句,可增强程序可读性,不参加模型建立。可读性,不参加模型建立。10/10/第15页7/1/2024 11:37 PM7/1/2024 11:37 PM模型求解:模型求解:用鼠标点击工具栏中图标用鼠标点击工具栏中图标 ,或从菜单中选择或从菜单中选择Solve|Solve(Ctrl+S)命令命令LINDO首先开
13、始编译这个首先开始编译这个模型,编译没有错误则开模型,编译没有错误则开始求解;始求解;求解时会首先显示如右图求解时会首先显示如右图所表示所表示LINDO“求解器运行状态窗口求解器运行状态窗口”。10/10/第16页7/1/2024 11:37 PM7/1/2024 11:37 PM求解器运行状态窗口显示对应信息及含义:求解器运行状态窗口显示对应信息及含义:名称名称含含义义Status当前状态显示当前求解状态:“Optimal”表示已抵达最优解;其它可能显示还有三个:Feasible(可行解),Infeasible(不可行),Unbounded(最优值无界)。Iterations迭代次数显显示迭
14、代次数:示迭代次数:“2”表示表示经过经过了了2次迭代。次迭代。Infeasibility不可行性约束不满足量(即各个约束条件不满足“数量”和):“0”表示解是可行。Objective当前目标值显示目标函数当前值:7.45455。BestIP整数规划当前最正确目标值显示整数规划当前最正确目标值:“N/A”(NoAnswer)表示无答案或无意义,因为这个模型中没有整数变量,不是整数规划(IP)。10/10/第17页7/1/2024 11:37 PM7/1/2024 11:37 PM名称含义IPBound整数规划界显示整数规划界(对最大化问题显示上界;对最小化问题,显示下界)Branches分枝数
15、显示分枝定界算法已经计算分枝数:Elapsed Time所用时间显显示示计计算所用算所用时间时间(秒):(秒):“0.00”说说明明计计算太快了,用算太快了,用时还时还不到不到0.005秒。秒。UpdateInterval刷新本界面时间间隔显示和控制刷新本界面时间间隔:“1”表示1秒;用户能够直接在界面上修改这个时间间隔。InterruptSolver中止求解程序当模型规模比较大时,求解时间会很长,能够在程序运行过程中用鼠标点击该按钮终止计算。Close关闭该该按按钮钮是关是关闭闭状状态态窗口,并不窗口,并不终终止止计计算算10/10/第18页7/1/2024 11:37 PM7/1/2024
16、 11:37 PM紧接着弹出一对话框,问询你是否需要做灵敏性分析紧接着弹出一对话框,问询你是否需要做灵敏性分析(DO RANGE(SENSITIVITY)ANALYSIS?)先选)先选择择“否(否(N)”按钮,这个窗口就会关闭。然后,再按钮,这个窗口就会关闭。然后,再把状态窗口也关闭。把状态窗口也关闭。10/10/第19页7/1/2024 11:37 PM7/1/2024 11:37 PM汇报窗口用鼠标选择用鼠标选择“Window|Reports Window”(汇报窗口),(汇报窗口),就能够查看该窗口内容就能够查看该窗口内容 10/10/第20页7/1/2024 11:37 PM7/1/2
17、024 11:37 PM输出结果表示意思是:“LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。表示单纯形法在两次迭代(旋转)后得到最优解。“OBJECTIVE FUNCTION VALUE 1)7.454545”表示最优目标值为表示最优目标值为7.454545.(注意:在(注意:在LINDO中目标函数中目标函数所在行总是被认为是第所在行总是被认为是第1行,这就是这里行,这就是这里“1)”含义)。含义)。10/10/第21页7/1/2024 11:37 PM7/1/2024 11:37 PM“VALUE”给出最优解中各变量给出最优解中各变量(VAR
18、IABLE)值值:X=1.272727,Y=1.636364.“REDUCED COST”给出最优单纯形表中目标函数行(第给出最优单纯形表中目标函数行(第1行)中变量对应系数行)中变量对应系数.“SLACK OR SURPLUS(松驰或剩下)(松驰或剩下)”给出约束对应松给出约束对应松驰变量值驰变量值:第第2、3行松驰变量均为行松驰变量均为0,说明对于最优解来讲,说明对于最优解来讲,两个约束(第两个约束(第2、3行)均取等号,即都是紧约束。行)均取等号,即都是紧约束。10/10/第22页7/1/2024 11:37 PM7/1/2024 11:37 PM“DUAL PRICES”给出对偶价格(
19、或影子价格)值给出对偶价格(或影子价格)值:表示表示最最优解下优解下“资源资源”增加增加1单位时单位时“效益效益”增量。增量。第第2、3行对偶价格分别为行对偶价格分别为.090909,.545455。“NO.ITERATIONS=2”表示用单纯形法进行了两次迭代。表示用单纯形法进行了两次迭代。10/10/第23页7/1/2024 11:37 PM7/1/2024 11:37 PM使用使用LINDOLINDO一些注意事项一些注意事项1.“”(或(或“=”(或(或“=”)功效相)功效相同同2.变量与系数间可有空格变量与系数间可有空格(甚至回车甚至回车),但无运算符但无运算符3.变量名以字母开头,不
20、能超出变量名以字母开头,不能超出8个字符个字符4.变量名不区分大小写(包含变量名不区分大小写(包含LINDO中关键字)中关键字)5.目标函数所在行是第一行,第二行起为约束条件目标函数所在行是第一行,第二行起为约束条件6.行号行号(行名行名)自动产生或人为定义。行名以自动产生或人为定义。行名以“)”结结束束7.行中注有行中注有“!”符号后面部分为注释。如符号后面部分为注释。如:!ItsComment.8.在模型任何地方都能够用在模型任何地方都能够用“TITLE”对模型命名对模型命名(最多(最多72个字符),如:个字符),如:TITLEThisModelisonlyanExample10/10/第
21、24页7/1/2024 11:37 PM7/1/2024 11:37 PM9.变量不能出现在一个约束条件右端变量不能出现在一个约束条件右端10.表示式中不接收括号表示式中不接收括号“()”和逗号和逗号“,”等任何符号等任何符号,例例:400(X1+X2)需写为需写为400X1+400X211.表示式应化简,如表示式应化简,如2X1+3X2-4X1应写成应写成-2X1+3X212.缺省假定全部变量非负;可在模型缺省假定全部变量非负;可在模型“END”语句后用语句后用“FREEname”将变量将变量name非负假定取消非负假定取消13.可在可在“END”后用后用“SUB”或或“SLB”设定变量上下
22、界设定变量上下界比如:比如:“subx110”作用等价于作用等价于“x1=10”但用但用“SUB”和和“SLB”表示上下界约束不计入模型约表示上下界约束不计入模型约束,也不能给出其松紧判断和敏感性分析。束,也不能给出其松紧判断和敏感性分析。使用使用LINDOLINDO一些注意事项一些注意事项10/10/第25页7/1/2024 11:37 PM7/1/2024 11:37 PM14.“END”后对后对0-1变量说明:变量说明:INTn或或INTname15.“END”后对整数变量说明:后对整数变量说明:GINn或或GINname使用使用LINDOLINDO一些注意事项一些注意事项16.简单错误
23、检验和防止:简单错误检验和防止:输入模型时可能会有一些输入错误输入模型时可能会有一些输入错误.当问题规模当问题规模较大时较大时,要查找错误是比较困难。在要查找错误是比较困难。在LINDO 中有一些中有一些可帮助寻找错误功效,其中之一就是菜单命令可帮助寻找错误功效,其中之一就是菜单命令“Report|Picture(Alt+5)”,它功效是能够将目它功效是能够将目标函数和约束表示式中非零系数经过列表(或图形)标函数和约束表示式中非零系数经过列表(或图形)显示出来。显示出来。10/10/第26页7/1/2024 11:37 PM7/1/2024 11:37 PM三个变量范围限定命令三个变量范围限定
24、命令(FREE(FREE、SUBSUB、SLB)SLB)作用作用求解以下求解以下LP问题:问题:这个模型中对变量这个模型中对变量x没有非负限制,对没有非负限制,对y有上限限制,有上限限制,对对z有下限限制。用有下限限制。用FREE、SUB、SLB三个命令三个命令能够实现这些功效。能够实现这些功效。10/10/第27页7/1/2024 11:37 PM7/1/2024 11:37 PMMAX 2x 3y+4zS.T.con2)4 x+3y+2z =10con3)-3x+5 y-z 8con5)-5x-y-z 2ENDfree x !说明:变量说明:变量x没有非负限制没有非负限制sub y 20
25、!说明:变量说明:变量y上界为上界为20slb z 30 !说明:变量说明:变量z下界为下界为30详细输入以下:详细输入以下:求解得到结果:最大值为求解得到结果:最大值为122,最优解为,最优解为x=-17,y=0,z=39。能够看出能够看出y上界(上界(20)在最优解中并没有到达,)在最优解中并没有到达,z下界(下界(30)也没有到达,所)也没有到达,所以模型中去掉以模型中去掉“sub y 20”和和“slb z 30”两个语句,得到结不变。两个语句,得到结不变。但因为最优解中但因为最优解中x取值为负值,所以取值为负值,所以“free x”这个语句确实是不能少。不妨试这个语句确实是不能少。不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 规划 软件 公开 一等奖 联赛 特等奖 课件
限制150内