第一节 动态规划问题 §1.1 多阶段决策问题 §1.2 动态规划问题举例 精品课程《运筹学》
动态规划是用来解决多阶段决策过程最优化的一种数量方法。其特点在于,它可以把一个n 维决策问题变换为几个一维最优化问题,从而一个一个地去解决。 需指出:动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种算法。必须对具体问题进行具体分析,运用动态规划的原理和方法,建立相应的模型,然后再用动态规划方法去求解。
动态决策问题的特点: 系统所处的状态和时刻是进行决策的重要因素; 即在系统发展的不同时刻(或阶段)根据系统所处的状态,不断地做出决策; 找到不同时刻的最优决策以及整个过程的最优策略。 多阶段决策问题: 是动态决策问题的一种特殊形式; 在多阶段决策过程中,系统的动态过程可以按照时间进程分为状态相互联系而又相互区别的各个阶段; 每个阶段都要进行决策,目的是使整个过程的决策 达到最优效果。
决策 决策 决策 状态 状态 状态 状态 1 2 n 多阶段决策问题的典型例子: 1 . 生产决策问题:企业在生产过程中,由于需求是随时间变化的,因此企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐季度地根据库存和需求决定生产计划。 2. 机器负荷分配问题:某种机器可以在高低两种不同的负荷下进行生产。在高负荷下进行生产时,产品的年产量g和投入生产的机器数量u1的关系为 g=g(u1)
这时,机器的年完好率为a,即如果年初完好机器的数量为u,到年终完好的机器就为au, 0<a<1。 在低负荷下生产时,产品的年产量h和投入生产的机器数量u2的关系为 h=h(u2) 相应的机器年完好率b, 0< b<1。 假定开始生产时完好的机器数量为s1。要求制定一个五年计划,在每年开始时,决定如何重新分配完好的机器在两种不同的负荷下生产的数量,使在五年内产品的总产量达到最高。
3. 航天飞机飞行控制问题:由于航天飞机的运动的环境是不断变化的,因此就要根据航天飞机飞行在不同环境中的情况,不断地决定航天飞机的飞行方向和速度(状态),使之能最省燃料和实现目的(如软着落问题)。 4. 不包含时间因素的静态决策问题(本质上是一次决策问题)也可以适当地引入阶段的概念,作为多阶段的决策问题用动态规划方法来解决。 5 . 线性规划、非线性规划等静态的规划问题也可以通过适当地引入阶段的概念,应用动态规划方法加以解决。
6. 能力规划问题(MPCP,Multi-period capacity planning)的典型形式可以描述为一个时间依赖的 多约束背包问题,设T个计划期N种设备具备能力cj 和采购价格pj,贴现率γ,需求Dt,目标函数为求 期望总成本最小。
7 . 最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 1 2 3 4 5 6
第二节 动态规划问题的基本要素和最优化原理 第二节 动态规划问题的基本要素和最优化原理 §2.1 动态规划的基本概念 §2.2 动态规划的基本思想 §2.3 建立动态规划模型的步骤 精品课程《运筹学》
例:最短路径问题 例一、从A 地到D 地要铺设一条煤气管道,其中需经过两级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么路线,使总距离最短? 3 C1 1 B1 3 2 1 3 A 2 C2 D 3 4 B2 4 1 C3 精品课程《运筹学》
解:整个计算过程分三个阶段,从最后一个阶段开始。 3 C1 C1 1 B1 3 2 1 3 A 2 C2 C2 D D 3 4 B2 4 1 C3 C3 解:整个计算过程分三个阶段,从最后一个阶段开始。 第一阶段(C →D): C 有三条路线到终点D 。 显然有 f1 (C1 ) = 1 ; f1(C2 ) = 3 ; f1 (C3 ) = 4 精品课程《运筹学》
f2 ( B1 ) = min d( B1,C2 ) + f1 (C2 ) = min 3+3 A 2 C2 C2 D D 3 4 B2 B2 4 1 C3 C3 第二阶段(B →C): B 到C 有六条路线。 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 (最短路线为B1→C1 →D) 精品课程《运筹学》
f2 ( B2 ) = min d( B2,C2 ) + f1 (C2 ) = min 3+3 A 2 C2 C2 D D 3 4 B2 B2 4 1 C3 C3 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 (最短路线为B2→C1 →D) 精品课程《运筹学》
第三阶段( A → B ): A 到B 有二条路线。 f3(A)1 = d(A, B1 )+ f2 ( B1 ) =2+4=6 C1 C1 1 B1 B1 3 2 1 3 A A 2 C2 C2 D D 3 4 B2 B2 4 1 C3 C3 第三阶段( A → B ): A 到B 有二条路线。 f3(A)1 = d(A, B1 )+ f2 ( B1 ) =2+4=6 f3 (A)2 = d(A, B2 )+ f2 ( B2 ) =4+3=7 d(A, B1 )+ f2 ( B1 ) d(A, B2 )+ f2 ( B2 ) ∴ f3 (A) = min = min{6,7}=6 (最短路线为A→B1→C1 →D) 精品课程《运筹学》
最短路线为 A→B1→C1 →D 路长为 6 3 C1 C1 1 B1 B1 3 2 1 3 A A 2 C2 C2 D D 3 4 B2 精品课程《运筹学》
练习1: 求从A到G的最短路径 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 精品课程《运筹学》
k=6, F1 G f6(F1)=4 F2 G ,f6(F2)=3 k=5,出发点E1、E2、E3 u5(E1)=F1 u5(E2)=F2 A B1 B2 C1 C2 C3 C4 D1 D2 D3 E1 E2 E3 F1 F2 G 5 3 1 6 8 7 4 2 k=6, F1 G f6(F1)=4 F2 G ,f6(F2)=3 k=5,出发点E1、E2、E3 u5(E1)=F1 E1 F1 G u5(E2)=F2 E2 F2 G u5(E3)=F2 E3 F2 G 精品课程《运筹学》
f3(C1)=13 u3(C1)=D1 f3(C2)=10 u3(C2)=D1 f3(C3)=9 u3(C3)=D1 k=3, k=4, f4(D1)=7 u4(D1)=E2 f4(D2)=6 u4(D2)=E2 f4(D3)=8 u4(D3)=E2 k=2, f2(B1)=13 u2(B1)=C2 f2(B2)=16 u2(B2)=C3 = min f1(A)= min d1(A,B1)+ f2(B1) d1(A,B2)+ f2(B2) 5+13 3+16 =18 k=1, u1(A)=B1 u2(B1)=C2 u3(C2)=D1 u4(D1)=E2 精品课程《运筹学》
u1(A)=B1 u2(B1)=C2 u3(C2)=D1 u4(D1)=E2 u5(E2)=F2 u6(F2)=G 7 5 9 E1 F1 G u5(E2)=F2 E2 F2 G u5(E3)=F2 E3 F2 G u5(E2)=F2 u6(F2)=G 7 5 9 C1 6 最优策略 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 精品课程《运筹学》
一、动态规划的基本思想 (一)、基本概念 1、阶段: 把一个问题的过程,恰当地分为若干个相互联系的阶段,以便于按一定的次序去求解。 描述阶段的变量称为阶段变量。阶段的划分,一般是根据时间和空间的自然特征来进行的,但要便于问题转化为多阶段决策。 年、月、路段 2、状态:表示每个阶段开始所处的自然状况或客观条件。通常一个阶段有若干个状态,描述过程状态的变量称为状态变量。 状态变量的取值有一定的允许集合或范围,此集合称为状态允许集合。
最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 1 2 3 4 5 6
3、决策:表示当过程处于某一阶段的某个状态时,可以作出不同的决定,从而确定下一阶段的状态,这种决定称为决策。 描述决策的变量,称为决策变量。决策变量是状态变量的函数。可用一个数或一组数来描述。 在实际问题中决策变量的取值往往在某一范围之内,此范围称为允许决策集合。
最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 1 2 3 4 5 6
4、多阶段决策过程 可以在各个阶段进行决策,去控制过程发展的多段过程;其发展是通过一系列的状态转移来实现的。 系统在某一阶段的状态转移不但与系统的当前的状态和决策有关,而且还与系统过去的历史状态和决策有关。
能用动态规划方法求解的多阶段决策过程是一类特殊的多阶段决策过程,即具有无后效性的多阶段决策过程。 其状态转移方程如下(一般形式) 状态转移方程是确定过程由一个状态到另一个状态的演变过程。如果第k阶段状态变量sk的值、该阶段的决策变量一经确定,第k+1阶段状态变量sk+1的值也就确定。 图示如下: 1 2 k s1 u1 s2 u2 s3 sk uk sk+1 能用动态规划方法求解的多阶段决策过程是一类特殊的多阶段决策过程,即具有无后效性的多阶段决策过程。
如果某阶段状态给定后,则在这个阶段以后过程的发展不受这个阶段以前各段状态的影响; 无后效性(马尔可夫性) 如果某阶段状态给定后,则在这个阶段以后过程的发展不受这个阶段以前各段状态的影响; 过程的过去历史只能通过当前的状态去影响它未来的发展;构造动态规划模型时,要充分注意是否满足无后效性的要求;状态变量要满足无后效性的要求 如果状态变量不能满足无后效性的要求,应适当地改变状态的定义或规定方法。 状态具有无后效性的多阶段决策过程的状态转移方程如下 动态规划中能 处理的状态转移 方程的形式。
5、策略:是一个按顺序排列的决策组成的集合。 在实际问题中,可供选择的策略有一定的范围,称为允许策略集合。从允许策略集合中找出达到最优效果的策略称为最优策略。 6、状态转移方程:是确定过程由一个状态到另一个状态的演变过程,描述了状态转移规律。
最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 1 2 3 4 5 6
7、指标函数和最优值函数:用来衡量所实现过程优劣的一种数量指标,为指标函数。指标函数的最优值,称为最优值函数。在不同的问题中,指标函数的含义是不同的,它可能是距离、利润、成本、产量或资源消耗等。
最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从A点到G点的最短距离(总费用最小)。 C1 6 1 2 8 D1 E1 3 B1 3 3 2 5 C2 5 F1 6 5 4 5 1 A D2 E2 G 8 2 3 2 3 3 7 B2 C3 3 6 3 F2 6 6 D3 E3 8 4 3 C4 1 2 3 4 5 6
解多阶段决策过程问题,求出 最优策略,即最优决策序列 最优轨线,即执行最优策略时的状态序列 最优函数值
(二)、动态规划的基本思想 1、动态规划方法的关键在于正确地写出基本的递推关系式和恰当的边界条件(简称基本方程)。要做到这一点,就必须将问题的过程分成几个相互联系的阶段,恰当的选取状态变量和决策变量及定义最优值函数,从而把一个大问题转化成一组同类型的子问题,然后逐个求解。即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解。
2、在多阶段决策过程中,动态规划方法是既把当前一段和未来一段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的. 3、在求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐段变换得到,从而确定了最优路线。
第三节 动态规划问题的一些例子 §3.2 投资分配问题 §3.3 背包问题 §3.4 排序问题 精品课程《运筹学》
§3.2 投资分配问题 现有数量为a(万元)的资金,计划分配给n 个工厂,用于扩大再生产。 假设:xi 为分配给第i 个工厂的资金数量(万元) ;gi(xi)为第i 个工厂得到资金后提供的利润值(万元)。 问题是如何确定各工厂的资金数,使得总的利润为最大。 据此,有下式: 精品课程《运筹学》
令: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) 精品课程《运筹学》
所以,根据动态规划的最优化原理,有下式: 如果a 是以万元为资金分配单位,则式中的y 只取非负整数0,1,2,…,x。上式可变为: 精品课程《运筹学》
例题: 设国家拨给60万元投资,供四个工厂扩建使用,每个工厂扩建后的利润与投资额的大小有关,投资后的利润函数如下表所示。 10 20 30 40 50 60 g1(x) 65 80 85 g2(x) 55 g3(x) 25 100 110 115 g4(x) 70 解:依据题意,是要求 f4(60) 。 精品课程《运筹学》
第一阶段:求 f1(x)。显然有 f1(x) = g1(x),得到下表 按顺序解法计算。 第一阶段:求 f1(x)。显然有 f1(x) = g1(x),得到下表 投资 利润 10 20 30 40 50 60 f1(x) = g1(x) 65 80 85 最优策略 第二阶段:求 f2(x)。此时需考虑第一、第二个工厂如何进行投资分配,以取得最大的总利润。 精品课程《运筹学》
最优策略为(40,20),此时最大利润为120万元。 同理可求得其它 f2(x) 的值。 精品课程《运筹学》
最优策略为(30,20),此时最大利润为105万元。 精品课程《运筹学》
最优策略为(20,20),此时最大利润为90万元。 最优策略为(20,10),此时最大利润为70万元。 精品课程《运筹学》
最优策略为(10,0)或( 0 , 10 ) ,此时最大利润为20万元。 最优策略为(20,0),此时最大利润为50万元。 最优策略为(10,0)或( 0 , 10 ) ,此时最大利润为20万元。 f2(0) =0。最优策略为(0,0),最大利润为0万元。 得到下表 精品课程《运筹学》
第三阶段:求 f3(x)。此时需考虑第一、第二及第三个工厂如何进行投资分配,以取得最大的总利润。 10 20 30 40 50 60 f2(x) 70 90 105 120 最优策略 (0,0) (10,0) (0,10) (20,0) (20,10) (20,20) (30,20) (40,20) 第三阶段:求 f3(x)。此时需考虑第一、第二及第三个工厂如何进行投资分配,以取得最大的总利润。 精品课程《运筹学》
最优策略为(20,10,30),最大利润为155万元。 同理可求得其它 f3(x) 的值。得到下表 精品课程《运筹学》
第四阶段:求 f4(60)。即问题的最优策略。 10 20 30 40 50 60 f3(x) 25 85 110 135 155 最优 投资 利润 10 20 30 40 50 60 f3(x) 25 85 110 135 155 最优 策略 (0,0,0) (0,0,10) (0,0,20) (0,0,30) (20,0,20) (20,0,30) (20,10,30) 第四阶段:求 f4(60)。即问题的最优策略。 精品课程《运筹学》
最优策略为(20,0,30,10),最大利润为160万元。 精品课程《运筹学》
练习: 求投资分配问题得最优策略,其中a=50 万元,其余资料如表所示。 10 20 30 40 50 g1(x) 21 52 80 85 利润 10 20 30 40 50 g1(x) 21 52 80 85 g2(x) 15 36 73 100 g3(x) 25 60 65 68 70 精品课程《运筹学》
§3.3 背包问题 有一个徒步旅行者,其可携带物品重量的限度为a 公斤,设有n 种物品可供他选择装入包中。已知每种物品的重量及使用价值(作用),问此人应如何选择携带的物品(各几件),使所起作用(使用价值)最大? 物品 1 2 … j … n 重量(公斤/件) a1 a2 … aj … an 每件使用价值 c1 c2 … cj … cn 这就是背包问题。类似的还有工厂里的下料问题、运输中的货物装载问题、人造卫星内的物品装载问题等。 精品课程《运筹学》
设xj 为第j 种物品的装件数(非负整数)则问题的数学模型如下: 用动态规划方法求解,令 fk(y) = 总重量不超过 y 公斤,包中只装有前k 种物品时的最大使用价值。 其中y ≥0, k =1,2, …, n 。所以问题就是求 fn(a) 精品课程《运筹学》
其递推关系式为: 当 k=1 时,有: 精品课程《运筹学》
例题:求下面背包问题的最优解 解:a=5 ,问题是求 f3(5) 1 2 3 3 2 5 8 5 12 物品 重量(公斤) 使用价值 1 2 3 重量(公斤) 3 2 5 使用价值 8 5 12 解:a=5 ,问题是求 f3(5) 精品课程《运筹学》
精品课程《运筹学》
精品课程《运筹学》
精品课程《运筹学》
精品课程《运筹学》
所以,最优解为 X=(1 . 1 . 0),最优值为 Z = 13。 精品课程《运筹学》
求从A到E的最短路径 作业1: B1 C1 D1 B2 C2 A E D2 B3 C3 1 12 3 14 10 2 9 5 6 6 5 13 8 12 B3 C3 10 11 精品课程《运筹学》
作业2:某公司打算在3个不同的地区设置4个销售点,根据市场部门估计,在不同地区设置不同数量的销售点每月可得到的利润如表所示。试问在各地区如何设置销售点可使每月总利润最大。 1 2 3 4 16 12 10 25 17 14 30 21 32 22 x1=2,x2=1,x3=1,f3(4)=47 精品课程《运筹学》
作业3:某厂生产三种产品,各种产品重量与利润的关系如表所示。现将此三种产品运往市场出售,运输能力总重量不超过 6 吨,问如何安排运输,使总利润最大? 种类 1 2 3 重量(吨/公斤) 2 3 4 单件利润(元) 80 130 180 精品课程《运筹学》
§3.4 排序问题 例一、 排序问题指n 种零件经过不同设备加工是的顺序问题。其目的是使加工周期为最短。 1、n × 1 排序问题 14 6 8 20 23 交货日期(d) 4 5 1 7 3 加工时间(t) 零件代号 精品课程《运筹学》
按零件加工时间非负次序排列顺序,其时间最小。(即将加工时间由小到大排列即可) (1)平均通过设备的时间最小 按零件加工时间非负次序排列顺序,其时间最小。(即将加工时间由小到大排列即可) 零件加工顺序 工序时间 1 3 4 5 7 实际通过时间 1 4 8 13 20 交货时间 8 23 14 6 20 平均通过时间 精品课程《运筹学》
延迟时间 = 13 – 6 = 7 (2)按时交货排列顺序 延迟时间 = 0 平均通过时间 零件加工顺序 工序时间 1 3 4 5 7 实际通过时间 5 6 10 17 20 交货时间 8 23 14 6 20 延迟时间 = 0 平均通过时间 精品课程《运筹学》
(3)既满足交货时间,又使平均通过时间最小 零件加工顺序 工序时间 1 3 4 5 7 实际通过时间 1 6 9 13 20 交货时间 8 23 14 6 20 延迟时间 = 0 平均通过时间 精品课程《运筹学》
例二、 2、n × 2 排序问题 即n 种零件经过2 种设备进行加工,如何安排? 4 9 5 2 3 7 8 6 设备 A B T 零件 A 精品课程《运筹学》
经变换为 加工周期 T = 3+7+5+6+8+2 = 31 加工顺序图如下: 4 9 5 2 3 7 8 6 设备 A B T 零件 A -5 9 5 4 3 2 T 精品课程《运筹学》
即n 种零件经过 3 种设备进行加工,如何安排? 例三、 3 4 6 8 5 7 9 10 C B A 精品课程《运筹学》
A B C T 变换 4+3 6+4 5+8 6+5 8+6 5+3 7+5 3+9 10+3 B + C A+B 精品课程《运筹学》
4+3 6+4 5+8 6+5 8+6 5+3 7+5 3+9 10+3 B + C A+B 排序 复原 3 4 6 8 5 7 9 10 C B A 精品课程《运筹学》
计算 T = 6+10+8+7+6+4+3 = 44 计算依据: 精品课程《运筹学》
练习: 11 8 5 10 7 9 2 4 6 C B A T=45 精品课程《运筹学》