数学建模辅导优化PPT(p).ppt

上传人:小飞机 文档编号:5985170 上传时间:2023-09-11 格式:PPT 页数:88 大小:998KB
返回 下载 相关 举报
数学建模辅导优化PPT(p).ppt_第1页
第1页 / 共88页
数学建模辅导优化PPT(p).ppt_第2页
第2页 / 共88页
数学建模辅导优化PPT(p).ppt_第3页
第3页 / 共88页
数学建模辅导优化PPT(p).ppt_第4页
第4页 / 共88页
数学建模辅导优化PPT(p).ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《数学建模辅导优化PPT(p).ppt》由会员分享,可在线阅读,更多相关《数学建模辅导优化PPT(p).ppt(88页珍藏版)》请在三一办公上搜索。

1、动态规划方法简介,动态规划是解决多阶段决策过程最优化问题的一种方法。由美国数学家贝尔曼(Ballman)等人在20世纪50年代提出。他们针对多阶段决策问题的特点,提出了解决这类问题的“最优化原理”,并成功地解决了生产管理、工程技术等方面的许多实际问题。,动态规划是现代企业管理中的一种重要决策方法,可用于最优路径问题、资源分配问题、生产计划和库存问题、投资问题、装载问题、排序问题及生产过程的最优控制等。,一.多阶段决策过程最优化 多阶段决策过程是指这样一类特殊的活动过程,他们可以按时间顺序分解成若干相互联系的阶段,在每个阶段都要做出决策,全部过程的决策是一个决策序列,所以多阶段决策问题也称为序贯

2、决策问题。,动态规划的基本原理,1,2,n,状态,决策,状态,决策,状态,状态,决策,图示,多阶段决策问题,不论其本身是否与时间有关,由于分为阶段依次解决,这便具有明显的时序性,而在各阶段中所采取的决策是随阶段而变动的,不同阶段采取不同决策,这便是动态的含义.阶段往往可以用时段来表示,但动态规划在一定条件下也可以解决一些与时间无关的静态最优化问题,只要人为地引入“时段”因素,就可以将其转化为一个多阶段决策问题。,动态规划是用来解决多阶段决策过程最优化的一种数量方法。其特点在于,它可以把一个n 维决策问题变换为几个一维最优化问题,从而一个一个地去解决。需指出:动态规划是求解某类问题的一种方法,是

3、考察问题的一种途径,而不是一种算法。必须对具体问题进行具体分析,运用动态规划的原理和方法,建立相应的模型,然后再用动态规划方法去求解。,二、多阶段决策问题举例,1)工厂生产过程:由于市场需求是一随着时间而变化的因素,因此,为了取得全年最佳经济效益,就要在全年的生产过程中,逐月或者逐季度地根据库存和需求情况决定生产计划安排。,2)设备更新问题:一般企业用于生产活动的设备,刚买来时故障少,经济效益高,即使进行转让,处理价值也高,随着使用年限的增加,就会逐渐变为故障多,维修费用增加,可正常使用的工时减少,加工质量下降,经济效益差,并且,使用的年限越长、处理价值也越低,自然,如果卖去旧的买新的,还需要

4、付出更新费因此就需要综合权衡决定设备的使用年限,使总的经济效益最好。,3)连续生产过程的控制问题:一般化工生产过程中,常包含一系列完成生产过程的设备,前一工序设备的输出则是后一工序设备的输入,因此,应该如何根据各工序的运行工况,控制生产过程中各设备的输入和输出,以使总产量最大。,4)运输网络问题(最短路问题):如图1所示的运输网络,点间连线上的数字表示两地距离(也可是运费、时间等),要求从v1至v10的最短路线。这种运输网络问题也是静态决策问题。但是,按照网络中点的分布,可以把它分为4个阶段,而作为多阶段决策问题来研究。,以上所举问题的发展过程都与时间因素有关,阶段的划分常取时间区段来表示,并

5、且各个阶段上的决策往往也与时间因素有关,这就使它具有了“动态”的含义,所以把处理这类动态问题的方法称为动态规划方法。不过,实际中尚有许多不包含时间因素的一类“静态”决策问题,就其本质而言是一次决策问题,是非动态决策问题,但是也可以人为地引入阶段的概念当作多阶段决策问题,应用动态规划方法加以解决。,三、动态规划方法导引 例1:为了说明动态规划的基本思想方法和特点,下面以图1所示为例讨论的求最短路问题的方法。第一种方法称做全枚举法或穷举法。它的基本思想是列举出所有可能发生的方案和结果,再对它们一一进行比较,求出最优方案。这里从v1到v10的路程可以分为4个阶段。第一段的走法有三种,第二三两段的走法

