《动态规划的基本方法ppt课件》由会员分享,可在线阅读,更多相关《动态规划的基本方法ppt课件(77页珍藏版)》请在金锄头文库上搜索。
1、动态规划的基本思想及应用动态规划的基本思想及应用 (Dynamic programming)5.1 动态规划的实例动态规划的实例5.2动态规划的基本概念动态规划的基本概念5.4 资源分配问题资源分配问题5.5 背包问题背包问题5.3 动态规划方法的基本思想动态规划方法的基本思想*5.6 排序问题排序问题1动态规划是用来解决多阶段决策过程最优化的一种数量动态规划是用来解决多阶段决策过程最优化的一种数量方法。其特点在于,它可以把一个方法。其特点在于,它可以把一个n 维决策问题变换为维决策问题变换为几个一维最优化问题,从而一个一个地去解决。几个一维最优化问题,从而一个一个地去解决。需指出:动态规划是
2、求解某类问题的一种方法,是考察需指出:动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种算法。必须对具体问题进问题的一种途径,而不是一种算法。必须对具体问题进行具体分析,运用动态规划的原理和方法,建立相应的行具体分析,运用动态规划的原理和方法,建立相应的模型,然后再用动态规划方法去求解。模型,然后再用动态规划方法去求解。5.1 动态规划的实例动态规划的实例2n即在系统发展的不同时刻(或阶段)根据系统所处的状态,不断即在系统发展的不同时刻(或阶段)根据系统所处的状态,不断地做出决策;地做出决策;每个阶段都要进行每个阶段都要进行决策决策, ,目的是使整个过程的决策达到最优效果。目的
3、是使整个过程的决策达到最优效果。动态决策问题的特点:动态决策问题的特点:n系统所处的状态和时刻是进行决策的重要因素;系统所处的状态和时刻是进行决策的重要因素;n找到不同时刻的最优决策以及整个过程的最优策略。找到不同时刻的最优决策以及整个过程的最优策略。多阶段决策问题:多阶段决策问题:是动态决策问题的一种特殊形式;是动态决策问题的一种特殊形式;在多阶段决策过程中在多阶段决策过程中, ,系统的动态过程可以按照时间进程分为系统的动态过程可以按照时间进程分为状态状态相互相互联联系系而又相互而又相互区别区别的各个的各个阶段阶段;3多阶段决策问题的典型例子:多阶段决策问题的典型例子:1 . 生产决策问题生
4、产决策问题:企业在生产过程中,由于需求是随时间变化的,因此:企业在生产过程中,由于需求是随时间变化的,因此企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐企业为了获得全年的最佳生产效益,就要在整个生产过程中逐月或逐季度地季度地根据库存和需求决定生产计划。根据库存和需求决定生产计划。2. 机机器器负负荷荷分分配配问问题题:某某种种机机器器可可以以在在高高低低两两种种不不同同的的负负荷荷下下进进行行生生产产。在在高高负负荷荷下下进进行行生生产产时时,产产品品的的年年产产量量 g 和和投投入入生生产产的的机机器器数数量量 u1的关系为的关系为 g=g(u1)12n状态状态决策决策状态状态
5、决策决策状态状态状态状态决策决策4这时,机器的年完好率为这时,机器的年完好率为 a , 0a1 ,即如果年初完好机器的数量为,即如果年初完好机器的数量为 u1,到年终完好的机器就为到年终完好的机器就为 au1, 0a1。在低负荷下生产时,产品的年产量在低负荷下生产时,产品的年产量 h 和投入生产的机器数量和投入生产的机器数量 u2 的关系的关系为为 h=h(u2)假定开始生产时完好的机器数量为假定开始生产时完好的机器数量为 s1。要求制定一个五年计划,在。要求制定一个五年计划,在每每年开始时,决定如何重新分配年开始时,决定如何重新分配完好的完好的机器在两种不同的负荷下生产的机器在两种不同的负荷
6、下生产的数量数量,使在五年内产品的总产量达到最高。,使在五年内产品的总产量达到最高。 相应的机器年完好率相应的机器年完好率 b, 0 b1。 53. 航天飞机飞行控制问题:航天飞机飞行控制问题:由于航天飞机的运动的环境是不断变化的,由于航天飞机的运动的环境是不断变化的,因此就要根据航天飞机飞行在不同环境中的情况,不断地决定航天因此就要根据航天飞机飞行在不同环境中的情况,不断地决定航天飞机的飞行方向和速度(状态),使之能最省燃料和实现目的(如飞机的飞行方向和速度(状态),使之能最省燃料和实现目的(如软着落问题)。软着落问题)。不包含时间因素的静态决策问题(本质上是一次决策问题)也可以适当不包含时
7、间因素的静态决策问题(本质上是一次决策问题)也可以适当地引入阶段的概念,作为多阶段的决策问题用动态规划方法来解决。地引入阶段的概念,作为多阶段的决策问题用动态规划方法来解决。 4 . 线性规划、非线性规划等静态的规划问题线性规划、非线性规划等静态的规划问题也可以通过适当地引入阶也可以通过适当地引入阶段的概念,应用动态规划方法加以解决。段的概念,应用动态规划方法加以解决。65 . 最短路问题最短路问题:给定一个交通网络图如下,其中两点之间的数字表示距离:给定一个交通网络图如下,其中两点之间的数字表示距离(或花费),试求从(或花费),试求从A点到点到G点的最短距离(总费用最小)。点的最短距离(总费
8、用最小)。123456AB1B2C1C2C3C4D1D2D3E1E2E3F1F2G53136876368533842221333525664371、阶段:、阶段:p把一个问题的过程,恰当地分为若干个相互联系的把一个问题的过程,恰当地分为若干个相互联系的阶段阶段,以便于按,以便于按一定的次序去求解。一定的次序去求解。p描述阶段的变量称为描述阶段的变量称为阶段变量阶段变量。阶段的划分,一般是根据时间和空。阶段的划分,一般是根据时间和空间的自然特征来进行的,但要便于问题转化为多阶段决策。间的自然特征来进行的,但要便于问题转化为多阶段决策。2、状态:、状态:表示每个阶段开始所处的表示每个阶段开始所处的
9、自然状况或客观条件自然状况或客观条件。通常一个阶段有若。通常一个阶段有若干个状态,描述过程状态的变量称为干个状态,描述过程状态的变量称为状态变量状态变量。年、年、月、月、路段路段一个数、一个数、一组数、一组数、一个向量一个向量 状态变量的取值有一定的允许集合或范围,此集合称为状态变量的取值有一定的允许集合或范围,此集合称为状态允许集合状态允许集合。5.2 动态规划的基本概念动态规划的基本概念83、决策:、决策:表示当过程处于某一阶段的某个状态时,可以作出不同的决定,表示当过程处于某一阶段的某个状态时,可以作出不同的决定,从而确定下一阶段的状态从而确定下一阶段的状态,这种决定称为这种决定称为决策
10、决策。描述决策的变量,称为描述决策的变量,称为决策变量决策变量。决策变量是状态变量的函数。可。决策变量是状态变量的函数。可用一个数、一组数或一向量(多维情形)来描述。用一个数、一组数或一向量(多维情形)来描述。在实际问题中决策变量的取值往往在某一范围之内,此范围称为在实际问题中决策变量的取值往往在某一范围之内,此范围称为允允许决策集合许决策集合。系统在某一阶段的状态转移不但与系统的当前的状态和决策有关,系统在某一阶段的状态转移不但与系统的当前的状态和决策有关,而且还与系统过去的历史状态和决策有关。而且还与系统过去的历史状态和决策有关。4、多阶段决策过程、多阶段决策过程可以在各个阶段进行决策,去
11、控制过程发展的多段过程;可以在各个阶段进行决策,去控制过程发展的多段过程;其发展是通过一系列的状态转移来实现的;其发展是通过一系列的状态转移来实现的;9图示如下:图示如下:状态转移方程是确定过程由一状态转移方程是确定过程由一个状态到另一个状态的演变过个状态到另一个状态的演变过程。如果第程。如果第k阶段状态变量阶段状态变量sk的值、该阶段的决策变量一经的值、该阶段的决策变量一经确定,第确定,第k+1阶段状态变量阶段状态变量sk+1的值也就确定。的值也就确定。其状态转移方程如下(一般形式)其状态转移方程如下(一般形式)12ks1u1s2u2s3skuksk+1能用动态规划方法求解的多阶段决策过程是
12、一类特殊的多阶段决策过程,能用动态规划方法求解的多阶段决策过程是一类特殊的多阶段决策过程,即即具有无后效性具有无后效性的多阶段决策过程。的多阶段决策过程。10动态规划中能动态规划中能处理的状态转移处理的状态转移方程的形式方程的形式。状态具有无后效性的多阶段决策过程的状态转移方程如下状态具有无后效性的多阶段决策过程的状态转移方程如下无后效性无后效性(马尔可夫性马尔可夫性)如果某阶段状态给定后,则在这个阶段以后过程的发展不受这个如果某阶段状态给定后,则在这个阶段以后过程的发展不受这个阶段以前各段状态的影响;阶段以前各段状态的影响;过程的过去历史只能通过当前的状态去影响它未来的发展;构造过程的过去历
13、史只能通过当前的状态去影响它未来的发展;构造动态规划模型时,要充分注意是否满足无后效性的要求;动态规划模型时,要充分注意是否满足无后效性的要求;状态变量要满足无后效性的要求;状态变量要满足无后效性的要求;如果状态变量不能满足无后效如果状态变量不能满足无后效性的要求,应适当地改变状态的定义或规定方法。性的要求,应适当地改变状态的定义或规定方法。11 5、策略:、策略:是一个按顺序排列的决策组成的集合。在实际问题中,可供选择的是一个按顺序排列的决策组成的集合。在实际问题中,可供选择的策略有一定的范围,称为策略有一定的范围,称为允许策略集合允许策略集合。从允许策略集合中找出达。从允许策略集合中找出达
14、到最优效果的策略称为到最优效果的策略称为最优策略最优策略。 6、状态转移方程:、状态转移方程:是确定过程由一个状态到另一个状态的演变过程,描述了状态转是确定过程由一个状态到另一个状态的演变过程,描述了状态转移规律。移规律。 7、指标函数和最优值函数:、指标函数和最优值函数:用来衡量所实现过程优劣的一种数量指标,为用来衡量所实现过程优劣的一种数量指标,为指标函数指标函数。指标函。指标函数的最优值,称为数的最优值,称为最优值函数最优值函数。在不同的问题中,指标函数的含。在不同的问题中,指标函数的含义是不同的,它可能是距离、利润、成本、产量或资源消耗等。义是不同的,它可能是距离、利润、成本、产量或资
15、源消耗等。动态规划模型的指标函数应具有动态规划模型的指标函数应具有可分离性可分离性,并满足,并满足递推递推关系。关系。12指标函数指标函数: 指标函数形式指标函数形式: 和、和、积积可递推可递推 效益效益最优函数最优函数: 13解多阶段决策过程问题,求出解多阶段决策过程问题,求出 最优策略最优策略,即最优,即最优决策序列决策序列f1(s1) 最优轨线最优轨线,即执行最优策略时的即执行最优策略时的状态序列状态序列 最优目标函数值最优目标函数值从从 k 到终点最优策略到终点最优策略子策略的最优目标函数值子策略的最优目标函数值141、动态规划方法的关键在于正确地写出基本的递推关系式和恰当的、动态规划
16、方法的关键在于正确地写出基本的递推关系式和恰当的边界条件(简称基本方程)。边界条件(简称基本方程)。要做到这一点,就必须将问题的过程分成几个相互联系的阶要做到这一点,就必须将问题的过程分成几个相互联系的阶段,恰当的选取状态变量和决策变量及定义最优值函数,从段,恰当的选取状态变量和决策变量及定义最优值函数,从而把一个大问题转化成一组同类型的子问题,然后逐个求解。而把一个大问题转化成一组同类型的子问题,然后逐个求解。即从边界条件开始,逐段递推寻优,在每一个子问题的求解即从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最中,均利用了它前面的子问题的
17、最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解。后一个子问题所得的最优解,就是整个问题的最优解。5.3 动态规划的基本思想动态规划的基本思想152、在多阶段决策过程中,动态规划方法是既把当前一段和未来一、在多阶段决策过程中,动态规划方法是既把当前一段和未来一段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的一般是不同的. 最优化原理:作为整个过程的最优策略具有这样的性质:无论
18、过去最优化原理:作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,相对于前面的决策所形成的状态而言,余下的的状态和决策如何,相对于前面的决策所形成的状态而言,余下的决策序列必然构成最优子策略。决策序列必然构成最优子策略。”也就是说,一个最优策略的子策也就是说,一个最优策略的子策略也是最优的。略也是最优的。 3、在求整个问题的最优策略时,由于初始状态是已知的,而每段、在求整个问题的最优策略时,由于初始状态是已知的,而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐段变换得到,从而确定了最优路线。逐段变换得到,从而
19、确定了最优路线。16建立动态规划模型的步骤建立动态规划模型的步骤 1、划分阶段、划分阶段划划分分阶阶段段是是运运用用动动态态规规划划求求解解多多阶阶段段决决策策问问题题的的第第一一步步,在在确确定定多多阶阶段段特特性性后后,按按时时间间或或空空间间先先后后顺顺序序,将将过过程程划划分分为为若若干干相相互互联联系系的的阶阶段段。对对于于静静态态问问题题要要人人为为地地赋赋予予“时时间间”概概念念,以便划分阶段。以便划分阶段。2、正确选择状态变量、正确选择状态变量选选择择变变量量既既要要能能确确切切描描述述过过程程演演变变又又要要满满足足无无后后效效性性,而而且且各各阶阶段段状状态态变变量量的的取
20、取值值能能够够确确定定。一一般般地地,状状态态变变量量的的选选择择是是从从过程演变的特点中寻找。过程演变的特点中寻找。3、确定决策变量及允许决策集合、确定决策变量及允许决策集合通通常常选选择择所所求求解解问问题题的的关关键键变变量量作作为为决决策策变变量量,同同时时要要给给出出决决策变量的取值范围,即确定允许决策集合。策变量的取值范围,即确定允许决策集合。174、确定状态转移方程、确定状态转移方程根据根据k 阶段状态变量和决策变量,写出阶段状态变量和决策变量,写出k+1阶段状态变量,状态阶段状态变量,状态转移方程应当具有递推关系。转移方程应当具有递推关系。5、确定阶段指标函数和最优指标函数,建
21、立动态规划基本方程、确定阶段指标函数和最优指标函数,建立动态规划基本方程 阶段指标函数是指第阶段指标函数是指第k 阶段的收益,最优指标函数是指从第阶段的收益,最优指标函数是指从第k 阶段状态出发到第阶段状态出发到第n 阶段末所获得收益的最优值,最后写出动阶段末所获得收益的最优值,最后写出动态规划基本方程。态规划基本方程。以上五步是建立动态规划数学模型的一般步骤。由于动态规划模型与线以上五步是建立动态规划数学模型的一般步骤。由于动态规划模型与线性规划模型不同,动态规划模型没有统一的模式,建模时必须根据具体性规划模型不同,动态规划模型没有统一的模式,建模时必须根据具体问题具体分析,只有通过不断实践
22、总结,才能较好掌握建模方法与技巧。问题具体分析,只有通过不断实践总结,才能较好掌握建模方法与技巧。 18例例 从从A 地到地到D 地要铺设一条煤气管道地要铺设一条煤气管道,其中需经过两级中间站,两点其中需经过两级中间站,两点之间的连线上的数字表示距离,如图所示。问应该选择什么路线,之间的连线上的数字表示距离,如图所示。问应该选择什么路线,使总距离最短?使总距离最短? AB1B2C1C2C3D24333321114最短路径问题最短路径问题19 解:解:整个计算过程分三个阶段,从最后一个阶段开始。整个计算过程分三个阶段,从最后一个阶段开始。 第一阶段(第一阶段(C D):): C 有三条路线到终点
23、有三条路线到终点D 。 AB1B2C1C2C3D24333321114DC1C2C3显然有显然有 f1 (C1 ) = 1 ; f1(C2 ) = 3 ; f1 (C3 ) = 4 20 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 有六条路线。有六条路线。AB1B2C1C2C3D24333321114DC1C2C3B1B2(最短路线为最短路线为B1C1 D)21
24、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 5AB1B2C1C2C3D24333321114DC1C2C3B1B2(最短路线为最短路线为B2C1 D)22第三阶段(第三阶段( A B ):): A 到到B 有二条路线。有二条路线。 f3(A)1 = d(A, B1 ) f2 ( B1 ) 246 f3 (A)2 = d(A, B2 ) f2 ( B2 ) 437 f3 (A) = min = min6,7=6d(
25、A, B1 ) f2 ( B1 )d(A, B2 ) f2 ( B2 )(最短路线为最短路线为AB1C1 D)AB1B2C1C2C3D24333321114DC1C2C3B1B2A23AB1B2C1C2C3D24333321114DC1C2C3B1B2A最短路线为最短路线为 AB1C1 D 路长为路长为 624例例5.1AB1B2C1C2C3C4D1D2D3E1E2E3F1F2G53136876368533842221333525664最优路线为:最优路线为:A B1 C2 D1 E2 F2 G 路长路长18求从求从A到到G的最短路径的最短路径325k=5k=5,出发点,出发点E1E1、E2E
26、2、E3E3u5(E1)=F1E1 F1 GAB1B2C1C2C3C4D1D2D3E1E2E3F1F2G531368766835338422123335526643u5(E2)=F2E2 F2 Gu5(E3)=F2E3 F2 Gk=6k=6,F1 G f f6 6(F1)=4(F1)=4F F2 2 G ,f,f6 6(F2)=3(F2)=326k=4,f4(D1)=7 u4(D1)=E2f4(D2)=6 u4(D2)=E2f4(D3)=8 u4(D3)=E2k=2, f2(B1)=13 u2(B1)=C2 f2(B2)=16 u2(B2)=C3f3(C1)=13 u3(C1)=D1f3(C2
27、)=10 u3(C2)=D1f3(C3)=9 u3(C3)=D1f3(C4)=12 u3(C4)=D3k=3,= minf1(A)= mind1(A,B1)+ f2(B1) d1(A,B2)+ f2(B2)5+133+16=18k=1,u1(A)=B1u2(B1)=C2u3(C2)=D1u4(D1)=E227u1(A)=B1u2(B1)=C2u3(C2)=D1u4(D1)=E2u5(E1)=F1E1 F1 Gu5(E2)=F2E2 F2 Gu5(E3)=F2E3 F2 G7 5 9 u5(E2)=F2u6(F2)=G最优策略最优策略AB1B2C1C2C3C4D1D2D3E1E2E3F1F2G5
28、3136876368533842221333525664328求从求从A到到E的最短路径的最短路径路线为路线为AB2C1 D1 E ,最短路径为,最短路径为19AB2B1B3C1C3D1D2EC252141 12610104312111396581052课堂练习课堂练习129*例例5.2 利用动态规划的顺推解法求解下列问题。利用动态规划的顺推解法求解下列问题。解:解:按问题中变量的个数分为三个阶段。设状态变量为按问题中变量的个数分为三个阶段。设状态变量为s0,s1,s2,s3,并记,并记s39;取;取x1,x2,x3为各阶段的决策变量;各阶段指标函数按加法方式结合。为各阶段的决策变量;各阶段指
29、标函数按加法方式结合。令最优值函数令最优值函数fk(sk)表示第表示第 k 阶段的结束状态为阶段的结束状态为 sk,从第,从第1阶段到第阶段到第 k 阶阶段的最大值。段的最大值。 设设3x1=s1, s1+2x2=s2,s2+x3=s3,则有,则有 x1=s1/3, 0x2s2/2, 0x3s330用顺推法,从前向后依次有,用顺推法,从前向后依次有,当当 k=1 时时当当 k=2 时时,有,有令令 ,由,由 得得由于该点不在允许决策集合内,所以最大值点不可能在该点取得,所以由于该点不在允许决策集合内,所以最大值点不可能在该点取得,所以无需验证。因此,无需验证。因此,h2(x2) 的最大值必在两
30、个端点上选取。计算得到的最大值必在两个端点上选取。计算得到 所以所以 h2(x2) 的最大值在的最大值在 x2=0 处取得,且有处取得,且有31当当 k=3 时时,有,有 令令 ,由,由又又 ,所以,所以 x3=2s3/11 为极小值点,由此可得,函数为极小值点,由此可得,函数 h3(x3) 的的最大值点必在两个端点上选取。计算两个端点的函数值,有最大值点必在两个端点上选取。计算两个端点的函数值,有 所以所以 h3(x3) 的最大值点在的最大值点在 x3=s3 处。由此可知处。由此可知32由于由于 s3 未知,故须再对未知,故须再对 s3 求一次极值,即求一次极值,即 显然,当显然,当 s3=
31、9 时,时,f3(s3) 达到最大值,即达到最大值,即再按计算的顺序反推算,可以求得最优解和最优值再按计算的顺序反推算,可以求得最优解和最优值 33现有数量为现有数量为a(万元)的资金,计划分配给(万元)的资金,计划分配给n 个工厂个工厂,用于扩大再生产。用于扩大再生产。假设:假设:xi 为分配给第为分配给第i 个工厂的资金数量(万元)个工厂的资金数量(万元) ;gi(xi)为第为第i 个工厂个工厂得到资金后提供的利润值(万元)。得到资金后提供的利润值(万元)。问题是如何确定各工厂的资金数,使得总的利润为最大。问题是如何确定各工厂的资金数,使得总的利润为最大。 据此,有:据此,有:5.4 资源
32、分配问题资源分配问题34令:令:fk(x) = 以数量为以数量为x 的资金分配给前的资金分配给前k 个工厂所得到的最大利润值个工厂所得到的最大利润值。用动态规划求解,就是求用动态规划求解,就是求 fn(a) 的问题。的问题。当当 k=1 时时, f1(x) = g1(x) (因为只给一个工厂)(因为只给一个工厂) 当当1kn 时时,其递推关系如下:,其递推关系如下:设:设:y 为分给第为分给第k 个工厂的资金(其中个工厂的资金(其中 0y x ),此时还剩),此时还剩 x y (万元万元)的资金需要分配给前的资金需要分配给前 k-1 个工厂个工厂,如果采取最优策略,则得到的最大利润如果采取最优
33、策略,则得到的最大利润为为 fk-1(x - y) ,因此总的利润为:因此总的利润为: gk(y) + fk-1(x - y) 35如果如果a 是以万元为资金分配单位,则式中的是以万元为资金分配单位,则式中的y 只取非负整数只取非负整数 0,1,2,x。上式可变为:上式可变为:所以,根据动态规划的最优化原理,有下式:所以,根据动态规划的最优化原理,有下式:36例例5.3 设国家拨给设国家拨给60万元投资,供四个工厂扩建使用,每个工厂扩建后的利万元投资,供四个工厂扩建使用,每个工厂扩建后的利润与投资额的大小有关,投资后的利润函数如下表所示。润与投资额的大小有关,投资后的利润函数如下表所示。 投资
34、投资利润利润0102030405060g1(x)0205065808585g2(x)0204050556065g3(x)0256085100110115g4(x)0254050606570解:解:依据题意,是要求依据题意,是要求 f4(60) 。37按顺序解法计算。按顺序解法计算。第一阶段:第一阶段:求求 f1(x)。显然有。显然有 f1(x) g1(x),得到下表,得到下表 投资投资利润利润0102030405060f1(x) g1(x)0205065808585最优策略最优策略0102030405060第二阶段:第二阶段:求求 f2(x)。此时需考虑第一、第二个工厂如何进行投资分配,以。此
35、时需考虑第一、第二个工厂如何进行投资分配,以取得最大的总利润。取得最大的总利润。38最优策略为(最优策略为(40,20),此时最大利润为),此时最大利润为120万元。万元。同理可求得其它同理可求得其它 f2(x) 的值。的值。39最优策略为(最优策略为(30,20),此时最大利润为),此时最大利润为105万元。万元。40最优策略为(最优策略为(20,20),此时最大利润为),此时最大利润为90万元。万元。最优策略为(最优策略为(20,10),此时最大利润为),此时最大利润为70万元。万元。最优策略为(最优策略为(10,0)或()或( 0 , 10 ) ,此时最大利润为,此时最大利润为20万元。
36、万元。f2(0) 0最优策略为(最优策略为(0,0),最大利润为),最大利润为0万元。万元。 得到下表得到下表最优策略为(最优策略为(20,0),此时最大利润为),此时最大利润为50万元。万元。41 投资投资利润利润0102030405060f2(x)020507090105120最优策略最优策略(0,0)(10,0)(0,10)(20,0) (20,10)(20,20)(30,20)(40,20)第三阶段:第三阶段:求求 f3(x)。此时需考虑第一、第二及第三个工厂如何进行投资。此时需考虑第一、第二及第三个工厂如何进行投资分配,以取得最大的总利润。分配,以取得最大的总利润。42最优策略为(最
37、优策略为(20,10,30),最大利润为),最大利润为155万元。万元。同理可求得其它同理可求得其它 f3(x) 的值。得到下表的值。得到下表43 投资投资利润利润0102030405060f3(x)0256085110135155最优最优策略策略(0,0,0)(0,0,10)(0,0,20)(0,0,30)(20,0,20)(20,0,30)(20,10,30)第四阶段:第四阶段:求求 f4(60)。即问题的最优策略。即问题的最优策略。44最优策略为(最优策略为(20,0,30,10),最大利润为),最大利润为160万元。万元。45练习:练习:求投资分配问题得最优策略,其中求投资分配问题得最
38、优策略,其中a50 万元,其余资料如表所示。万元,其余资料如表所示。 投资投资利润利润01020304050g1(x)02140528085g2(x)015365073100g3(x)0256065687046例:某公司打算在例:某公司打算在3个不同的地区设置个不同的地区设置4个销售点,根据市场部门估计,个销售点,根据市场部门估计,在不同地区设置不同数量的销售点每月可得到的利润如表所示。试问在在不同地区设置不同数量的销售点每月可得到的利润如表所示。试问在各地区如何设置销售点可使每月总利润最大。各地区如何设置销售点可使每月总利润最大。 地地区区销售点销售点01234123000161210251
39、714302116322217 x1=2,x2=1,x3=1,f3(4)=47 47* 资源连续分配问题资源连续分配问题这类问题需要考虑资源的回收利用,其中的决策变量为连续值。此类分这类问题需要考虑资源的回收利用,其中的决策变量为连续值。此类分配问题一般叙述如下:配问题一般叙述如下: 设有数量为设有数量为 s1 的某种资源,可投入生产的某种资源,可投入生产A和和B两种产品。第一年若以数量两种产品。第一年若以数量 u1 投入生产投入生产A,剩下,剩下 s1-u1 的就投入生产的就投入生产B,可得收入为,可得收入为这种资源投入这种资源投入A、B生产后,年终还可回收再投入生产。设年回收率分别生产后,
40、年终还可回收再投入生产。设年回收率分别为为0a1和和0b1 ,则在第一年生产后,回收的资源数量合计为,则在第一年生产后,回收的资源数量合计为第二年再将资源数量第二年再将资源数量s2中的中的u2和和s2-u2分别再投入生产分别再投入生产A和和B,则第二年又,则第二年又可得到的收入为可得到的收入为 如此继续进行如此继续进行n年,试问:应当如何决定每年投入年,试问:应当如何决定每年投入A生产的资源量生产的资源量u1,u2,un,才能使总的收入最大?,才能使总的收入最大? 48此问题写成静态规划问题为此问题写成静态规划问题为 用动态规划方法求解的思路如下:用动态规划方法求解的思路如下: 设设sk为状态
41、变量,表示在第为状态变量,表示在第k阶段(第阶段(第k年)可投入生产年)可投入生产A和和B两种产品两种产品的资源量。的资源量。uk为决策变量,表示在第为决策变量,表示在第k阶段(第阶段(第k年)用于生产年)用于生产A的资源的资源量,则量,则sk-uk为用于生产为用于生产B的资源量。状态转移方程为的资源量。状态转移方程为最优值函数最优值函数fk(sk)表示有资源表示有资源sk,从第,从第k阶段至第阶段至第n阶段采取最优分配方案进阶段采取最优分配方案进行生产后所得到的最大总收入。因此可以写出动态规划的逆推关系式为行生产后所得到的最大总收入。因此可以写出动态规划的逆推关系式为 最后求出的最后求出的
42、f1(s1) 即为所求问题的最大收入。即为所求问题的最大收入。49例例5.4 (机器负荷分配问题机器负荷分配问题)。某种机器可在高低两种不同的负荷下进行。某种机器可在高低两种不同的负荷下进行生产。设机器在高负荷下生产的产量函数为生产。设机器在高负荷下生产的产量函数为g=8u1,其中,其中u1为投入生产为投入生产的机器数量,年完好率的机器数量,年完好率a=0.7;在低负荷下生产的产量函数为;在低负荷下生产的产量函数为h=5y,其,其中中y为投入生产的机器数量,年完好率为为投入生产的机器数量,年完好率为b=0.9。假定开始生产时完好。假定开始生产时完好机器的数量机器的数量s1=1000。试问每年如
43、何安排机器在高、低负荷下的生产,。试问每年如何安排机器在高、低负荷下的生产,使在使在5年内生产的产品总产量最高。年内生产的产品总产量最高。解:解:设阶段序数设阶段序数 k 表示年度;状态变量表示年度;状态变量 sk 为第为第 k 年度初拥有的完好机年度初拥有的完好机器数量,同时也是第器数量,同时也是第 k-1 年度末时的完好机器数量。年度末时的完好机器数量。决策变量决策变量 uk 为第为第 k 年度中分配高负荷下生产的机器数量,则该年度中年度中分配高负荷下生产的机器数量,则该年度中分配在低负荷下生产的机器数量为分配在低负荷下生产的机器数量为 sk-uk,这里,这里 sk 和和 uk 均取连续变
44、量。均取连续变量。 50状态转移方程为状态转移方程为k 段允许决策集合为段允许决策集合为设设 vk(sk,uk) 为第为第 k 年度的产量,则年度的产量,则指标函数为指标函数为 令最优值函数令最优值函数 fk(sk) 表示由资源量表示由资源量 sk 出发,从第出发,从第 k 年开始到第年开始到第5年结年结束时所生产的产品的总产量最大值,则有逆推关系式束时所生产的产品的总产量最大值,则有逆推关系式采用逆推法,从第采用逆推法,从第5年度开始向前逆推计算。年度开始向前逆推计算。51最优策略为最优策略为即前两年应把年初全部完好机器投入低负荷生产,后三年应把年初全部即前两年应把年初全部完好机器投入低负荷
45、生产,后三年应把年初全部完好机器投入高负荷生产,这样所得的产量最高,总计为完好机器投入高负荷生产,这样所得的产量最高,总计为23691.2。在得到整个问题的最优指标函数值和最优策略后,还需反过来确定每年在得到整个问题的最优指标函数值和最优策略后,还需反过来确定每年年初的机器状态,即从始端向终端递推计算出每年年初完好机器数。已年初的机器状态,即从始端向终端递推计算出每年年初完好机器数。已知知 s1=1000台,则可得台,则可得52采用采用LINGO程序程序来进行求解。该问题的静态规划模型为来进行求解。该问题的静态规划模型为 sets: stages/1.6/:s; years/1.5/:u;en
46、dsetsdata: a=0.7; b=0.9;enddata max=sum(years(i):8*u(i)+5*(s(i)-u(i); s(1)=1000; for(stages(j)|j #ge# 2:s(j)=0.7*u(j-1)+0.9*(s(j-1)-u(j-1); for(years(i):u(i)=s(i);53上面所讨论的最优策略过程,始端状态上面所讨论的最优策略过程,始端状态 s1 是固定的,终端状态是固定的,终端状态 s6 是自是自由的。由此所得出的最优策略称为由的。由此所得出的最优策略称为始端固定终端自由的最优策略始端固定终端自由的最优策略,实,实现的是现的是5年里的产
47、品总产量最高。年里的产品总产量最高。如果在终端也附加一定的约束条件,如规定在第如果在终端也附加一定的约束条件,如规定在第5年度结束时,完好年度结束时,完好的机器数量为的机器数量为500台(上面只有台(上面只有277.83台),问如何安排生产才能在满台),问如何安排生产才能在满足这一终端要求的情况下产量最高?足这一终端要求的情况下产量最高?如果采用如果采用LINGO程序进行求解,则只要在以上的程序清单中增加一程序进行求解,则只要在以上的程序清单中增加一条约束,即增加语句条约束,即增加语句s(6)=500;运算结果如下:运算结果如下:54 Global optimal solution found
48、. Objective value: 21832.85 Total solver iterations: 2 Variable Value Reduced Cost S( 1) 1000.000 0.000000 S( 2) 900.0000 0.000000 S( 3) 810.0000 0.000000 S( 4) 729.0000 0.000000 S( 5) 656.1000 0.000000 S( 6) 500.0000 0.000000 U( 1) 0.000000 2.407300 U( 2) 0.000000 1.897000 U( 3) 0.000000 1.330000 U
49、( 4) 0.000000 0.7000000 U( 5) 452.4500 0.000000即在前即在前4年将完好年将完好机器全部在低负机器全部在低负荷状态下运行,荷状态下运行,第第5年年初将年年初将656.1台完好的机台完好的机器中的器中的452.45台台用于高负荷生产,用于高负荷生产,其他的机器在低其他的机器在低负荷状态下生产,负荷状态下生产,则在第则在第5年末完好年末完好的机器数为的机器数为500台,台,最优的总产量为最优的总产量为21832.85。55有一个徒步旅行者,其可携带物品重量的限度为有一个徒步旅行者,其可携带物品重量的限度为a 公斤,设有公斤,设有n 种物品可种物品可供他选
50、择装入包中。已知每种物品的重量及使用价值(作用),问此人应供他选择装入包中。已知每种物品的重量及使用价值(作用),问此人应如何选择携带的物品(各几件),使所起作用(使用价值)最大?如何选择携带的物品(各几件),使所起作用(使用价值)最大?物品物品 1 2 j n重量(公斤重量(公斤/件)件) a1 a2 aj an每件使用价值每件使用价值 c1 c2 cj cn这就是背包问题。类似的还有工厂里的下料问题、运输中的货物装载问题、这就是背包问题。类似的还有工厂里的下料问题、运输中的货物装载问题、人造卫星内的物品装载问题等。人造卫星内的物品装载问题等。5.5 背包问题背包问题56设设xj 为第为第j
51、 种物品的装件数(非负整数)则问题的数学模型如下:种物品的装件数(非负整数)则问题的数学模型如下:用动态规划方法求解,令用动态规划方法求解,令 fk (y) = 总重量不超过总重量不超过 y 公斤,包中只装有前公斤,包中只装有前k 种物品时的最大使用价值。种物品时的最大使用价值。 其中其中y 0, k 1,2, , n 。所以问题就是求所以问题就是求 fn(a) 57其递推关系式为:其递推关系式为:当当 k=1 时,有:时,有:58例例5.5:求下面背包问题的最优解求下面背包问题的最优解(a=5)物品物品 1 2 3重量重量(公斤)(公斤) 3 2 5使用价值使用价值 8 5 12解:解:a5
52、 ,问题是求,问题是求 f3(5)5960616263所以,最优解为所以,最优解为 X(1, 1, 0),),最优值为最优值为 Z = 13。64练习:练习:某厂生产三种产品,各种产品重量与利润的关系如表所示。现将某厂生产三种产品,各种产品重量与利润的关系如表所示。现将此三种产品运往市场出售,运输能力总重量不超过此三种产品运往市场出售,运输能力总重量不超过 6 吨,问如何安排运吨,问如何安排运输,使总利润最大?输,使总利润最大?种类种类 1 2 3重量(吨重量(吨/ /公斤)公斤) 2 3 4 单件利润(元)单件利润(元) 80 130 180最优方案:最优方案:X1 =(0,2,0)X2 =
53、(1,0,1)Z=260655.6.1 n 1 排序问题排序问题 即即n 种零件经过种零件经过1 种设备进行加工,已知每种零件的加工时间和交货种设备进行加工,已知每种零件的加工时间和交货日期,如何安排加工顺序才能使:(日期,如何安排加工顺序才能使:(1)平均通过设备的时间最小?)平均通过设备的时间最小?(2)所有零件均能按时交货?()所有零件均能按时交货?(3)既能满足交货时间,又使平均通)既能满足交货时间,又使平均通过时间最小?过时间最小? 例例5.6 有有5种零件需要在同一台机器上加工,每种零件的加工时间和需种零件需要在同一台机器上加工,每种零件的加工时间和需要交货的时间如下表所示。要交货
54、的时间如下表所示。 零件代号零件代号j1j2j3j4j5加工加工时间(t)37154交交货日期日期(d)23208614*5.6 排序问题排序问题661、平均通过设备的时间最小、平均通过设备的时间最小按零件加工时间非负次序排列顺序,其时间最小,即将加工时间由小到按零件加工时间非负次序排列顺序,其时间最小,即将加工时间由小到大排列即可。各零件的加工顺序如图大排列即可。各零件的加工顺序如图5-4所示。所示。67其中:其中:某零件实际通过设备的时间某零件实际通过设备的时间=前面加工的零件实际通过时间前面加工的零件实际通过时间 + 该零件的加工时间该零件的加工时间平均通过时间平均通过时间=各零件实际通
55、过时间之和各零件实际通过时间之和 / 零件数零件数延迟交货时间延迟交货时间=max各零件实际通过时间各零件实际通过时间 交货时间交货时间, 0因此,本例中因此,本例中平均通过时间平均通过时间=(1+4+8+13+20)/5=9.2延迟交货时间延迟交货时间=max1-8,4-23,8-14,13-6,20-20=7682、按时交货排列顺序、按时交货排列顺序如果要求按时交货,则零件的加工顺序可按交货时间从小到大的顺序对如果要求按时交货,则零件的加工顺序可按交货时间从小到大的顺序对零件进行加工。如例零件进行加工。如例5.6,满足按时交货要求的加工顺序如图,满足按时交货要求的加工顺序如图5-5所示。所
56、示。平均通过时间平均通过时间=(5+6+10+17+20)/5=11.6延迟时间延迟时间=max5-6,6-8,10-4,17-20,20-23,0=0693、既满足交货时间,又使平均通过时间最小、既满足交货时间,又使平均通过时间最小首先按照首先按照“平均通过设备的时间最小平均通过设备的时间最小”的排序方法进行排序,如果出现的排序方法进行排序,如果出现不满足按时交货的工序,则与其前一工序的顺序对调,直到所有零件均不满足按时交货的工序,则与其前一工序的顺序对调,直到所有零件均满足按时交货时间为止。例满足按时交货时间为止。例5.6的的“既满足交货时间又使平均通过时间最既满足交货时间又使平均通过时间
57、最小小”的排序如图的排序如图5-6所示。所示。延迟时间延迟时间=max1-8,6-6,9-23,13-14,20-20,0=0平均通过时间平均通过时间=(20+13+9+6+1)/5=9.8705.6.2 n 2 排序问题排序问题设有设有 n 个工件需要在机床个工件需要在机床A和和B上加工,每个工件都必须经过先上加工,每个工件都必须经过先A而后而后B的的两道加工工序(见图两道加工工序(见图5-7)。以)。以ai,bi分别表示工件分别表示工件i在在A、B上的加工时间。上的加工时间。问如何在两机床上安排各工件加工的顺序,使在机床问如何在两机床上安排各工件加工的顺序,使在机床A上加工第一个工件上加工
58、第一个工件开始到在机床开始到在机床B上将最后一个工件加工完为止,所用的加工总时间最少上将最后一个工件加工完为止,所用的加工总时间最少?71可以证明:最优加工顺序在两台机床上可同时产生。因此,最优排序方可以证明:最优加工顺序在两台机床上可同时产生。因此,最优排序方案只能在机床案只能在机床A、B上加工顺序相同的排序中去寻找。即便如此,所有可上加工顺序相同的排序中去寻找。即便如此,所有可能的方案仍有个能的方案仍有个 n! 个,用穷举法是不现实的。用动态规划方法解决同顺个,用穷举法是不现实的。用动态规划方法解决同顺序两台机床加工序两台机床加工 n 个工件的排序问题,可以得到最优排序的规则如下:个工件的
59、排序问题,可以得到最优排序的规则如下:(1)先作工件的加工时间的工时矩阵)先作工件的加工时间的工时矩阵(2)在工时矩阵)在工时矩阵 M 中找出最小元素(若最小元素不止一个,可任中找出最小元素(若最小元素不止一个,可任选其一);若它在上行,则将相应的工件排在最前位置加工;若它选其一);若它在上行,则将相应的工件排在最前位置加工;若它在下行,则将相应的工件排在最后位置;在下行,则将相应的工件排在最后位置;(3)将排定位置的工件所对应的列从)将排定位置的工件所对应的列从 M 中划掉,然后对余下的工件重中划掉,然后对余下的工件重复按(复按(2)进行。但那时的最前位置(或最后位置)是在已排定位置的)进行
60、。但那时的最前位置(或最后位置)是在已排定位置的工件之后(或之前)。如此进行下去,直至把所有工件都排完为止。工件之后(或之前)。如此进行下去,直至把所有工件都排完为止。72概括起来说,它的基本思路是:尽量减少在机床概括起来说,它的基本思路是:尽量减少在机床B上等待加工的时间。上等待加工的时间。因此,把在机床因此,把在机床B上加工时间长的工件先加工,在上加工时间长的工件先加工,在B上加工时间短的工上加工时间短的工件后加工。总的加工周期:件后加工。总的加工周期: 例例5.7 有有5个工件需在机床个工件需在机床A和和B上加工,加工的顺序是先上加工,加工的顺序是先A后后B,每个工,每个工件所需加工时间
61、(单位:小时)如表件所需加工时间(单位:小时)如表5-8所示。问如何安排加工顺序,使所示。问如何安排加工顺序,使机床连续加工完所有工件的加工总时间最少?并求出总加工时间。机床连续加工完所有工件的加工总时间最少?并求出总加工时间。73解:解:工件的加工工时矩阵为工件的加工工时矩阵为根据最优排序规则可得到最优加工顺序为:根据最优排序规则可得到最优加工顺序为:工件加工示意图如图工件加工示意图如图5-8所示。所示。总加工时间为总加工时间为 (小时小时)745.6.3 n 3 排序问题排序问题有有n 种零件需要经过种零件需要经过A、B、C三种设备进行加工,问如何安排加工顺序,三种设备进行加工,问如何安排
62、加工顺序,才能使得所有的零件在所有设备上均加工完所使用的总时间最小?才能使得所有的零件在所有设备上均加工完所使用的总时间最小?对于对于n3 排序问题,可以参照排序问题,可以参照n2 排序问题的思路,将排序问题的思路,将A、B和和 B、C分别分别组合起来,形成一个组合起来,形成一个n2排序问题,然后按照排序问题,然后按照n2排序问题的排序方法进行。排序问题的排序方法进行。下面以例子来说明下面以例子来说明n3排序问题的排序方法。排序问题的排序方法。例例5.8 有有5种零件需要经过种零件需要经过A、B、C三种设备加工,各设备的加工时间三种设备加工,各设备的加工时间(单位:小时)如表(单位:小时)如表5-9所示。问如何安排加工顺序,使设备连续加工所示。问如何安排加工顺序,使设备连续加工完所有零件的加工总时间最少?并求出总加工时间。完所有零件的加工总时间最少?并求出总加工时间。 75解:解:对以上的表作变换得表对以上的表作变换得表5-10,将问题转换为,将问题转换为n2排序问题。排序问题。76零件加工工时矩阵为零件加工工时矩阵为根据最优排序规则可得到最优加工顺序为:根据最优排序规则可得到最优加工顺序为:总加工时间的计算规则如下:总加工时间的计算规则如下: 当当 时,时,当当 时,时,所以,本例总加工时间所以,本例总加工时间 77