运筹学第八章动态规划.ppt
,第八章 动态规划,引 言,动态规划是解决多阶段决策过程最优化的一种方法。该方法是由美国数学家贝尔曼(R.E.Bellman)等人在20世纪50年代初提出的。并成功地解决了生产管理、工程技术等方面的许多问题,从而建立了运筹学的一个新的分支,即动态规划。Bellman在1957年出版了Dynamic Programming一书,是动态规划领域中的第一本著作。,动态规划与其他规划方法的不同之处在于:动态规划是求解某类问题(多阶段决策问题)的一种方法,是考察问题的一种途径,而不是一种特定算法。因此,它不像线性规划那样有一个标准的数学表达式和明确定义的一组(算法)规则,而必须对具体问题进行具体分析处理。因此,学习动态规划时,除对基本概念和基本方法正确理解外,还应在一定经验积累基础上,以丰富的想像力去建立模型,用创造性的技巧去求解。,提 纲,1 动态规划实例2 动态规划的基本概念3 动态规划的基本思想与基本原理4 逆序解法与顺序解法,学习目标:1 明确什么是多阶段的决策问题,特别要注意没有明显 的时段背景的问题如何化归为多阶段的决策问题。,1 动态规划实例,P156 例2 机器负荷分配问题(时间阶段问题)设有某种机器设备,用于完成两类工作A和B。若第k年初完好机器的数量为 xk,若以数量 uk 用于A,余下的(xkuk)用于工作B,则该年的预期收入为 g(uk)+h(xkuk)。这里g(uk)和 h(xkuk)是已知函数,且 g(0)=h(0)=0。又机器设备在使用中会有损坏,设机器用于工作A时,一年后能继续使用的完好机器数占年初投入量的70%;若用于工作B时,一年后能继续使用的完好机器数占年初投入量的90%。则在下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xkuk)。设第1年初完好的机器总数为1000台,问在连续5年内每年应如何分配用于A、B两项工作的机器数,使5年的总收益为最大。,1 动态规划实例,相应的问题称为多阶段决策问题。,这是一个多阶段决策过程。该过程可以分为相互联系的若干阶段,每一阶段都需作出决 策,从而形成全过程的决策。,第1年,u1,x2=0.7u1+0.9(x1-u1),u2,x3=0.7u2+0.9(x2-u2),u3,第4年,u4,x5=0.7u4+0.9(x4-u4),u5,P156 例1 最短路线问题(空间阶段的例子)设有一个旅行者从下图中的A点出发,途中要经过B、C、D等处,最后到达终点E。从A到E有很多条路线可以选择,各点之间的距离如图所示,问该旅行者应选择哪一条路线,使从A到达E的总的路程为最短。,1,2,3,4,决策1,决策2,决策3,决策4,可看成 4阶段 的决策 问题。,从以上两个例子,可以知道 所谓多阶段决策问题是指这样的决策问题:其过程可分为若干个相互联系的阶段,每一阶段都对应着一组可供选择的决策,每一决策的选定既依赖于当前面临的状态,又影响以后总体的效果。当每一阶段的决策选定以后,就构成一个决策序列,称为一个策略,它对应着一个确定的效果。多阶段决策问题就是寻找使此效果最好的策略。,多阶段决策过程的特点,1.各阶段的决策相互关联多阶段决策过程最优化的目的,是要达到整个活动过程的总体效果最优,而不是某个阶段“局部”的效果最优。因此,各个阶段决策的选取不是任意确定的。前一个决策的选取决定了当前状态,当前状态进行决策后又影响到下一阶段的状态和决策,以至于影响总体效果。所以决策者在每个阶段决策时,不应仅考虑本阶段最优,还应考虑对最终目标的影响,从而做出对全局而言是最优的决策。动态规划就是符合这一要求的一种最优化方法。,2.各个阶段的决策一般与“时间”有关动态规划方法与“时间”关系很密切,随着时间过程的发展而决定各阶段的决策,从而产生一个决策序列,这就是“动态”的意思。但是,一些与时间无关的静态问题,只要在问题中人为引入“时间”因素,也可将其看成是多阶段的决策问题,用动态规划方法去处理。,学习目标:1 准确、熟练地掌握动态规划的基本概念、特别是状态 变量、决策变量、状态转移律、指标函数、基本方程 等。,2 动态规划的基本概念,为了便于求解和表示决策及过程的发展顺序,而把所给问题恰当地划分为若干个相互联系又有区别的子问题,称之为多段决策问题的阶段。一个阶段,就是需要作出一个决策的子问题。通常,阶段是按决策进行的时间或空间上先后顺序划分的。描述阶段的变量称为阶段变量,常记为k,k=1,2,n。如本例可按空间分为4个 阶段来求解,k=1,2,3,4。,(1)阶段(stage),状态:每阶段初的客观条件。描述各阶段状态的变量称为状态变量,常用xk表示第k阶段的状态。,(2)状态(state),例1中,状态就是某阶段的出发位置。,按状态变量的取值是连续还是离散,可将动态规划问题分为离 散型和连续型。,动态规划中的状态应满足无后效性(马尔科夫性):所谓无后效性指系统到达某个状态前的过程的决策将不影响到该状态以后的决策。指系统从某个阶段往后的发展,仅由本阶段所处的状态及其往后的决策所决定,与系统以前经历的状态和决策(历史)无关。过程的过去历史只能通过当前的状态去影响它未来的发展例1中,当某阶段的状态已选定某个点时,从这个点以后的路线只与该点有关,不受该点以前的路线的影响,所以满足状态的无后效性。,状态集合:状态变量 xk 的取值集合称为状态集合,状态集合实际上是关于状态的约束条件。通常用Sk表示状态集合,xkSk。,第1阶段 S1=A;第2阶段具有3个状态B1、B2和B3,故 S2=B1,B2,B3。,(3)决策(decision),当过程处于某一阶段的某状态时,可以做出不同的决定,从而确定下一阶段的状态,这种决定称为决策。描述决策的变量称为决策变量,常用uk(xk)表示第k阶段当状态处于xk时的决策变量,它是状态变量的函数。,例1中,从第2阶段的状态B1出发,可以选择下一阶段的C1、C2、C3。如我们决定选择C1,则可表示为:u2(B1)=C1。,B1,C1,C2,C3,决策集合:第k阶段当状态处于xk时决策变量uk(xk)的取值范称为决策集合,常用Dk(xk)表示。,例1中,从第2阶段的状态B1出发,可以选择下一阶段的C1、C2、C3。即 D2(B1)=C1、C2、C3;,B1,C1,C2,C3,决策集合实际上是决策的约束条件,uk(xk)Dk(xk)。,小结 阶段 k、状态 xk、状态集合 Sk、决策 uk(xk)、决策集合 Dk(xk)。,(4)状态转移律(方程),状态转移律:从xk的某一状态值出发,当决策变量uk(xk)的取值决定后,下一阶段状态变量xk+1的取值也随之确定。描述从 xk 转变为 xk+1 的规律称为状态转移规律(方程)。,从第2阶段的状态B1出发,如我们决定选择C2(也即确定了下一阶段的状态)。,上例中,u2(B1)=C2状态转移律为:xk+1=uk(xk),一般来说,下一阶段状态变量xk+1的取值是上阶段的某一状态变量xk和上阶段决策变量uk(xk)的函数,记为 xk+1=Tk(xk,uk(xk),(5)策略(policy)和子策略(subpolicy),策略:由依次进行的n个阶段决策构成的决策序列就构成一个 策略,用 p1n u1(x1),u2(x2),un(xn)表示。,本例中,如p14 u1(A)=B1,u2(B1)=C2,u3(C2)=D1,u4(D1)=E 表示其中一个策略,其总距离为2+5+6+3=16。,策略集合:在实际问题中,由于在各个阶段可供选择的决策有许多个,因此,它们的不同组合就构成了许多可供选择的决策序列(策略),由它们组成的集合,称为策略集合,记作 P1n。从策略集合中,找出具有最优效果的策略称为最优策略。,子策略:从k阶段到第n阶段,依次进行的阶段决策构成的决策序列称为k部子策略,表示为 pkn=uk(xk),uk+1(xk+1),un(xn),如从第3阶段的C2状态开始的一个子策略可表示:p34=u3(C2)=D1,u4(D1)=E,C2,(6)指标函数,用来衡量策略或子策略或决策的效果的某种数量指标,就称为指标函数。它是定义在全过程或各子过程或各阶段上的确定数量函数。对不同问题,指标函数可以是诸如费用、成本、产值、利润、产量、耗量、距离、时间、效用,等等。,阶段指标函数,过程指标函数,阶段指标函数:是指第 k 阶段从状态 xk 出发,采取决策 uk 时产生的效益,用 vk(xk,uk)表示。,例1中,指标函数是距离。如 v2(B1,C2)表示由B1 出发,采用决策到C2 点的两点间距离,即 v2(B1,C2)=5。,过程指标函数:是指从第 k 阶段的某状态 xk 出发,采取子策略 pkn 时所得到的效益,记作 Vkn(xk,uk,xk+1,uk+1,xn),例1中,如V34(C2,u3(C2)=D1,D1,u4(D1)=E,E)=6+3=9,C2,过程指标函数Vkn通常是描述所实现的全过程或k后部子过程效果优劣的数量指标,它是由各阶段的阶段指标函数vk(xk,uk)累积形成的。(1)可分性:适于用动态规划求解的问题的过程指标函数(即目标函数),必须具有关于阶段指标的可分离形式,即对于后部子过程的指标函数可以表示为:Vkn(xk,uk,xk+1,uk+1,xn)=vk(xk,uk)vk+1(xk+1,uk+1)vn(xn,un)式中,表示某种运算,可以是加、减、乘、除、开方等。,多阶段决策问题中,常见的目标函数形式之一是取各阶段效应 之和的形式,即:有些问题,如系统可靠性问题,其目标函数是取各阶段效应的 连乘积形式,如:总之,具体问题的目标函数表达形式需要视具体问题而定。,(2)可递推:过程指标函数Vkn要满足递推关系,即,可递推,Vkn(xk,uk,xk+1,uk+1,xn),k xk,uk,V(k+1)n(xk+1,uk+1,xn),vk(xk,uk)vk+1(xk+1,uk+1)vn(xn,un),vk(xk,uk),V(k+1)n(xk+1,uk+1,xn),最优指标函数:表示从第 k 阶段状态为 xk 时采用最优策略 pkn*到过程终止时的最佳效益值。记为 fk(xk)。fk(xk)=Vkn(xk,pkn*)=opt Vkn(xk,pkn),例1中,如 f3(C2)=3+4=7。,其中 opt 可根据具体情况取max 或min。,C2,动态规划的目标?最优解:最优策略 p1n最优值:最优指标 f1(A),多阶段决策问题的数学模型 综上所述,适于应用动态规划方法求解的一类多阶段决策问题的数学模型呈以下形式:f1=opt V1n(x1,p1n)最优指标函数 xk+1=Tk(xk,uk(xk)状态转移方程 ukDk 决策变量 xkSk 状态变量 k=1,2,n 阶段变量,st.,上述数学模型说明了对于给定的多阶段决策过程,求取一个(或多个)最优策略或最优决策序列 u1,u2,un,使之既满足左式给出的全部约束条件,又使左式所示的目标函数取得极值,并且同时指出执行该最优策略时,过程状态演变序列即是最优路线。,小结:,指标函数形式:和、积,无后效性,可递推,fk(xk)=Vkn(xk,pkn*)=opt Vkn(xk,pkn),Vkn(xk,uk,xk+1,uk+1,xn),k xk,uk,V(k+1)n(xk+1,uk+1,xn),解多阶段决策过程问题,求出,u1*,u2*,un*,x1*,x2*,xn*,1.划分阶段,2.正确选择状态变量,3.确定决策变量及允许决策集合,4.确定状态转移方程,5.确定阶段指标函数和最优指标函数,建立动态规划基本方程,划分阶段是运用动态规划求解多阶段决策问题的第一步,在确定多阶段特性后,按时间或空间先后顺序,将过程划分为若干相互联系的阶段。对于静态问题要人为地赋予“时间”概念,以便划分阶段。,建立动态规划模型的步骤,选择状态变量既要能确切描述过程演变又要满足无后效性,而且各阶段状态变量的取值能够确定。,通常选择所求解问题的关键变量作为决策变量,同时要给出决策变量的取值范围,即确定允许决策集合。,根据k 阶段状态变量和决策变量,写出k+1阶段状态变量,状态转移方程应当具有递推关系。,阶段指标函数是指第k 阶段的收益,最优指标函数是指从第k 阶段状态出发到第n 阶段末所获得收益的最优值,最后写出动态规划基本方程。,以上五步是建立动态规划数学模型的一般步骤。由于动态规划模型与线性规划模型不同,动态规划模型没有统一的模式,建模时必须根据具体问题具体分析,只有通过不断实践总结,才能较好掌握建模方法与技巧。下面我们看一个具体的例子,P156 例2 机器负荷分配问题(时间阶段问题),P156 例2 机器负荷分配问题(时间阶段问题)设有某种机器设备,用于完成两类工作A和B。若第k年初完好机器的数量为 xk,若以数量 uk 用于A,余下的(xkuk)用于工作B,则该年的预期收入为 g(uk)+h(xkuk)。其中g(uk)8uk,h(xkuk)=5(xkuk)。又机器设备在使用中会有损坏,设机器用于工作A时,一年后能继续使用的完好机器数占年初投入量的70%;若用于工作B时,一年后能继续使用的完好机器数占年初投入量的90%。则在下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xkuk)。设第1年初完好的机器总数为1000台,问在连续5年内每年应如何分配用于A、B两项工作的机器数,使5年的总收益为最大。,1.划分阶段,按年度来划分阶段,k=1,2,3,4,5,2.正确选择状态变量,状态变量xk为第k年度初拥有的完好机器数量,3.确定决策变量及允许决策集合,决策变量uk为第k年度中分配于A工作的机器数量,则xkuk为用于B工作的机器数量。,第k阶段决策集合Dk(xk)=uk|0ukxk,这里xk和uk均取连续变量,它们的非整数值可以这样理解,如xk=0.6,就表示一台机器在第k年度中正常工作时间只占6/10;uk=0.3,就表示一台机器在该年度只有3/10的时间能正常用于A工作。,4.确定状态转移方程,状态转移方程为 xk+1=0.7uk+0.9(xkuk),5.确定阶段指标函数和最优指标函数,建立动态规划基本方程,指标函数为,令最优指标函数fk(xk)表示由资源量xk出发,从第k年开始到第5年结束时所取得的最大预期收入。因而有:,fk(xk)=max,学习目标:1 掌握最优化原理的内容2 掌握逆序解法,3 动态规划的基本思想与基本原理,多阶段决策过程的最优化一般有三种思路求解1.全枚举法或穷举法:它的基本思想是列举出所有可能发生的方案和结果,再对它们一一进行比较,求出最优方案。可以计算:从A到E的路程可分为4个阶段。第一段走法有3种,第二段走法有3种,第三段走法有2种,第四段走法仅1种,共有332118条可能的路线,分别算出各条路线的距离,最后进行比较,可知最优路线是AB3C2 D2E,最短距离是11。用穷举法求最优路线的计算 工作量将会十分庞大,而且 其中包含着许多重复计算。,2.局部最优路径法:某人从k点出发,并不顾及全线是否最短,只是选择当前最短途径,“逢近便走”,错误地以为局部最优会致整体最优,在这种想法指导下,所取决策必是AB1C2D2E,全程长度是14;显然,这种方法的结果常是错误的。,小结:全枚举法虽可找出最优方案,但不是个好算法,局部最优法则完全是个错误方法,只有动态规划方法属较科学有效的算法,作为一个全过程的最优策略具有这样的性质:对于最优策略过程中的任意状态而言,无论其过去的状态和决策如何,余下的诸决策必构成一个最优子策略。(一个最优策略的子策略总是最优的),3.贝尔曼最优化原理(动态规划方法),作该原理的具体解释是,若某一全过程最优策略为:p1n*(x1)=u1*(x1),uk*(xk),uk+1*(xk+1),un*(xn)则对上述策略中所隐含的任一状态(xk)而言,第k子过程上对应于 xk 的最优策略必然包含在上述全过程最优策略p1n*中,即为 pkn*(xk)=uk*(xk),uk+1*(xk+1),un*(xn),C1,D1,A,B3,D2,E,C2,反证法进行证明,最优性原理在最短路线中的应用 在最短路线中,若找到了AB3C2D2E是由A到E的最短路线,则B3C2D2E必是由B3出发到E点的所有可能选择的不同路线中的最短路线。(一个最优策略的子策略总是最优的),4.函数基本方程 基于这个原理,提出了一种逆序递推法;该法的关键在于给出一种递推关系。一般把这种递推关系称为动态规划的函数基本方程。对于求最小的加法的基本方程为(如例1):,fk(xk)=min vk(xk,uk)+fk+1(xk+1)fn+1(xn+1)=0,边界条件,ukDk,用函数基本方程逆推求解是常用的方法:首先要有效地建立动态规划模型,然后再递推求解,最后得出结论。正确地建立一个动态规划模型,是解决问题的关键。,5.标号法(只适用于一类最优路线问题的特殊解法)标号法是借助网络图通过分段标号来求出最优路线的一种简便、直观的方法。通常标号法采取“逆序求解”的方法来寻找问题的最优解,即从最后阶段开始,逐次向阶段数小的方向推算,最终求得全局最优解。,E,A,标号法的一般步骤:(1)给最后一段标号,该段各状态(即各始点)到终点的距离用数字分别标在各点上方的方格内,并用粗箭线连接各点和终点。(2)向前递推,给前一阶段的各个状态标号。每个状态上方方格内的数字表示该状态到终点的最短距离。将刚标号的点沿着最短距离用粗箭线连接起来,表示出各刚标号的点到终点的最短路线。(3)逐次向前递推,直到将第一阶段的状态(即起点)标号,起点方格内的数字就是起点到终点的最短距离,从起点开始连接终点的粗箭线就是最短路线。,第(1)步 k=5,f5(x5)=f5(E)=0 这是边界条件,0,E,fk(xk)表示从第 k 阶段状态 xk 到 E 点的的最短距离,第(2)步 k=4,状态变量 x4 可取两种状态 D1、D2。由D1到终点E只有一条路线,路长为3,即 f4(D1)=3。同理,f4(D2)=4。,3,表示由D1点至E点的最短路长为3。,4,0,D1,第(3)步 k=3,状态变量 x3 可取三个值:C1、C2、C3。由C1到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。,路线1 v3(C1,D1)+f4(D1)=1+3=4路线2 v3(C1,D2)+f4(D2)=4+4=8,3,4,则由C1到终点E的最短距离 f3(C1)=minv3(C1,D1)+f4(D1),v3(C1,D2)+f4(D2)=4,4,C1,第(3)步 k=3,由C2到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。,路线1 v3(C2,D1)+f4(D1)=6+3=9路线2 v3(C2,D2)+f4(D2)=3+4=7,3,4,则由C2到终点E的最短距离 f3(C2)=minv3(C2,D1)+f4(D1),v3(C2,D2)+f4(D2)=7,C2,7,4,第(3)步 k=3,由C3到终点E有2条路线,分别为经过D1、D2到达E点(由D1、D2到达E点的最短路长在第一步已计算得出),需加以比较,取其中最短的。,路线1 v3(C3,D1)+f4(D1)=3+3=6路线2 v3(C3,D2)+f4(D2)=3+4=7,3,4,则由C3到终点E的最短距离 f3(C3)=minv3(C3,D1)+f4(D1),v3(C3,D2)+f4(D2)=6,C3,7,4,6,第(4)步 k=2,状态变量 x2 可取三个值:B1、B2、B3。由B1到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点 的最短距离在第二步已计算出),需加以比较,取其中最短的。,路线1 v2(B1,C1)+f3(C1)=7+4=11路线2 v2(B1,C2)+f3(C2)=5+7=12路线3 v2(B1,C3)+f3(C3)=6+6=12,3,4,则由B1到终点E的最短距离 f2(B1)=minv2(B1,C1)+f3(C1),v2(B1,C2)+f3(C2)v2(B1,C3)+f3(C3)=11,4,B1,7,6,11,第(4)步 k=2,由B2到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点 的最短距离在第二步已计算出),需加以比较,取其中最短的。,路线1 v2(B2,C1)+f3(C1)=3+4=7路线2 v2(B2,C2)+f3(C2)=2+7=9路线3 v2(B2,C3)+f3(C3)=4+6=10,3,4,则由B2到终点E的最短距离 f2(B2)=minv2(B2,C1)+f3(C1),v2(B2,C2)+f3(C2)v2(B2,C3)+f3(C3)=7,4,B2,7,6,11,7,第(4)步 k=2,由B3到终点E,可分别经过C1、C2、C3到达E点(由C1、C2、C3到E点 的最短距离在第二步已计算出),需加以比较,取其中最短的。,路线1 v2(B3,C1)+f3(C1)=5+4=9路线2 v2(B3,C2)+f3(C2)=1+7=8路线3 v2(B3,C3)+f3(C3)=5+6=11,3,4,则由B3到终点E的最短距离 f2(B3)=minv2(B3,C1)+f3(C1),v2(B3,C2)+f3(C2)v2(B3,C3)+f3(C3)=8,4,B3,7,6,11,7,8,第(5)步 k=1,状态变量 x1 只取一个值:A。由A到终点E,可分别经过B1、B2、B3到达E点(由B1、B2、B3到E点 的最短距离在第三步已计算出),需加以比较,取其中最短的。,经过B1点 v1(A,B1)+f2(B1)=2+11=13经过B2点 v1(A,B2)+f2(B2)=5+7=12经过B3点 v1(A,B3)+f2(B3)=3+8=11,3,4,则由A到终点E的最短距离 f1(A)=minv1(A,B1)+f2(B1),v1(A,B2)+f2(B2)v1(A,B3)+f2(B3)=11,4,A,7,6,11,7,8,11,从下图反推可得到最优路线。,3,4,4,A,7,6,11,7,8,11,因此,由A到终点E的最优解为:AB3C2D2E由点A到终点E的最优值为11。,小结:在求解的各阶段,都利用了第k阶和第k+1段的如下关 系:fk(xk)=min vk(xk,uk)+fk+1(xk+1)(1)f5(x5=E)=0(2),上述递推关系称为动态规划的基本方程。其中(2)式称为边界条件。,3,4,4,A,7,6,11,7,8,11,动态规划方法的优点,1.减少计算量 动态规划方法减少了计算量,而且随着阶段数的增加,计算量将大大减少。2.丰富了计算结果 在动态规划的解法中,得到的不仅仅是由A点出发到E点的最短路线及相应距离,而且得到了从所有中间点出发到E点的最短路线及相应距离。这对于许多实际问题来说是很有用的,有利于帮助分析所得的结果。,动态规划方法的基本思想,1.将多阶段决策过程划分阶段,恰当地选择状态变量、决策变 量,定义最优指标函数,从而把问题化成一簇同类型的子问 题,然后逐个求解。2.求解时从边界条件开始,逆过程方向行进,逐段递推寻优,在每一个子问题求解时,都要使用它前面已求出的子问题的 最优结果,最后一个子问题的最优解,就是整个问题的最优 解。,学习目标:1 了解顺序解法,4 逆序解法和顺序解法,动态规划的求解有两种基本方法 逆序解法(后向动态规划方法)如例1所使用的方法,寻优的方向与多阶段决策过程的实际行进方向相反,从最后一段开始计算逐段前推,求得全过程的最优策略。顺序解法(前向动态规划方法)与逆序解法相反,顺序解法的寻优的方向与过程的行进方向相同,计算时从第一段开始逐段向后递推,计算后一段要用到前一段的求优结果,最后一段计算的结果就是全过程的最优结果。,我们再次用例1来说明顺序解法。由于此问题的始点A与终点E都是固定的,计算由A点到E点的最短路线与由E点到A点的最短路线没有什么不同。若设 fk(xk+1)表示从起点A到第k阶段末状态点xk+1的最短距离 就可以由前向后逐步求出起点A到各阶段末状态点的最短距离,最后求出起点A到E点的最短距离及路线。,动态规划的目标:最优指标 f4(E),第一步 k=0,f0(x1)=f0(A)=0 这是边界条件,0,A,fk(xk+1)表示从起点A到第k阶段末状态点xk+1的最短距离,第二步 k=1,2,3,5,0,按 f1(x2)的定义有 f1(B1)=v(B1,A)+f0(A)=2 f1(B2)=v(B2,A)+f0(A)=5 f1(B3)=v(B3,A)+f0(A)=3,B1,B2,B3,第三步 k=2,2,3,5,0,按 f2(x3)的定义有 v(C1,B1)+f1(B1)=7+2=9 f2(C1)=min v(C1,B2)+f1(B2)=3+5=8 v(C1,B3)+f1(B3)=5+3=8,u2(C1)=B2 或B3,8,C1,状态转移方程:xk=Tk(xk+1,uk),第三步 k=2,2,3,5,0,按 f2(x3)的定义有 v(C2,B1)+f1(B1)=5+2=7 f2(C2)=min v(C2,B2)+f1(B2)=2+5=7 v(C2,B3)+f1(B3)=1+3=4,u2(C2)=B3,8,4,C2,第三步 k=2,2,3,5,0,按 f2(x3)的定义有 v(C3,B1)+f1(B1)=6+2=8 f2(C3)=min v(C3,B2)+f1(B2)=4+5=9 v(C3,B3)+f1(B3)=5+3=8,8,4,u2(C3)=B1 或B3,8,C3,第四步 k=3,2,3,5,0,按 f3(x4)的定义有 v(D1,C1)+f2(C1)=1+8=9 f3(D1)=min v(D1,C2)+f2(C2)=6+4=10 v(D1,C3)+f2(C3)=3+8=11,8,4,u3(D1)=C1,8,9,D1,第四步 k=3,2,3,5,0,按 f3(x4)的定义有 v(D2,C1)+f2(C1)=4+8=12 f3(D2)=min v(D2,C2)+f2(C2)=3+4=7 v(D2,C3)+f2(C3)=3+8=11,8,4,u3(D2)=C2,8,9,7,D2,第五步 k=4,2,3,5,0,按 f4(x5)的定义有 v(E,D1)+f3(D1)=3+9=12 f4(E)=min v(E,D2)+f3(D2)=4+7=11,8,4,u4(E)=D2,8,9,7,11,E,2,3,5,0,8,4,8,9,7,即可得到最优路线。,因此,由A到终点E的最优解为:AB3C2D2E由点A到终点E的最优值为11。,11,课堂练习,从A 地到D 地要铺设一条煤气管道,其中需经过两级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么路线,使总距离最短?,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,解:整个计算过程分三个阶段,从最后一个阶段开始第一阶段(C D):C 有三条路线到终点D。显然有 f3(C1)=1;f3(C2)=3;f3(C3)=4,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,2,1,1,1,4,C1,C2,C3,第二阶段(B C):B 到C 有六条路线。d(B1,C1)+f3(C1)3+1 f2(B1)=min d(B1,C2)+f3(C2)=min 3+3 d(B1,C3)+f3(C3)1+4 4=min 6=4 5,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,B1,B2,d(B2,C1)+f3(C1)2+1 f2(B2)=min d(B2,C2)+f3(C2)=min 3+3 d(B2,C3)+f3(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,B1,B2,第三阶段(A B):A 到B 有二条路线。f1(A)=min=min6,7=6,A,B1,B2,C1,C2,C3,D,2,4,3,3,3,3,2,1,1,1,4,A,d(A,B1)f2(B1)d(A,B2)f2(B2),(最短路线为AB1C1 D),练习 P156 例2 机器负荷分配问题(时间阶段问题)设有某种机器设备,用于完成两类工作A和B。若第k年初完好机器的数量为 xk,若以数量 uk 用于A,余下的(xkuk)用于工作B,则该年的预期收入为 g(uk)+h(xkuk)。其中g(uk)8uk,h(xkuk)=5(xkuk)。又机器设备在使用中会有损坏,设机器用于工作A时,一年后能继续使用的完好机器数占年初投入量的70%;若用于工作B时,一年后能继续使用的完好机器数占年初投入量的90%。则在下一年初能继续用于A、B工作的设备数为 xk+1=0.7uk+0.9(xkuk)。设第1年初完好的机器总数为1000台,问在连续5年内每年应如何分配用于A、B两项工作的机器数,使5年的总收益为最大。,构造动态规划模型如下:阶段k:运行年份(k=1,2,6),其中k=1表示第一年初,依次类推;k=6表示第5年末(即第6年初)。状态变量xk:第k年初完好的机器数(k=1,2,4),其中x6表 示第5年末(即第6年初)的完好机器数。决策变量uk:第k年度中分配于A工作的机器数量,则xkuk为 用于B工作的机器数量。状态转移方程:xk+1=0.7uk+0.9(xkuk)决策允许集合:Dk(xk)=uk|0ukxk 阶段指标:vk(xk,uk)=8uk+5(xkuk)终端条件:f6(x6)=0,递推方程:fk(xk)=max vk(xk,uk)+fk+1(xk+1)dkDk(xk)=max 8uk+5(xk-uk)+fk+10.7uk+0.9(xk-uk)0dkxk,这里xk和uk均取连续变量,它们的非整数值可以这样理解,如xk=0.6,就表示一台机器在第k年度中正常工作时间只占6/10;uk=0.3,就表示一台机器在该年度只有3/10的时间能正常用于A工作。,f5(x5)=max 8u5+5(x5u5)+f6(x6)0u5x5,u5*=x5,=max 3u5+5x5 0u5x5,=8x5,f4(x4)=max 8u4+5(x4u4)+f5(x5)0u4x4,=max 8u4+5(x4u4)+8x5 0u4x4,状态转移方程:xk+1=0.7uk+0.9(xkuk),=max 8u4+5(x4u4)+80.7u4+0.9(x4u4)0u4x4,=max 1.4u4+12.2x4 0u4x4,u4*=x4,=13.6x4,f3(x3)=max 8u3+5(x3u3)+f4(x4)0u3x3,=max 8u3+5(x3u3)+13.6x4 0u3x3,状态转移方程:xk+1=0.7uk+0.9(xkuk),=max 8u3+5(x3u3)+13.60.7u3+0.9(x3u3)0u3x3,=max 0.28u3+17.22x3 0u3x3,u3*=x3,=17.5x3,f2(x2)=max 8u2+5(x2u2)+f3(x3)0u2x2,=max 8u2+5(x2u2)+17.5x3 0u2x2,状态转移方程:xk+1=0.7uk+0.9(xkuk),=max 8u2+5(x2u2)+17.50.7u2+0.9(x2u2)0u2x2,=max 0.504u2+20.8x2 0u2x2,u2*=0,=20.8x2,f1(x1)=max 8u1+5(x1u1)+f2(x2)0u1x1,=max 8u1+5(x1u1)+20.8x2 0u1x1,状态转移方程:xk+1=0.7uk+0.9(xkuk),=max 8u1+5(x1u1)+20.80.7u1+0.9(x1u1)0u1x1,=max 0.05u1+23.7x1 0u1x1,u1*=0,=23.7x1,由此可以得到:f1(x1)=23.7x1,u1*=0f2(x2)=20.8x2,u2*=0f3(x3)=17.5x3,u3*=x3f4(x4)=13.6x4,u4*=x4f5(x5)=8x5 u5*=x5用x1=1000代入,得到五年最大总收入为 f1(x1)=f1(1000)=23700,x1u1=1000,x2=900,x2u2=900,x3=810,u3=810,x3u3=0,x4=567,u4=567,x4u4=0,x5=397,u5=397,x5u5=0,例4 某一警卫部门共有12支巡逻队,负责4个要害部位A、B、C、Dde警卫巡逻。对每个部位可分别派出24支巡逻队,并且由于派出巡逻队队数不同,各部位预期在一段时间内可能造成的损失由差别,具体数字见表。问该警卫部门分别派多少支巡逻队,使总的预期损失为最小。,解 把12支巡逻队伍往4部位看成依次分4个阶段(用k表示,k=1,2,3,4)(1)逆序解法每个阶段初拥有的可派遣的巡逻队数是前面阶段决策的结果,用状态变量 来表示。各阶段的决策变量就是对各部位派出的巡逻队数,用 表示,显然个阶段允许的决策集合为英每阶段初拥有可派遣的巡逻队数等于上阶段初拥有的数量减去上阶段排出的数,故状态转移律为若用 表示阶段 派出的巡逻队数为 时,该阶段的部位的预期损失值,因此指标函数可写为,设用 表示 阶段状态为,以此出发采用最优子策略到过程结束时的预期损失值,因此有先考虑给D部位派巡逻队,即,上式可写为 因问题中只有4个要害部门,故第5阶段初拥有的未派出的巡逻队数队前4个部位的预期损失不再起影响,故边界条件,因此有因,又 的可能值为,故由表1的数据可得表2的结果。,表2,再联合考虑对C、D两个部位派巡逻队,即,这是有因有,又,故可得表3的结果,表3,下面考虑对B、C、D三个部位派巡逻队,即,这时有同样有 又,故计算得表4。,表4,最后考虑对A、B、C、D四个部位派巡逻队,即 时,有因 有 故计算得表5,由表5知,最优策略是:A部位4支,B部位2支,C部位2支,D部位4支,总预期损失为97单位。,动态规划,动态规划问题实例动态规划的基本概念与原理动态规划应用举例,例 Wyndor Glass Company Problem,使用动态规划进行求解,1,2,一、动态规划问题建模,这个问题需要对两个相关活动(activity)确定其活动水平(level of activity),因此我们可以将这两个活动看作动态规划中的阶段。,决策变量:第 k 个活动的活动水平(level ofactivity),状态变量:可用于第k阶段生产的资源量(右端项)。即,状态转移方程:,阶段指标函数:第 k 阶段确定 时所产生的利润即,最优指标函数:第 k 阶段状态为 且采取最佳投资策略,从第 k 个活动以及以后的最大总利润。,逆序法基本递推方程:,二、动态规划问题求解,(1)k=2 时,因为,故有,k=2 时决策表,(2)k=1 时,因为初时状态确定,且,k=2 时决策表,在可行区间 上,因为,和,都在x1=2时获得最大值,k=1 时决策表,所以,k=1 时决策表,k=2 时决策表,背 包 问 题,一般的提法为:一旅行者携带背包去登山。已知他所能承受 的背包重量的极限为a(千克),现有n种物品可供他选择装入背包。第i种物品的单位重量为(千克),其价值(可以是表明本物品对登山者的重要性指标)是携带数量 的函数(i=1,2,n).问旅行者应如何选择携带物品的件数,以使总价值最大?,此模型解决的是运输工具包括卫星的最优装载问题。,其数学模型为:,设 为第 i 种物品装入的件数,则背包问题可归结为如下,形式的整数规划模型:,下面从一个例子来分析动态规划建模。,例 有一辆最大货运量为10 t 的卡车,用以装载3种货物,每种货物的单位重量及相应单位价值如表7-4 所示。,应如何装载可使总价值最大?,表 7-4,设第 种货物装载的件数为,则问题可表为:,阶段k:将可装入物品按1,2,3的顺序排序,每段装入一种物品,共划分3个阶段,即k=1,2,3.,状态变量:在第k段开始时,背