6、各有两种,第四段的走法仅一种,因此共有322112条可能的路线,分别算出各条路线的距离,最后进行比较,可知最优路线是v1 v3 v7 v9 v10,最短距离是18,显然,当组成交通网络的节点很多时,用穷举法求最优路线的计算工作量将会十分庞大,而且其中包含着许多重复计算 第二种方法即所谓“局部最优路径”法,是说某人从k出发,他并不顾及全线是否最短,只是选择当前最短途径,“逢近便走”,错误地以为局部最优会致整体最优,在这种想法指导下,所取决策必是v1 v3 v5 v8 v10,全程长度是20;显然,这种方法的结果常是错误的,第三种方法是动态规划方法。动态规划方法寻求该最短路问题的基本思想是,首先将

7、问题划分为4个阶段,每次的选择总是综合后继过程的一并最优进行考虑,在各段所有可能状态的最优后继过程都已求得的情况下,全程的最优路线便也随之得到。为了找出所有可能状态的最优后继过程,动态规划方法总是从过程的最后阶段开始考虑,然后逆着实际过程发展的顺序,逐段向前递推计算直至始点。,具体说,此问题先从v10开始,因为v10是终点。再无后继过程,故可以接着考虑第4阶段上所有可能状态v8,v9的最优后续过程因为从v8,v9 到v10的路线是唯一的,所以v8,v9 的最优决策和最优后继过程就是到v10,它们的最短距离分别是5和3。接着考虑阶段3上可能的状态v5,v6,v7,到v10的最优决策和最优后继过程

8、在状态V5上,虽然到v8是8,到v9是9,但是综合考虑后继过程整体最优,取最优决策是到v9,最优后继过程是v5v9 v10,最短距离是12同理,状态v6的最优决策是至v8;v7的最优决策是到v9。,同样,当阶段3上所有可能状态的最优后继过程都已求得后,便可以开始考虑阶段2上所有可能状态的最优决策和最优后继过程,如v2的最优决策是到v5,最优路线是v2v5v9v10,最短距离是15依此类推,最后可以得到从初始状态v1的最优决策是到v3最优路线是v1v3v7v9v10,全程的最短距离是18。图51中粗实线表示各点到v10的最优路线,每点上方括号内的数字表示该点到终点的最短路距离。,综上所述可见,全

9、枚举法虽可找出最优方案,但不是个好算法,局部最优法则完全是个错误方法,只有动态规划方法属较科学有效的算法。它的基本思想是,把一个比较复杂的问题分解为一系列同类型的更易求解的子问题,便于应用计算机。整个求解过程分为两个阶段,先按整体最优的思想逆序地求出各个子问题中所有可能状态的最优决策与最优路线值,然后再顺序地求出整个问题的最优策略和最优路线。计算过程中,系统地删去了所有中间非最优的方案组合,从而使计算工作量比穷举法大为减少。,四、动态规划的基本概念与基本方程,使用动态规划方法解决多阶段决策问题,首先要将实际问题写成动态规划模型,同时也为了今后叙述和讨论方便,这里需要对动态规划的下述一些基本术语

10、进一步加以说明和定义:,(一)阶段 为了便于求解和表示决策及过程的发展顺序,而把所给问题恰当地划分为若干个相互联系又有区别的子问题,称之为多段决策问题的阶段。一个阶段,就是需要作出一个决策的子问题,通常,阶段是按决策进行的时间或空间上先后顺序划分的。用以描述阶段的变量叫作阶段变量,一般以k表示阶段变量阶段数等于多段决策过程从开始到结束所需作出决策的数目,图1所示的最短路问题就是一个四阶段决策过程,。,(二)状态 1.状态与状态变量。用以描述事物(或系统)在某特定的时间与空间域中所处位置及运动特征的量,称为状态。反映状态变化的量叫做状态变量。状态变量必须包含在给定的阶段上确定全部允许决策所需要的

