2020/11/6最优化方法1动态规划(DynamicProgramming)动态规划的基本概念和思想最短路径问题投资分配问题背包问题排序问题2020/11/6最优化方法2动态规划是运筹学的一个分支,是求解多阶段决策过程最优化问题的数学方法。动态规划在经济管理、工程技术、工农业生产及军事部门中都有着广泛的应用,并且获得了显著的效果。学习动态规划,我们首先要了解多阶段决策问题。动态规划的基本概念和思想2020/11/6最优化方法3最短路径问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或运费),试求从A点到G点的最短距离(总运输费用最小)。123456AB1B2C1C2C3C4D1D2D3E1E2E3F1F2G5313687636853384222133352566432020/11/6最优化方法4背包问题:有一个徒步旅行者,其可携带物品重量的限度为a公斤,设有n种物品可供他选择装入包中。已知每种物品的重量及使用价值(作用),问此人应如何选择携带的物品(各几件),使所起作用(使用价值)最大?物品12…j…n重量(公斤/件)a1a2…aj…an每件使用价值c1c2…cj…cn类似的还有工厂里的下料问题、运输中的货物装载问题、人造卫星内的物品装载问题等。2020/11/6最优化方法5生产决策问题:企业在生产过程中,由于需求是随时间变化的,因此企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐季度地根据库存和需求决定生产计划。机器负荷分配问题:某种机器可以在高低两种不同的负荷下进行生产。要求制定一个五年计划,在每年开始时,决定如何重新分配完好的机器在两种不同的负荷下生产的数量,使在五年内产品的总产量达到最高。航天飞机飞行控制问题:由于航天飞机的运动的环境是不断变化的,因此就要根据航天飞机飞行在不同环境中的情况,不断地决定航天飞机的飞行方向和速度(状态),使之能最省燃料和完成飞行任务(如软着陆)。2020/11/6最优化方法6•根据过程的特性可以将过程按空间、时间等标志分为若干个互相联系又互相区别的阶段。•在每一个阶段都需要做出决策,从而使整个过程达到最好的效果。•各个阶段决策的选取不是任意确定的,它依赖于当前面临的状态,又影响以后的发展。•当各个阶段的决策确定后,就组成了一个决策序列,因而也就决定了整个过程的一条活动路线,这样的一个前后关联具有链状结构的多阶段过程就称为多阶段决策问题。多阶段决策过程的特点2020/11/6最优化方法7针对多阶段决策过程的最优化问题,美国数学家Bellman等人在20世纪50年代初提出了著名的最优化原理,把多阶段决策问题转化为一系列单阶段最优化问题,从而逐个求解,创立了解决这类过程优化问题的新方法:动态规划。对最佳路径(最佳决策过程)所经过的各个阶段,其中每个阶段始点到全过程终点的路径,必定是该阶段始点到全过程终点的一切可能路径中的最佳路径(最优决策),这就是Bellman提出的著名的最优化原理。简言之,一个最优策略的子策略必然也是最优的。Bellman在1957年出版的《DynamicProgramming》是动态规划领域的第一本著作。2020/11/6最优化方法8例1、从A地到E地要铺设一条煤气管道,其中需经过三级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么路线,使总距离最短?最短路径问题AB2B1B3C1C3D1D2E52141126101043121113965810521C22020/11/6最优化方法9解:整个计算过程分四个阶段,从最后一个阶段开始。第四阶段(D→E):D有两条路线到终点E。显然有AB2B1B3C1C3D1D2E52141126101043121113965810521C22)(;5)(2414DfDf2020/11/6最优化方法10首先考虑经过的两条路线第三阶段(C→D):C到D有6条路线。(最短路线为)AB2B1B3C1C3D1D2E5214126101043121113965810521C282953min)(),()(),(min)(2421141113DfDCdDfDCdCfEDC111C2020/11/6最优化方法11AB2B1B3C1C3D1D2E5214126101043121113965810521C272556min)(),()(),(min)(2422141223DfDCdDfDCdCf(最短路线为)EDC22考虑经过的两条路线2C2020/11/6最优化方法12AB2B1B3C1C3D1D2E5214126101043121113965810521C21221058min)(),()(),(min)(2423141333DfDCdDfDCdCf(最短路线为)EDC23考虑经过的两条路线3C2020/11/6最优化方法13AB2B1B3C1C3D1D2E5214126101043121113965810521C2201210714812min)(),()(),()(),(min)(33312321131112CfCBdCfCBdCfCBdBf(最短路线为)EDCB111第二阶段(B→C):B到C有9条路线。首先考虑经过的3条路线1B2020/11/6最优化方法14AB2B1B3C1C3D1D2E5214126101043121113965810521C21412471086min)(),()(),()(),(min)(34322422141222CfCBdCfCBdCfCBdBf(最短路线为)EDCB112考虑经过的3条路线2B2020/11/6最优化方法15AB2B1B3C1C3D1D2E5214126101043121113965810521C2191211712813min)(),()(),()(),(min)(33332323131332CfCBdCfCBdCfCBdBf(最短路线为)EDCB223考虑经过的3条路线3B2020/11/6最优化方法16AB2B1B3C1C3D1D2E5214126101043121113965810521C219191145202min)(),()(),()(),(min)(3232221211BfBAdBfBAdBfBAdAf(最短路线为)EDCBA112第一阶段(A→B):A到B有3条路线。(最短距离为19)2020/11/6最优化方法17动态规划是用来解决多阶段决策过程最优化的一种数量方法。其特点在于,它可以把一个n维决策问题变换为几个一维最优化问题,从而一个一个地去解决。需指出:动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种算法。必须对具体问题进行具体分析,运用动态规划的原理和方法,建立相应的模型,然后再用动态规划方法去求解。即在系统发展的不同时刻(或阶段)根据系统所处的状态,不断地做出决策;动态决策问题的特点系统所处的状态和时刻是进行决策的重要因素;找到不同时刻的最优决策以及整个过程的最优策略。2020/11/6最优化方法18动态规划方法的关键:在于正确地写出基本的递推关系式和恰当的边界条件(简称基本方程)。要做到这一点,就必须将问题的过程分成几个相互联系的阶段,恰当的选取状态变量和决策变量及定义最优值函数,从而把一个大问题转化成一组同类型的子问题,然后逐个求解。即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解。2020/11/6最优化方法19在多阶段决策过程中,动态规划方法是既把当前一段和未来一段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的.在求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐段变换得到,从而确定了最优路线。2020/11/6最优化方法20最优化原理作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,相对于前面的决策所形成的状态而言,余下的决策序列必然构成最优子策略。也就是说,一个最优策略的子策略也是最优的。2020/11/6最优化方法21每个阶段的最优决策过程只与本阶段的初始状态有关,而与以前各阶段的决策(即为了到达本阶段的初始状态而采用哪组决策路线)无关。换言之,本阶段之前的状态与决策,只是通过系统在本阶段所处的初始状态来影响本阶段及以后各个阶段的决策。或者说,系统过程的历史只能通过系统现阶段的状态去影响系统的未来。具有这种性质的状态称为无后效性(即马尔科夫性)状态。动态规划方法只适用于求解具有无后效性状态的多阶段决策问题。动态规划求解的多阶段问题的特点2020/11/6最优化方法22现有数量为a(万元)的资金,计划分配给n个工厂,用于扩大再生产。假设:xi为分配给第i个工厂的资金数量(万元);gi(xi)为第i个工厂得到资金后提供的利润值(万元)。问题:如何确定各工厂的资金数,使得总的利润为最大。nixaxxgziniiniii..2.10)(max11据此,有下式:投资分配问题2020/11/6最优化方法23令:fk(x)表示以数量为x的资金分配给前k个工厂,所得到的最大利润值。用动态规划求解,就是求fn(a)的问题。当k=1时,f1(x)=g1(x)(因为只给一个工厂)当1<k≤n时,其递推关系如下:设:y为分给第k个工厂的资金(其中0≤y≤x),此时还剩x-y(万元)的资金需要分配给前k-1个工厂,如果采取最优策略,则得到的最大利润为fk-1(x-y),因此总的利润为:gk(y)+fk-1(x-y)2020/11/6最优化方法24nkyxfygxfkkxyk...)()(max)(3210其中如果a是以万元为资金分配单位,则式中的y只取非负整数0,1,2,…,x。上式可变为:)()(max)(,,,,yxfygxfkkxyk1210所以,根据动态规划的最优化原理,有下式:2020/11/6最优化方法25例2:设国家拨给60万元投资,供四个工厂扩建使用,每个工厂扩建后的利润与投资额的大小有关,投资后的利润函数如下表所示,问如何选择可得最大利润。投资利润0102030405060g1(x)0205065808585g2(x)0204050556065g3(x)0256085100110115g4(x)0254050606570解:依据题意,是要求f4(60)。2020/11/6最优化方法26按顺序解法计算。第一阶段:求f1(x)。显然有f1(x)=g1(x),得到下表投资利润0102030405060f1(x)=g1(x)0205065808585最优策略0102030405060第二阶段:求f2(x)。此时需考虑第一、第二个工厂如何进行投资分配,以取得最大的总利润。)60()(max)60(1260,,10,02yfygfy2020/11/6最优化方法2712006520605055655080408520850max)0()60()10()50()20()40()30()30()40()20()50()10()60()0(max12121212121212fgfgfgfgfgfgfg最优策略为(40,20),此时最大利润为120万元。同理可求得其