1、动 态 规 划(Dynamic programming),动态规划的基本思想,最短路径问题,投资分配问题,背包问题,动态规划是用来解决多阶段决策过程最优化的一种数量方法。其特点在于,它可以把一个n 维决策问题变换为几个一维最优化问题,从而一个一个地去解决。需指出:动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种算法。必须对具体问题进行具体分析,运用动态规划的原理和方法,建立相应的模型,然后再用动态规划方法去求解。,即在系统发展的不同时刻(或阶段)根据系统所处的状态,不断地做出决策;,每个阶段都要进行决策,目的是使整个过程的决策 达到最优效果。,动态决策问题的特点:,系统所处的
2、状态和时刻是进行决策的重要因素;,找到不同时刻的最优决策以及整个过程的最优策略。,多阶段决策问题:,是动态决策问题的一种特殊形式;,在多阶段决策过程中,系统的动态过程可以按照时间进程分为状态相互联系而又相互区别的各个阶段;,多阶段决策问题的典型例子:1.生产决策问题:企业在生产过程中,由于需求是随时间变化的,因此企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐季度地根据库存和需求决定生产计划。,2.机器负荷分配问题:某种机器可以在高低两种不同的负荷下进行生产。在高负荷下进行生产时,产品的年产量g和投入生产的机器数量u1的关系为g=g(u1),1,2,n,状态,决策,状态,决策,状态
3、,状态,决策,这时,机器的年完好率为a,即如果年初完好机器的数量为u,到年终完好的机器就为au,0a1。,在低负荷下生产时,产品的年产量h和投入生产的机器数量u2的关系为 h=h(u2),假定开始生产时完好的机器数量为s1。要求制定一个五年计划,在每年开始时,决定如何重新分配完好的机器在两种不同的负荷下生产的数量,使在五年内产品的总产量达到最高。,相应的机器年完好率b,0 b1。,3.航天飞机飞行控制问题:由于航天飞机的运动的环境是不断变化的,因此就要根据航天飞机飞行在不同环境中的情况,不断地决定航天飞机的飞行方向和速度(状态),使之能最省燃料和实现目的(如软着落问题)。,不包含时间因素的静态
4、决策问题(本质上是一次决策问题)也可以适当地引入阶段的概念,作为多阶段的决策问题用动态规划方法来解决。,4.线性规划、非线性规划等静态的规划问题也可以通过适当地引入阶段的概念,应用动态规划方法加以解决。,5.最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。,1,2,3,4,5,6,A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G,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,3,(一)、基本概念 1、阶段:把一个问题
5、的过程,恰当地分为若干个相互联系的阶段,以便于按一定的次序去求解。描述阶段的变量称为阶段变量。阶段的划分,一般是根据时间和空间的自然特征来进行的,但要便于问题转化为多阶段决策。,2、状态:表示每个阶段开始所处的自然状况或客观条件。通常一个阶段有若干个状态,描述过程状态的变量称为状态变量。,一个数、一组数、一个向量,状态变量的取值有一定的允许集合或范围,此集合称为状态允许集合。,一、动态规划的基本思想,3、决策:表示当过程处于某一阶段的某个状态时,可以作出不同的决定,从而确定下一阶段的状态,这种决定称为决策。,描述决策的变量,称为决策变量。决策变量是状态变量的函数。可用一个数、一组数或一向量(多
6、维情形)来描述。在实际问题中决策变量的取值往往在某一范围之内,此范围称为允许决策集合。,系统在某一阶段的状态转移不但与系统的当前的状态和决策有关,而且还与系统过去的历史状态和决策有关。,4、多阶段决策过程,可以在各个阶段进行决策,去控制过程发展的多段过程;,其发展是通过一系列的状态转移来实现的;,图示如下:,状态转移方程是确定过程由一个状态到另一个状态的演变过程。如果第k阶段状态变量sk的值、该阶段的决策变量一经确定,第k+1阶段状态变量sk+1的值也就确定。,其状态转移方程如下(一般形式),能用动态规划方法求解的多阶段决策过程是一类特殊的多阶段决策过程,即具有无后效性的多阶段决策过程。,如果
7、状态变量不能满足无后效性的要求,应适当地改变状态的定义或规定方法。,动态规划中能处理的状态转移方程的形式。,状态具有无后效性的多阶段决策过程的状态转移方程如下,无后效性(马尔可夫性),如果某阶段状态给定后,则在这个阶段以后过程的发展不受这个阶段以前各段状态的影响;,过程的过去历史只能通过当前的状态去影响它未来的发展;,构造动态规划模型时,要充分注意是否满足无后效性的要求;,状态变量要满足无后效性的要求;,5、策略:是一个按顺序排列的决策组成的集合。在实际问题中,可供选择的策略有一定的范围,称为允许策略集合。从允许策略集合中找出达到最优效果的策略称为最优策略。,6、状态转移方程:是确定过程由一个
8、状态到另一个状态的演变过程,描述了状态转移规律。,7、指标函数和最优值函数:用来衡量所实现过程优劣的一种数量指标,为指标函数。指标函数的最优值,称为最优值函数。在不同的问题中,指标函数的含义是不同的,它可能是距离、利润、成本、产量或资源消耗等。动态规划模型的指标函数,应具有可分离性,并满足递推关系。,小结:,指标函数形式:,和、,积,无后效性,可递推,解多阶段决策过程问题,求出,f1(s1),从 k 到终点最优策略子策略的最优目标函数值,1、动态规划方法的关键在于正确地写出基本的递推关系式和恰当的边界条件(简称基本方程)。要做到这一点,就必须将问题的过程分成几个相互联系的阶段,恰当的选取状态变
9、量和决策变量及定义最优值函数,从而把一个大问题转化成一组同类型的子问题,然后逐个求解。即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解。,(二)、动态规划的基本思想,2、在多阶段决策过程中,动态规划方法是既把当前一段和未来一段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的.,最优化原理:作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,相对于前面的决策所形成的状态而言,余下的决策序列必然构成最优子策
10、略。”也就是说,一个最优策略的子策略也是最优的。,3、在求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐段变换得到,从而确定了最优路线。,(三)、建立动态规划模型的步骤 1、划分阶段划分阶段是运用动态规划求解多阶段决策问题的第一步,在确定多阶段特性后,按时间或空间先后顺序,将过程划分为若干相互联系的阶段。对于静态问题要人为地赋予“时间”概念,以便划分阶段。2、正确选择状态变量选择变量既要能确切描述过程演变又要满足无后效性,而且各阶段状态变量的取值能够确定。一般地,状态变量的选择是从过程演变的特点中寻找。3、确定决策变量及允许决策集合
11、通常选择所求解问题的关键变量作为决策变量,同时要给出决策变量的取值范围,即确定允许决策集合。,4、确定状态转移方程根据k 阶段状态变量和决策变量,写出k+1阶段状态变量,状态转移方程应当具有递推关系。5、确定阶段指标函数和最优指标函数,建立动态规划基本方程 阶段指标函数是指第k 阶段的收益,最优指标函数是指从第k 阶段状态出发到第n 阶段末所获得收益的最优值,最后写出动态规划基本方程。,以上五步是建立动态规划数学模型的一般步骤。由于动态规划模型与线性规划模型不同,动态规划模型没有统一的模式,建模时必须根据具体问题具体分析,只有通过不断实践总结,才能较好掌握建模方法与技巧。,例一、从A 地到D
12、地要铺设一条煤气管道,其中需经过两级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么路线,使总距离最短?,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
13、,C3)+f1(C3)1+4 4=min 6=4 5,第二阶段(B C):B 到C 有六条路线。,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 有二条路线。,
14、f3(A)1=d(A,B1)f2(B1)246 f3(A)2=d(A,B2)f2(B2)437,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,练习1:,A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G,
15、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,k=5,出发点E1、E2、E3,k=2,f2(B1)=13 u2(B1)=C2 f2(B2)=16 u2(B2)=C3,7 5 9,u5(E2)=F2,u6(F2)=G,最优策略,A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G,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,3,求从A
16、到E的最短路径,路线为AB2C1 D1 E,最短路径为19,A,B2,B1,B3,C1,C3,D1,D2,E,C2,5,2,14,1,12,6,10,10,4,3,12,11,13,9,6,5,8,10,5,2,练习2:,1,现有数量为a(万元)的资金,计划分配给n 个工厂,用于扩大再生产。假设:xi 为分配给第i 个工厂的资金数量(万元);gi(xi)为第i 个工厂得到资金后提供的利润值(万元)。问题是如何确定各工厂的资金数,使得总的利润为最大。,据此,有下式:,三、投资分配问题,令:fk(x)=以数量为x 的资金分配给前k 个工厂,所得到的最大利润值。用动态规划求解,就是求 fn(a)的问题。,当 k=1 时,f1(x)=g1(x)(因为只给一个工厂),当1kn 时,其递推关系如下:设:y 为分给第k 个工厂的资金(其中 0y x),此时还剩 x y(万元)的资金需要分配给前 k-1 个工厂,如果采取最优策略,则得到的最大利润为fk1(xy),因此总的利润为:gk(y)fk1(xy),如果a 是以万元为资金分配单位,则式中的y 只取非负整数0,1,2,x。上式可变为:,所以,根据动
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1