11、信息。按照过程进行的先后,每个阶段的状态可分为初始状态和终止状态,或称输入状态和输出状态,阶段k的初始状态记作sk,终止状态记为sk+1。但为了清楚起见,通常定义阶段的状态即指其初始状态。,状态应描述过程特征;能直接或间接观测;具有无后效性.,某阶段的状态给定后,则过程未来发展不受该阶段以前各阶段状态的影响,2可能状态集 一般状态变量的取值有一定的范围或允许集合,称为可能状态集,或可达状态集。通常可能状态集用相应阶段状态sk的大写字母Sk表示,skSk,可能状态集可以是一离散取值的集合,也可以为一连续的取值区间在图1所示的最短路问题中,第一阶段状态为v1,状态变量s1的状态集合S1=v1;第二

12、阶段则有三个状态:v2,v3,v4,状态变量s2的状态集合S2=v2,v3,v4;第三阶段也有三个状态:v5,v6,v7,状态变量s3的状态集合S3=v5,v6,v7;第四阶段则有二个状态:v8,v9,状态变量s4的状态集合S4=v8,v9;,(三)决策 所谓决策,就是确定系统过程发展的方案。决策的实质是关于状态的选择,是决策者从给定阶段状态出发对下一阶段状态作出的选择。用以描述决策变化的量称之决策变量,和状态变量一样,决策变量可以用一个数,一组数或一向量来描述,也可以是状态变量的函数,记以uk=uk(sk),表示于阶段k状态sk时的决策变量。决策变量的取值往往也有一定的允许范围,称之允许决策

13、集合。决策变量uk(sk)的允许决策集用Uk(sk)表示,uk(sk)Uk(sk)允许决策集合实际是决策的约束条件。,(四)状态转移方程 系统在阶段k处于状态sk,执行决策uk(sk)的结果是系统状态的转移,即系统由阶段k的初始状态sk转移到终止状态sk+1,系统由阶段k到阶段k+1的状态转移完全由阶段k的状态sk和决策uk(sk)所确定,与系统过去的状态s1,s2,sk-1及其决策u1(s1),u2(s2)uk-1(sk-1)无关。系统状态的这种转移,用数学公式描述即有:,(1),(五)、策略 策略(Policy)也叫决策序列策略有全过程策略和k部子策略之分,全过程策略是指具有n个阶段的全部

14、过程,由依次进行的n个阶段决策构成的决策序列,简称策略,表示为p1,nu1,u2,un。从k阶段到第n阶段,依次进行的阶段决策构成的决策序列称为k部子策略,表示为pk,nuk,uk+1,un,显然当k=1时的k部子策略就是全过程策略。在实际问题中,由于在各个阶段可供选择的决策有许多个,因此,它们的不同组合就构成了许多可供选择的决策序列(策略),由它们组成的集合,称之允许策略集合,记作P1,n,从允许策略集中,找出具有最优效果的策略称为最优策略。,(六)指标函数 用来衡量策略或子策略或决策的效果的某种数量指标,就称为指标函数。它是定义在全过程或各子过程或各阶段上的确定数量函数。对不同问题,指标函

15、数可以是诸如费用、成本、产值、利润、产量、耗量、距离、时间、效用,等等。例如:图1的指标就是运费。,(1)阶段指标函数(也称阶段效应)。用vk(sk,uk)表示第k段处于sk状态且所作决策为uk(sk)时的指标,则它就是第k段指标函数。(2)过程指标函数(也称目标函数)。不仅跟当前状态sk有关,还跟该子过程策略pk,n(sk)有关,表示为:,适于用动态规划求解的问题的过程指标函数(即目标函数),必须具有关于阶段指标的可分离形式对于部子过程的指标函数可以表示为:,(2),多阶段决策问题中,常见的目标函数形式之一是取各阶段效应之和的形式,即:,(七)最优解 用fk(sk)表示第k子过程指标函数在状

16、态sk下的最优值,即 相应的子策略称为sk状态下的最优子策略,记为pk,n*(sk);而构成该子策赂的各段决策称为该过程上的最优决策,记为;有,最优化原理(贝尔曼最优化原理)作为一个全过程的最优策略具有这样的性质:对于最优策略过程中的任意状态而言,无论其过去的状态和决策如何,余下的诸决策必构成一个最优子策略。该原理的具体解释是,若某一全过程最优策略为:,则对上述策略中所隐含的任一状态而言,第k子过程上对应于该状态的最优策略必然 包含在上述全过程最优策略p1*中,即为,(八)动态规划的最优性原理,(九)动态规划的基本方程,基于上述原理,提出了一种逆序递推法;该法的关键在于给出一种递推关系。一般把

