数学建模讲座之七最优化模型课件.ppt
最优化方法概述最优化方法概述 1 1、最最优优化化理理论论和和方方法法是是近近二二十十多多年年来来发发展展十十分分迅迅速的一个数学分支。速的一个数学分支。2 2、在数学上,最优化是一种求极值的方法。、在数学上,最优化是一种求极值的方法。3 3、最优化已经广泛的渗透到工程、经济、电子技、最优化已经广泛的渗透到工程、经济、电子技术等领域。术等领域。1/26/2023数学建模在实际生活当中,人们做任何事情,不管是分在实际生活当中,人们做任何事情,不管是分析问题,还是进行决策,都要用一种标准衡量析问题,还是进行决策,都要用一种标准衡量一下是否达到了最优。一下是否达到了最优。(比如基金人投资)(比如基金人投资)在各种科学问题、工程问题、生产管理、社会在各种科学问题、工程问题、生产管理、社会经济问题中,人们总是希望在有限的资源条件经济问题中,人们总是希望在有限的资源条件下,用尽可能小的代价,获得最大的收获。下,用尽可能小的代价,获得最大的收获。(比如保险)(比如保险)1/26/2023数学建模 数学家对最优化问题的研究已经有很多年的数学家对最优化问题的研究已经有很多年的历史。历史。以前解决最优化问题的数学方法只限于古典以前解决最优化问题的数学方法只限于古典求导方法和变分法(求求导方法和变分法(求无约束极值无约束极值问题),拉格问题),拉格朗日(朗日(LagrangeLagrange)乘数法解决等式约束下的条件)乘数法解决等式约束下的条件极值问题。极值问题。计算机技术的出现,使得数学家研究出了许计算机技术的出现,使得数学家研究出了许多最优化方法和算法用以解决以前难以解决的问多最优化方法和算法用以解决以前难以解决的问题。题。1/26/2023数学建模几个概念几个概念最优化最优化是从所有可能方案中选择最合理的一种以是从所有可能方案中选择最合理的一种以达到最优目标的学科。达到最优目标的学科。最优方案最优方案是达到最优目标的方案。是达到最优目标的方案。最优化方法最优化方法是搜寻最优方案的方法。是搜寻最优方案的方法。最优化理论最优化理论就是最优化方法的理论。就是最优化方法的理论。1/26/2023数学建模经典极值问题经典极值问题包括:包括:无约束极值问题无约束极值问题约束条件下的极值问题约束条件下的极值问题1/26/2023数学建模1 1、无约束极值问题的数学模型、无约束极值问题的数学模型 2 2、约束条件下极值问题的数学模型、约束条件下极值问题的数学模型 其中,极大值问题可以转化为极小值问题来其中,极大值问题可以转化为极小值问题来进行求解。如求:进行求解。如求:可以转化为:可以转化为:1/26/2023数学建模1 1、无约束极值问题的求解、无约束极值问题的求解 例例1:求求函函数数y=2x3+3x2-12x+14在在区区间间-3,4上上的的最最大值与最小值。大值与最小值。解:令解:令f(x)=y=2x3+3x2-12x+14 f(x)=6x2+6x-12=6(x+2)(x-1)解方程解方程f(x)=0,得到,得到x1=-2,x2=1,又,又由于由于f(-3)=23,f(-2)=34,f(1)=7,f(4)=142,综上得,综上得,函函数数f(x)在在x=4取取得得在在-3,4上上得得最最大大值值f(4)=142,在在x=1处取得在处取得在-3,4上取得最小值上取得最小值f(1)=7 1/26/2023数学建模1/26/2023数学建模用用MATLAB解无约束优化问题解无约束优化问题 其中等式(其中等式(3)、()、(4)、()、(5)的右边可选用()的右边可选用(1)或()或(2)的等式右边的等式右边.函数函数fminbnd的算法基于黄金分割法和二次插值法,它要求的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解目标函数必须是连续函数,并可能只给出局部最优解.常用格式如下:常用格式如下:(1)x=fminbnd(fun,x1,x2)(2)x=fminbnd(fun,x1,x2,options)(3)x,fval=fminbnd()(4)x,fval,exitflag=fminbnd()(5)x,fval,exitflag,output=fminbnd()1/26/2023数学建模MATLAB(wliti1)主程序为主程序为wliti1.m:f=2*exp(-x).*sin(x);fplot(f,0,8);%作图语句作图语句 xmin,ymin=fminbnd(f,0,8)f1=-2*exp(-x).*sin(x);xmax,ymax=fminbnd(f1,0,8)1/26/2023数学建模例例2 有边长为有边长为3m的正方形铁板,在四个角剪去相等的正方形以的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?制成方形无盖水槽,问如何剪法使水槽的容积最大?解解先编写先编写M文件文件fun0.m如下如下:function f=fun0(x)f=-(3-2*x).2*x;主程序为主程序为wliti2.m:x,fval=fminbnd(fun0,0,1.5);xmax=x fmax=-fval运算结果为运算结果为:xmax=0.5000,fmax=2.0000.即剪掉的正方形的边即剪掉的正方形的边长为长为0.5m时水槽的容积最大时水槽的容积最大,最大容积为最大容积为2m3.MATLAB(wliti2)1/26/2023数学建模 命令格式为命令格式为:(1)x=fminunc(fun,X0);或);或x=fminsearch(fun,X0)(2)x=fminunc(fun,X0,options););或或x=fminsearch(fun,X0,options)(3)x,fval=fminunc(.););或或x,fval=fminsearch(.)(4)x,fval,exitflag=fminunc(.););或或x,fval,exitflag=fminsearch(5)x,fval,exitflag,output=fminunc(.););或或x,fval,exitflag,output=fminsearch(.)2.多元函数无约束优化问题多元函数无约束优化问题标准型为:标准型为:min1/26/2023数学建模例例 用用fminsearch函数求解函数求解输入命令输入命令:f=100*(x(2)-x(1)2)2+(1-x(1)2;x,fval,exitflag,output=fminsearch(f,-1.2 2)运行结果运行结果:x=1.0000 1.0000fval=1.9151e-010exitflag=1output=iterations:108 funcCount:202 algorthm:Nelder-Mead simplex direct search 1/26/2023数学建模有约束最优化有约束最优化最优化方法分类最优化方法分类(一一)线线性性最最优优化化:目目标标函函数数和和约约束束条条件件都都是是线线性的则称为线性最优化。性的则称为线性最优化。非非线线性性最最优优化化:目目标标函函数数和和约约束束条条件件如如果果含含有非线性的,则称为非线性最优化。有非线性的,则称为非线性最优化。(二二)静静态态最最优优化化:如如果果可可能能的的方方案案与与时时间间无无关关,则是静态最优化问题。则是静态最优化问题。动态最优化动态最优化:如果可能的方案与时间有关,如果可能的方案与时间有关,则是动态最优化问题则是动态最优化问题1/26/2023数学建模有约束最优化问题的数学建模有约束最优化问题的数学建模 有约束最优化模型一般具有以下形式:有约束最优化模型一般具有以下形式:或或 其中其中f(x)为目标函数,省略号表示约束式子,可以是为目标函数,省略号表示约束式子,可以是等式约束,也可以是不等式约束。等式约束,也可以是不等式约束。1/26/2023数学建模 根根据据目目标标函函数数,约约束束条条件件的的特特点点将将最最优优化方法包含的主要内容大致如下划分:化方法包含的主要内容大致如下划分:线性规划线性规划整数规划整数规划非线性规划非线性规划动态规划动态规划多目标规划多目标规划 对策论对策论最优化方法主要内容最优化方法主要内容1/26/2023数学建模两个引例两个引例问题一问题一:某工厂在计划期内要安排生产:某工厂在计划期内要安排生产I、II两种产品,两种产品,已知生产单位产品所需的设备台时及已知生产单位产品所需的设备台时及A、B两种原材料的两种原材料的消耗,如下表所示消耗,如下表所示 12kg40原材料原材料B16kg04原材料原材料A8台时台时21设备设备III该工厂每生产一件产品该工厂每生产一件产品I可获利可获利2元,每生产一件产品元,每生产一件产品II可获利可获利3元。问应如何安排计划使该工厂获利最多?元。问应如何安排计划使该工厂获利最多?1/26/2023数学建模解解:该工厂生产产品:该工厂生产产品I x1件,生产产品件,生产产品II x2件,件,我们可建立如下数学模型:我们可建立如下数学模型:s.t.1/26/2023数学建模问题二问题二:某厂每日某厂每日8小时的产量不低于小时的产量不低于1800件件.为了进行质量为了进行质量控制,计划聘请两种不同水平的检验员控制,计划聘请两种不同水平的检验员.一级检验员的标准为:一级检验员的标准为:速度速度25件件/小时,正确率小时,正确率98%,计时工资,计时工资4元元/小时;二级检验员小时;二级检验员的标准为:速度的标准为:速度15件件/小时,正确率小时,正确率95%,计时工资,计时工资3元元/小时小时.检检验员每错检一次,工厂要损失验员每错检一次,工厂要损失2元元.为使总检验费用最省,该工为使总检验费用最省,该工厂应聘一级、二级检验员各几名?厂应聘一级、二级检验员各几名?解解 设需要一级和二级检验员的人数分别为设需要一级和二级检验员的人数分别为x1、x2人人,则应付检验员的工资为:则应付检验员的工资为:因检验员错检而造成的损失为:因检验员错检而造成的损失为:1/26/2023数学建模故目标函数为:故目标函数为:约束条件为:约束条件为:1/26/2023数学建模 运用最优化方法解决最优化问题的一般运用最优化方法解决最优化问题的一般方法步骤如下:方法步骤如下:前期分析:分析问题,找出要解决的目标,约束条件,前期分析:分析问题,找出要解决的目标,约束条件,并确立最优化的目标。并确立最优化的目标。定义变量,建立最优化问题的数学模型,列出目标函定义变量,建立最优化问题的数学模型,列出目标函数和约束条件。数和约束条件。针对建立的模型,选择合适的求解方法或数学软件。针对建立的模型,选择合适的求解方法或数学软件。编写程序,利用计算机求解。编写程序,利用计算机求解。对结果进行分析,讨论诸如:结果的合理性、正确性,对结果进行分析,讨论诸如:结果的合理性、正确性,算法的收敛性,模型的适用性和通用性,算法效率与算法的收敛性,模型的适用性和通用性,算法效率与误差等。误差等。1/26/2023数学建模线线 性性 规规 划划某豆腐店用黄豆制作两种不同口感的豆腐出售。制作口感较鲜嫩的豆腐每千克需要0.3千克一级黄豆及0.5千克二级黄豆,售价10元;制作口感较厚实的豆腐每千克需要0.4千克一级黄豆及0.2千克二级黄豆,售价5元。现小店购入9千克一级黄豆和8千克二级黄豆。问:应如何安排制作计划才能获得最大收益。1/26/2023数学建模一、问题前期分析一、问题前期分析该问题是在不超出制作两种不同口感豆腐所需黄该问题是在不超出制作两种不同口感豆腐所需黄豆总量条件下合理安排制作计划,使得售出豆总量条件下合理安排制作计划,使得售出各种豆腐能获得最大收益。各种豆腐能获得最大收益。二、模型假设二、模型假设1假设制作的豆腐能全部售出。假设制作的豆腐能全部售出。2假设豆腐售价无波动。假设豆腐售价无波动。1/26/2023数学建模变量假设:变量假设:设计划制作口感鲜嫩和厚实的豆腐各设计划制作口感鲜嫩和厚实的豆腐各x1千克千克和和 x2千克,可获得收益千克,可获得收益R元。元。目标函数:获得的总收益最大。目标函数:获得的总收益最大。总收益可表示为:总收益可表示为:受一级黄豆数量限制:受一级黄豆数量限制:受二级黄豆数量限制:受二级黄豆数量限制:1/26/2023数学建模综上分析,得到该问题的线性规划模型综上分析,得到该问题的线性规划模型 s.t.1/26/2023数学建模用用Matlab编程求解程序如下:编程求解程序如下:X,FVAL,EXITFLAG,OUTPUT=LINPROG(f,A,b)f=-10 5;A=0.3 0.4;0.5 0.2;B=9;8;X,FVAL,EXITFLAG,OUTPUT=LINPROG(f,A,b)X=10.0000 15.0000FVAL=-175.00001/26/2023数学建模用用YALMIP编程求解程序如下:编程求解程序如下:x=sdpvar(1,2);C=10 5;a=0.3 0.4;0.5 0.2;b=9 8;f=C*x;F=set(0=x=inf);F=F+set(a*x=b);solvesdp(F,-f)double(f)double(x)ans=175ans=10 151/26/2023数学建模线线 性性 规规 划划 设某工厂有甲、乙、丙、丁四个车间,生产设某工厂有甲、乙、丙、丁四个车间,生产A、B、C、D、E、F六种产品。根据机床性能和六种产品。根据机床性能和以前的生产情况,得知每单位产品所需车间的工以前的生产情况,得知每单位产品所需车间的工作小时数、每个车间在一个季度工作小时的上限作小时数、每个车间在一个季度工作小时的上限以及单位产品的利润,如下表所示以及单位产品的利润,如下表所示(例如,生产一例如,生产一个单位的个单位的A产品,需要甲、乙、丙三个车间分别工作产品,需要甲、乙、丙三个车间分别工作1小小时、时、2小时和小时和4小时小时)问:每种产品各应该每季度生产多少,才能使这问:每种产品各应该每季度生产多少,才能使这个工厂每季度生产利润达到最大。个工厂每季度生产利润达到最大。1/26/2023数学建模生产单位生产单位产品所需产品所需车间的工车间的工作小时数作小时数 ABCDEF每个车间每个车间一个季度一个季度工作小时工作小时的上限的上限甲甲111323500乙乙255500丙丙425500丁丁138500利润利润(百元百元)4.02.45.55.04.58.51/26/2023数学建模这是一个典型的最优化问题,属线性规划。这是一个典型的最优化问题,属线性规划。假设:产品合格且能及时销售出去;工作无等待情况等假设:产品合格且能及时销售出去;工作无等待情况等 变量说明:变量说明:xj:第:第j种产品的生产量(种产品的生产量(j=1,2,6)aij:第:第i车间生产单位第车间生产单位第j种产品所需工作小时数种产品所需工作小时数 (i=1,2,3,4;j=1,2,6)bi:第:第i车间的最大工作上限车间的最大工作上限 cj:第:第j种产品的单位利润种产品的单位利润 则:则:cjxj为第为第j种产品的利润总额;种产品的利润总额;aijxj表示第表示第i车间生产第车间生产第j种产品所花时间总数;种产品所花时间总数;1/26/2023数学建模于是,我们可建立如下数学模型:于是,我们可建立如下数学模型:s.t.计算结果:计算结果:Z(百元百元)x1x2x3x4x5x61320006040100401/26/2023数学建模运运 输输 问问 题题 要从甲城调出蔬菜要从甲城调出蔬菜2000吨,从乙城调出蔬菜吨,从乙城调出蔬菜2500吨,吨,从丙地调出从丙地调出3000吨,分别供应吨,分别供应A地地2000吨,吨,B地地2300吨、吨、C地地1800吨、吨、D地地1400吨,已知每吨运费如下表:吨,已知每吨运费如下表:供应单位供应单位调出单位调出单位ABCD甲甲21271340乙乙45513720丙丙32352030问:如何调拨才能使运费最省?问:如何调拨才能使运费最省?1/26/2023数学建模假设:假设:假设题目中所给运费已考虑各地间公里数;假设题目中所给运费已考虑各地间公里数;只考虑运量和运费,不考虑车辆调拨等其它相关因素只考虑运量和运费,不考虑车辆调拨等其它相关因素不考虑车辆返空的费用(或:所给运费已包含车辆返不考虑车辆返空的费用(或:所给运费已包含车辆返空的费用)空的费用)变量说明:变量说明:xij:从第从第i城运往第城运往第j地的蔬菜数量(地的蔬菜数量(i=1,2,3;j=1,2,3,4)aij:从第从第i城运往第城运往第j地的单位运费(地的单位运费(i=1,2,3;j=1,2,3,4)bi:从第从第i城调出的蔬菜总量城调出的蔬菜总量 cj:第第j地所需蔬菜总量地所需蔬菜总量 1/26/2023数学建模可以建立如下模型:可以建立如下模型:s.t.1/26/2023数学建模整整 数数 规规 划划 最优化问题中的所有变量均为整数时,这类最优化问题中的所有变量均为整数时,这类问题称为整数规划问题。问题称为整数规划问题。如果线性规划中的所有变量均为整数时,称如果线性规划中的所有变量均为整数时,称这类问题为线性整数规划问题。这类问题为线性整数规划问题。整数规划可分为线性整数规划和非线性整数整数规划可分为线性整数规划和非线性整数规划规划 ,以及混合整数规划等。,以及混合整数规划等。如果决策变量的取值要么为如果决策变量的取值要么为0 0,要么为,要么为1 1,则,则这样的规划问题称为这样的规划问题称为0 01 1规划。规划。1/26/2023数学建模例例1 某钢厂两个炼钢炉同时各用一种方法炼钢。某钢厂两个炼钢炉同时各用一种方法炼钢。第一种炼法每炉用第一种炼法每炉用a小时,第二种用小时,第二种用b小时(包括小时(包括清炉时间)。假定这两种炼法,每炉出钢都是清炉时间)。假定这两种炼法,每炉出钢都是k公斤,而炼公斤,而炼1公斤钢的平均燃料费第一法为公斤钢的平均燃料费第一法为m元,元,第二法为第二法为n元。若要求在元。若要求在c小时内炼钢公斤数不少小时内炼钢公斤数不少于于d,试列出燃料费最省的两种方法的分配方案,试列出燃料费最省的两种方法的分配方案的数学模型。的数学模型。1/26/2023数学建模设用第一种炼法炼钢设用第一种炼法炼钢x1炉,第二种炼钢炉,第二种炼钢x2炉炉 s.t.1/26/2023数学建模引例引例2.资源分配问题:资源分配问题:某个中型的百货商场要求售货人员每周工作某个中型的百货商场要求售货人员每周工作5天,连续休息天,连续休息2天,工资天,工资200元元/周,已知对售货人周,已知对售货人员的需求经过统计分析如下表,问如何安排可使员的需求经过统计分析如下表,问如何安排可使配备销售人员的总费用最少?配备销售人员的总费用最少?星期星期一一二二三三四四五五六六日日所需售货员人数所需售货员人数18151216191412开始休息的人数开始休息的人数 x1 x2 x3 x4 x5 x6 x7 设决策变量如上,可建立如下模型:设决策变量如上,可建立如下模型:1/26/2023数学建模1/26/2023数学建模非线性规划非线性规划非线性规划问题的一般数学模型:非线性规划问题的一般数学模型:其中,其中,为目标函数,为目标函数,为约束函数,这些函数中至少有为约束函数,这些函数中至少有一个是非线性函数。一个是非线性函数。1/26/2023数学建模应用实例:应用实例:供应与选址供应与选址 某公司有某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:表示,距离单位:km)及水泥日用量)及水泥日用量d(t)由下表给出目前有由下表给出目前有两个临时料场位于两个临时料场位于A(5,1),B(2,7),日储量各有,日储量各有20t假设从料场到假设从料场到工地之间均有直线道路相连工地之间均有直线道路相连 (1)试制定每天的供应计划,即从)试制定每天的供应计划,即从A,B两料场分别向各工地运两料场分别向各工地运送多少水泥,可使总的吨千米数最小送多少水泥,可使总的吨千米数最小(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为个新的,日储量各为20t,问应建在何处,节省的吨千米数有多大,问应建在何处,节省的吨千米数有多大?1/26/2023数学建模(一)建立模型(一)建立模型 记工地的位置为记工地的位置为(ai,bi),水泥日用量为,水泥日用量为di,i=1,6;料场位置为料场位置为(xj,yj),日储量为,日储量为ej,j=1,2;料场;料场j向工地向工地i的运送量为的运送量为Xij当用临时料场时决策变量为:当用临时料场时决策变量为:Xij,当不用临时料场时决策变量为:当不用临时料场时决策变量为:Xij,xj,yj1/26/2023数学建模多目标规划多目标规划引例引例1.投资问题投资问题 某公司在一段时间内有某公司在一段时间内有a(亿元亿元)的资金可用于建厂投资。的资金可用于建厂投资。若可供选择的项目记为若可供选择的项目记为1,2,m。而且一旦对第。而且一旦对第i个项目投个项目投资就用去资就用去ai亿元;而这段时间内可得收益亿元;而这段时间内可得收益ci亿元。问如何确亿元。问如何确定最佳的投资方案?定最佳的投资方案?最佳投资方案:投资最少,收益最大!最佳投资方案:投资最少,收益最大!1/26/2023数学建模投资最少:投资最少:约束条件为:约束条件为:收益最大:收益最大:1/26/2023数学建模引例引例2:生产问题:生产问题 某工厂生产两种产品,产品某工厂生产两种产品,产品A每单位利润为每单位利润为10元,而元,而产品产品B每单位利润为每单位利润为8元;产品元;产品A每单位需每单位需3小时装配时间而小时装配时间而B为为2小时,每周总装配有效时间为小时,每周总装配有效时间为120小时。工厂允许加小时。工厂允许加班,但加班生产出来的产品利润要减去班,但加班生产出来的产品利润要减去1元。根据最近的元。根据最近的合同,厂商每周最少的向用户提供两种产品各合同,厂商每周最少的向用户提供两种产品各30单位。要单位。要求:求:必须遵守合同;必须遵守合同;尽可能少加班;尽可能少加班;利润最大。问利润最大。问应怎样安排生产?应怎样安排生产?x1:每周正常时间生产得:每周正常时间生产得A产品的数量;产品的数量;x2:每周加班时间生产得:每周加班时间生产得A产品的数量;产品的数量;x3:每周正常时间生产得:每周正常时间生产得B产品的数量;产品的数量;x4:每周加班时间生产得:每周加班时间生产得B产品的数量;产品的数量;1/26/2023数学建模目标函数(有两个):目标函数(有两个):1/26/2023数学建模谢谢!