17、这种递推关系称为动态规划的函数基本方程。,当过程指标函数为下列“和”的形式时,相应的函数基本方程为,(三)、建立动态规划模型的步骤 1、划分阶段划分阶段是运用动态规划求解多阶段决策问题的第一步,在确定多阶段特性后,按时间或空间先后顺序,将过程划分为若干相互联系的阶段。对于静态问题要人为地赋予“时间”概念,以便划分阶段。2、正确选择状态变量选择变量既要能确切描述过程演变又要满足无后效性,而且各阶段状态变量的取值能够确定。一般地,状态变量的选择是从过程演变的特点中寻找。3、确定决策变量及允许决策集合通常选择所求解问题的关键变量作为决策变量,同时要给出决策变量的取值范围,即确定允许决策集合。,4、确

18、定状态转移方程根据k 阶段状态变量和决策变量,写出k+1阶段状态变量,状态转移方程应当具有递推关系。5、确定阶段指标函数和最优指标函数,建立动态规划基本方程 阶段指标函数是指第k 阶段的收益,最优指标函数是指从第k 阶段状态出发到第n 阶段末所获得收益的最优值,最后写出动态规划基本方程。,以上五步是建立动态规划数学模型的一般步骤。由于动态规划模型与线性规划模型不同,动态规划模型没有统一的模式,建模时必须根据具体问题具体分析,只有通过不断实践总结,才能较好掌握建模方法与技巧。,例一、从A 地到D 地要铺设一条煤气管道,其中需经过两级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么

19、路线,使总距离最短?,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,五、建模举例:最短路径问题,解:整个计算过程分三个阶段,从最后一个阶段开始。,第一阶段(C D):C 有三条路线到终点D。,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,D,C1,C2,C3,显然有 f1(C1)=1;f1(C2)=3;f1(C3)=4,d(B1,C1)+f1(C1)3+1 f2(B1)=min d(B1,C2)+f1(C2)=min 3+3 d(B1,C3)+f1(C3)1+4 4=min 6=4 5,第二阶段(B C):B 到C 有六条

20、路线。,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,D,C1,C2,C3,B1,B2,(最短路线为B1C1 D),d(B2,C1)+f1(C1)2+1 f2(B2)=min d(B2,C2)+f1(C2)=min 3+3 d(B2,C3)+f1(C3)1+4 3=min 6=3 5,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,D,C1,C2,C3,B1,B2,(最短路线为B2C1 D),第三阶段(A B):A 到B 有二条路线。,f3(A)1=d(A,B1)f2(B1)246 f3(A)2=d(A,B2)f2(B2)4

21、37,f3(A)=min=min6,7=6,d(A,B1)f2(B1)d(A,B2)f2(B2),(最短路线为AB1C1 D),A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,D,C1,C2,C3,B1,B2,A,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,D,C1,C2,C3,B1,B2,A,最短路线为 AB1C1 D 路长为 6,SETS:CITIES/1.7/:F;ROADS(CITIES,CITIES)/1,2 1,32,4 2,5 2,63,4 3,5 3,6 4,7 5,7 6,7/:D;ENDSETS DAT

22、A:D=2 4 3 3 1 2 3 1 1 3 4;ENDDATAF(SIZE(CITIES)=0;FOR(CITIES(i)|i#LT#SIZE(CITIES):F(i)=MIN(ROADS(i,j):D(i,j)+F(j);END,lINGO程序,Feasible solution found.Total solver iterations:0 Variable Value F(1)6.000000 F(2)4.000000 F(3)3.000000 F(4)1.000000 F(5)3.000000 F(6)4.000000 F(7)0.000000 D(1,2)2.000000 D(1

23、,3)4.000000 D(2,4)3.000000 D(2,5)3.000000 D(2,6)1.000000 D(3,4)2.000000 D(3,5)3.000000 D(3,6)1.000000 D(4,7)1.000000 D(5,7)3.000000 D(6,7)4.000000 Row Slack or Surplus 1 0.000000 2 0.000000 3 0.000000 4 0.000000 5 0.000000 6 0.000000 7 0.000000,运行结果,练习1:,A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G

24、,5,3,1,3,6,8,7,6,3,6,8,5,3,3,8,4,2,2,2,1,3,3,3,5,2,5,6,6,4,最优路线为:A B1 C2 D1 E2 F2 G 路长18,求从A到G的最短路径,3,有资金4万元,投资A、B、C三个项目,每个项目的投资效益与投入该项目的资金有关。三个项目A、B、C的投资效益(万吨)和投入资金(万元)关系见下表:,求对三个项目的最优投资分配,使总投资效益最大。,练习2,阶段k:每投资一个项目作为一个阶段;状态变量xk:投资第k个项目前的资金数;决策变量dk:第k个项目的投资;决策允许集合:0dkxk状态转移方程:xk+1=xk-dk阶段指标:vk(xk,dk

25、)见表中所示;递推方程:fk(xk)=maxvk(xk,dk)+fk+1(xk+1)终端条件:f4(x4)=0,k=4,f4(x4)=0k=3,0d3x3,x4=x3-d3,k=2,0d2x2,x3=x2-d2,k=1,0d1x1,x2=x1-d1,无约束最优化问题,标准形式:,例:选址问题,某市燃气公司计划要建一个煤气供应站,该站要向城市中有固定位置的m 个用户供货.对于选定的坐标系而言,已知第i 个用户的位置为,如果只考虑直线距离,如何确定这个煤气站的位置,才能使总的运输距离最短?,解:设煤气站的位置为,则第i 个用户到,该站的直线距离为,故 m 个用户到该站的总距离为,故选址问题可以归结

26、为求变量,使得,无约束优化问题的解法,1.如果,可微,则利用,求其驻点,然后利用充分条件判别这些驻点是否是极值点。,.,2.搜索算法(迭代算法),基本思想:首先给定目标函数 的极小点的一个初始估计点 然后按照一定的规则产生一个点列,希望这种点列的极限是的一个极小点.,需要给定初始点,常见的算法:梯度法(最速下降法)2.牛顿法 3.共轭梯度法,用MATLAB优化工具箱求解无约束最优化,计算机实现,前面我们介绍了Matlab 工具箱中函数用linprog解线性规划的方法,Matlab优化工具箱还提供了一般无约束优化与约束优化的求解问题,下面介绍Matlab优化工具箱的主要函数。,MATLAB优化工

27、具箱简介,1.MATLAB求解优化问题的主要函数,2.优化函数的输入变量,使用优化函数或优化工具箱中其他优化函数时,输入变量见下表:,3.优化函数的输出变量见下表:,3.优化函数的输出变量见下表:,4控制参数选项的设置,(3)MaxIter:允许进行迭代的最大次数,取值为正整数.,选项中常用的几个参数的名称、含义、取值如下:,(1)陈列:显示水平.取值为off时,不显示输出;取值为iter时,显示每次迭代的信息;取值为final时,显示最终结果.默认值为final.,(2)MaxFunEvals:允许进行函数评价的最大次数,取值为正整数.,例:opts=optimset(Display,ite

28、r,TolFun,1e-8)该语句创建一个称为选择的优化选项结构,其中显示参数设为iter,TolFun参数设为1e-8.,控制参数选项可以通过函数optimset创建或修改.命令的格式如下:,(1)options=optimset(optimfun)创建一个含有所有参数名,并与优化函数optimfun相关的默认值的选项结构.,(2)options=optimset(param1,value1,param2,value2,.)创建一个名称为选项的优化选项参数,其中指定的参数具有指定值,所有未指定的参数取默认值.,(3)options=optimset(oldops,param1,value1,

29、param2,value2,.)创建名称为oldops的参数的拷贝,用指定的参数值修改oldops中相应的参数.,返回,用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=fm

30、inbnd(),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),例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 fm

31、ax=-fval,运算结果为:xmax=0.5000,fmax=2.0000.即剪掉的正方形的边长为0.5m时水槽的容积最大,最大容积为2m3.,MATLAB(wliti2),命令格式为:(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,fv

32、al,exitflag,output=fminunc(.);或x,fval,exitflag,output=fminsearch(.),2.多元函数无约束优化问题,标准型为:min,3 fminunc为中型优化算法的步长一维搜索提供了两种算法,由选项中参数LineSearchType控制:LineSearchType=quadcubic(缺省值),混合的二次和三次多项式插值;LineSearchType=cubicpoly,三次多项式插,使用fminunc和 fminsearch可能会得到局部最优解.,说明:,fminsearch是用单纯形法寻优.fminunc算法见以下几点说明:,1 fmi

33、nunc为无约束优化提供了大型优化和中型优化算法.由选项中的参数LargeScale控制:LargeScale=on(默认值),使用大型算法LargeScale=off(默认值),使用中型算法,2 fminunc为中型优化算法的搜索方向提供了4种算法,由 选项中的参数HessUpdate控制:HessUpdate=bfgs(默认值),拟牛顿法的BFGS公式;HessUpdate=dfp,拟牛顿法的DFP公式;HessUpdate=steepdesc,最速下降法,例3 min,MATLAB(wliti3),1.编写M文件 fun1.m:function f=fun1(x)f=exp(x(1)*(

34、4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2.输入M文件wliti3.m如下:x0=-1,1;x=fminunc(fun1,x0);y=fun1(x),3.运行结果:x=0.5000-1.0000 y=1.3029e-10,*非线性规划的基本解法,非线性规划的基本概念,非线性规划,返回,定义 如果目标函数或约束条件中至少有一个是非线性函数,则最优化问题就叫做非线性规划问题,非现性规划的基本概念,一般形式:(1)其中,是定义在 Rn 上的实值函数,简记:,其它情况:求目标函数的最大值,或约束条件小于等于零两种情况,都可通过取其相反数化为上述一般形式,定义1 把满

35、足问题(1)中条件的解 称为可行解(或可行点),所有可行点的集合称为可行集(或可行域)记为D即 问题(1)可简记为,定义2 对于问题(1),设,若存在,使得对一切,且,都有,则称X*是f(X)在D上的局部极小值点(局部最优解)特别地,当 时,若,则称X*是f(X)在D上的严格局部极小值点(严格局部最优解),定义3 对于问题(1),设,若对任意的,都有则称X*是f(X)在D上的全局极小值点(全局最优解)特别地,当 时,若,则称X*是f(X)在D上的严格全局极小值点(严格全局最优解),返回,非线性规划的基本解法,SUTM外点法,SUTM内点法(障碍罚函数法),1 罚函数法,2 近似规划法,返回,M

36、ATLAB 优化工具箱解非线性规划,用MATLAB软件求解,其输入格式如下:1x=quadprog(H,C,A,b);2x=quadprog(H,C,A,b,Aeq,beq);3x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB);4x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB,X0);5x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB,X0,options);6x,fval=quaprog();7x,fval,exitflag=quaprog();8x,fval,exitflag,output=quaprog();,1二次规划,例

37、1 min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t.x1+x22-x1+2x22 x10,x20,MATLAB(youh1),1写成标准形式:,2输入命令:H=1-1;-1 2;c=-2;-6;A=2-2;-2 4;b=2;2;Aeq=;beq=;VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB),3运算结果为:x=3 2 z=-15.5,s.t.,1 首先建立M文件fun.m,用来定义目标函数F(X):function f=fun(X);f=F(X);,2一般非线性规划,其中X为n维变元向量,G(X)与Ceq

38、(X)均为非线性函数组成的向量,其他变量的含义与线性规划、二次规划中相同用MATLAB求解上述问题,基本步骤分三步:,3 建立主程序.求解非线性规划的函数是fmincon,命令的基本格式如下:(1)x=fmincon(fun,X0,A,b)(2)x=fmincon(fun,X0,A,b,Aeq,beq)(3)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB)(4)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon)(5)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon,options)(6)x

39、,fval=fmincon()(7)x,fval,exitflag=fmincon()(8)x,fval,exitflag,output=fmincon(),输出极值点,M文件,迭代的初值,参数说明,变量上下限,注意:1 fmincon函数提供了大型优化算法和中型优化算法默认时:若在fun函数中提供了梯度(options参数的GradObj设置为on),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法当既有等式约束又有梯度约束时,使用中型算法2 fmincon函数的中型算法使用的是序列二次规划法在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hesse矩阵3 fm

40、incon函数可能会给出局部最优解,这与初值X0的选取有关,1写成标准形式:s.t.,2x1+3x2 6 s.t.x1+4x2 5 x1,x2 0,例2,2先建立M-文件 fun3m:function f=fun3(x);f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)2,MATLAB(youh2),3再建立主程序youh2m:x0=1;1;A=2 3;1 4;b=6;5;Aeq=;beq=;VLB=0;0;VUB=;x,fval=fmincon(fun3,x0,A,b,Aeq,beq,VLB,VUB),4运算结果为:x=07647 10588 fval=-20294

41、,1先建立M文件fun4m定义目标函数:function f=fun4(x);f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);,x1+x2=0 s.t.1.5+x1x2-x1-x2 0-x1x2 10 0,例3,2再建立M文件myconm定义非线性约束:function g,ceq=mycon(x)g=x(1)+x(2);15+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;,3主程序youh3m为:x0=-1;1;A=;b=;Aeq=1 1;beq=0;vlb=;vub=;x,fval=fmincon(fun4,x0,A

42、,b,Aeq,beq,vlb,vub,mycon),MATLAB(youh3),4 运算结果为:x=-12250 12250 fval=18951,例4,1先建立M文件funm定义目标函数:function f=fun(x);f=-2*x(1)-x(2);,2再建立M文件mycon2m定义非线性约束:function g,ceq=mycon2(x)g=x(1)2+x(2)2-25;x(1)2-x(2)2-7;,3 主程序fxxm为:x0=3;25;VLB=0 0;VUB=5 10;x,fval,exitflag,output=fmincon(fun,x0,VLB,VUB,mycon2),MAT

43、LAB(fxx(fun),4 运算结果为:x=40000 30000fval=-110000exitflag=1output=iterations:4 funcCount:17 stepsize:1 algorithm:1x44 char firstorderopt:cgiterations:,返回,应用实例:供应与选址,某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:km)及水泥日用量d(t)由下表给出目前有两个临时料场位于A(5,1),B(2,7),日储量各有20t假设从料场到工地之间均有直线道路相连(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送

44、多少水泥,可使总的吨千米数最小(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为20t,问应建在何处,节省的吨千米数有多大?,(一)建立模型,记工地的位置为(ai,bi),水泥日用量为di,i=1,6;料场位置为(xj,yj),日储量为ej,j=1,2;料场j向工地i的运送量为Xij,当用临时料场时决策变量为:Xij,当不用临时料场时决策变量为:Xij,xj,yj,(二)使用临时料场的情形,使用两个临时料场A(5,1),B(2,7)求从料场j向工地i的运送量Xij.在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,这是线性规划问题 线性规划模

45、型为:,设 X11=X1,X21=X 2,X31=X 3,X41=X 4,X51=X 5,X61=X 6X12=X 7,X22=X 8,X32=X 9,X42=X 10,X52=X 11,X62=X 12 编写程序gying1m,MATLAB(gying1),计算结果为:,x=30000 50000 00000 70000 00000 10000 00000 00000 40000 00000 60000 100000fval=1362275,(三)改建两个新料场的情形,改建两个新料场,要同时确定料场的位置(xj,yj)和运送量Xij,在同样条件下使总吨千米数最小这是非线性规划问题非线性规划模

46、型为:,设 X11=X1,X21=X 2,X31=X 3,X41=X 4,X51=X 5,X61=X 6 X12=X 7,X22=X 8,X32=X 9,X42=X 10,X52=X 11,X62=X 12 x1=X13,y1=X14,x2=X15,y2=X16,(1)先编写M文件liaochm定义目标函数,MATLAB(liaoch),(2)取初值为线性规划的计算结果及临时料场的坐标:x0=3 5 0 7 0 1 0 0 4 0 6 10 5 1 2 7;编写主程序gying2m,MATLAB(gying2),(3)计算结果为:,x=30000 50000 00707 70000 0 092

47、93 0 0 39293 0 60000 100707 63875 43943 57511 71867fval=1054626exitflag=1,(4)若修改主程序gying2m,取初值为上面的计算结果:x0=30000 50000 00707 70000 0 09293 0 0 39293 0 60000 100707 63875 43943 57511 71867,则得结果为:x=30000 50000 03094 70000 00108 06798 0 0 36906 0 59892 103202 55369 49194 58291 72852fval=1034760exitflag=

48、1,总的吨千米数比上面结果略优,(5)若再取刚得出的结果为初值,却计算不出最优解,MATLAB(gying2),MATLAB(gying2),(6)若取初值为:x0=3 5 4 7 1 0 0 0 0 0 5 11 56348 48687 72479 77499,则计算结果为:x=30000 50000 40000 70000 10000 0 0 0 0 0 50000 110000 56959 49285 72500 77500fval=898835exitflag=1总的吨千米数898835比上面结果更好,通过此例可看出fmincon函数在选取初值上的重要性,MATLAB(gying2),返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号