运筹学之动态规划(东南大学)汇总
- 格式:doc
- 大小:48.00 KB
- 文档页数:12
运筹学动态规划第7章动态规划动态规划是Bellman 在1957年提出的解多阶决策问题的方法,在那个时期,线性规划很流行,它是研究静态问题的,而Bellman 提出的解多阶决策问题的方法适用于动态问题,相对于线性规划研究静态问题,取名动态规划。
动态规划方法应用范围非常广泛,方法也比较简单。
动态规划是将一个多阶决策问题分解为一系列的互相嵌套的一步决策问题,序贯求解使问题得到简化。
动态规划问题按照问题的性质可以分为确定性的和随机性的,按决策变量的和状态变量的取值可以分为离散型的和连续型的。
此外还有依据时间变量连续取值还是离散取值又分为连续时间动态规划问题和离散时间动态规划问题。
本章重点讨论离散时间确定性动态规划问题,包括状态变量和决策变量连续取值和离散取值两种情况。
7.1解多阶决策问题的动态规划法1.多阶决策问题的例(1)最优路径问题—多阶决策问题的例为了直观,先从最优路径问题谈起,它可以看作一个多阶决策过程。
通过最优路径问题的解可以看到用动态规划法解多阶决策问题的基本思想。
考虑图7-1所示的最优路径问题。
一汽车由S 点出发到终点F ,P 和Q 是一些可以通过的点。
图中两点间标出的数字是汽车走这一段路所需的时间(单位为小时)。
最优路径问题是确定一个路径,使汽车沿这条路径由S 点出发达到F 点所用时间最短。
最优路径问题可以看作一个多阶决策问题,由S 到城市甲是第1个阶段,第1个结点P 1或第2个结点Q 1做为第1阶段可以通过的两个站点,由城市甲到城市乙是第2阶段,这个阶段是从P 1或Q 1到P 2或Q 2,由城市乙到城市丙是第3阶段,这个阶段是从P 2或Q 2到P 3或Q 3,由城市丙的P 3或Q 3到F 做为第四阶段。
(2)最优路径问题的解对最优路径问题,存在一个非常明显的原理,即最优路径的一部分还是最优路径。
换句话说,如果SQ P Q F 123是所求的最优路径,那么,汽车从这一路径上的任何一点,例如P 2,出发到F 的最优路径必为P Q F 23。
运筹学:应用分析、试验、量化的方法,对经济管理系统中人力、物力、财力等资源进行统筹安排,为决策者提供有依据的最优方案,以实现最有效的管理。
第一章、线性规划的图解法1.基本概念线性规划:是一种解决在线性约束条件下追求最大或最小的线性目标函数的方法。
线性规划的三要素:变量或决策变量、目标函数、约束条件。
目标函数:是变量的线性函数。
约束条件:变量的线性等式或不等式。
可行解:满足所有约束条件的解称为该线性规划的可行解。
可行域:可行解的集合称为可行域。
最优解:使得目标函数值最大的可行解称为该线性规划的最优解。
唯一最优解、无穷最优解、无界解(可行域无界)或无可行解(可行域为空域)。
凸集:要求集合中任意两点的连线段落在这个集合中。
等值线:目标函数z,对于z的某一取值所得的直线上的每一点都具有相同的目标函数值,故称之为等值线。
松弛变量:对于“≤”约束条件,可增加一些代表没使用的资源或能力的变量,称之为松弛变量。
剩余变量:对于“≥”约束条件,可增加一些代表最低限约束的超过量的变量,称之为剩余变量。
2.线性规划的标准形式约束条件为等式(=)约束条件的常数项非负(b j≥0)决策变量非负(x j≥0)3.灵敏度分析:是在建立数学模型和求得最优解之后,研究线性规划的一些系数的变化对最优解产生什么影响。
4.目标函数中的系数c i的灵敏度分析目标函数的斜率在形成最优解顶点的两条直线的斜率之间变化时,最优解不变。
5.约束条件中常数项b i的灵敏度分析对偶价格:约束条件常数项中增加一个单位而使最优目标函数值得到改进的数量。
当某约束条件中的松弛变量(或剩余变量)不为零时,这个约束条件的对偶价格为零。
第二章、线性规划问题在工商管理中的应用1.人力资源分配问题(P41)设x i为第i班次开始上班的人数。
2.生产计划问题(P44)3.套材下料问题(P48)下料方案表(P48)设x i为按各下料方式下料的原材料数量。
4.配料问题(P49)设x ij为第i种产品需要第j种原料的量。
引言——由一个问题引出的算法考虑以下问题[例1] 最短路径问题现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城市间的距离。
如图1所示,试找出从结点A到结点E的最短距离。
图 1我们可以用深度优先搜索法来解决此问题,该问题的递归式为其中是与v相邻的节点的集合,w(v,u)表示从v到u的边的长度。
具体算法如下:开始时标记所有的顶点未访问过,MinDistance(A)就是从A到E的最短距离。
这个程序的效率如何呢?我们可以看到,每次除了已经访问过的城市外,其他城市都要访问,所以时间复杂度为O(n!),这是一个“指数级”的算法,那么,还有没有更好的算法呢?首先,我们来观察一下这个算法。
在求从B1到E的最短距离的时候,先求出从C2到E的最短距离;而在求从B2到E的最短距离的时候,又求了一遍从C2到E 的最短距离。
也就是说,从C2到E的最短距离我们求了两遍。
同样可以发现,在求从C1、C2到E的最短距离的过程中,从D1到E的最短距离也被求了两遍。
而在整个程序中,从D1到E的最短距离被求了四遍。
如果在求解的过程中,同时将求得的最短距离"记录在案",随时调用,就可以避免这种情况。
于是,可以改进该算法,将每次求出的从v到E的最短距离记录下来,在算法中递归地求MinDistance(v)时先检查以前是否已经求过了MinDistance(v),如果求过了则不用重新求一遍,只要查找以前的记录就可以了。
这样,由于所有的点有n个,因此不同的状态数目有n个,该算法的数量级为O(n)。
更进一步,可以将这种递归改为递推,这样可以减少递归调用的开销。
请看图1,可以发现,A只和Bi 相邻,Bi只和Ci相邻,...,依此类推。
这样,我们可以将原问题的解决过程划分为4个阶段,设S 1={A},S2={B1,B2},S3={C1,C2,C3,C4},S4={D1,D2,D3},Fk(u)表示从Sk中的点u到E的最短距离,则并且有边界条件显然可以递推地求出F1(A),也就是从A到E的最短距离。
运筹学动态规划运筹学是一门综合运筹学、优化学、决策学和统计学等多学科知识的学科,它的核心内容是对决策问题进行建模和分析,并通过数学方法进行求解和优化。
动态规划是运筹学中的一种重要方法,它通过将问题划分为相互重叠的子问题,并通过解决子问题的最优解来求解原问题的最优解。
下面将详细介绍运筹学中的动态规划方法。
动态规划方法的核心思想是将原问题分解为若干个相互重叠的子问题,并通过求解子问题的最优解来求解原问题的最优解。
为了可以使用动态规划方法,必须满足以下两个条件:子问题的最优解可以作为原问题的最优解的一部分;子问题之间必须具有重叠性,即一个子问题可以被多次使用。
动态规划方法的具体步骤如下:首先,将原问题分解为若干个子问题,并定义出每个子问题的状态和状态转移方程;其次,通过迭代求解每个子问题的最优解,直到求解出原问题的最优解;最后,根据子问题的最优解和状态转移方程,得到原问题的最优解。
动态规划方法的应用非常广泛,可以用于求解各种各样的优化问题。
例如,在物流配送中,可以使用动态规划方法求解最短路径问题;在生产计划中,可以使用动态规划方法求解最优生产计划;在股票投资中,可以使用动态规划方法求解最优投资策略等。
动态规划方法的优点是可以通过求解子问题的最优解来求解原问题的最优解,避免了穷举法的复杂性。
此外,动态规划方法还可以通过引入一定的约束条件,来对问题进行更精确的建模和求解。
然而,动态规划方法也存在一些局限性。
首先,动态规划方法要求问题能够满足子问题的最优解可以作为原问题的最优解的一部分,这限制了动态规划方法的应用范围。
其次,动态规划方法通常需要建立较为复杂的状态转移方程,并进行复杂的计算,使得算法的实现和求解过程比较困难。
综上所述,动态规划是运筹学中的一种重要方法,通过将问题划分为相互重叠的子问题,并通过解决子问题的最优解来求解原问题的最优解。
动态规划方法的优点是可以高效地求解优化问题,但同时也存在一些局限性。
引言——由一个问题引出的算法考虑以下问题[例1] 最短路径问题现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城市间的距离。
如图1所示,试找出从结点A到结点E的最短距离。
图 1我们可以用深度优先搜索法来解决此问题,该问题的递归式为其中是与v相邻的节点的集合,w(v,u表示从v到u的边的长度。
具体算法如下:开始时标记所有的顶点未访问过,MinDistance(A就是从A到E的最短距离。
这个程序的效率如何呢?我们可以看到,每次除了已经访问过的城市外,其他城市都要访问,所以时间复杂度为O(n!,这是一个“指数级”的算法,那么,还有没有更好的算法呢?首先,我们来观察一下这个算法。
在求从B1到E的最短距离的时候,先求出从C2到E的最短距离;而在求从B2到E的最短距离的时候,又求了一遍从C2到E的最短距离。
也就是说,从C2到E的最短距离我们求了两遍。
同样可以发现,在求从C1、C2到E的最短距离的过程中,从D1到E的最短距离也被求了两遍。
而在整个程序中,从D1到E的最短距离被求了四遍。
如果在求解的过程中,同时将求得的最短距离"记录在案",随时调用,就可以避免这种情况。
于是,可以改进该算法,将每次求出的从v到E的最短距离记录下来,在算法中递归地求MinDistance(v时先检查以前是否已经求过了MinDistance(v,如果求过了则不用重新求一遍,只要查找以前的记录就可以了。
这样,由于所有的点有n个,因此不同的状态数目有n 个,该算法的数量级为O(n。
更进一步,可以将这种递归改为递推,这样可以减少递归调用的开销。
请看图1,可以发现,A只和Bi相邻,Bi只和Ci相邻,...,依此类推。
这样,我们可以将原问题的解决过程划分为4个阶段,设S1={A},S2={B1,B2},S3={C1,C2,C3,C4},S4={D1,D2,D3},Fk(u表示从Sk中的点u到E的最短距离,则并且有边界条件显然可以递推地求出F1(A,也就是从A到E的最短距离。
这种算法的复杂度为O(n,因为所有的状态总数(节点总数)为n,对每个状态都只要遍历一次,而且程序很简洁。
动态规划的基本概念动态规划的发展及研究内容动态规划(dynamic programming是运筹学的一个分支,是求解决策过程(decision process最优化的数学方法。
20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process的优化问题时,提出了著名的最优化原理(principle of optimality,把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
1957年出版了他的名著Dynamic Programming,这是该领域的第一本著作。
动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。
例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。
虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划,只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。
多阶段决策问题多阶段决策过程,是指这样的一类特殊的活动过程,问题可以按时间顺序分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列。
要使整个活动的总体效果达到最优的问题,称为多阶段决策问题。
例1是一个多阶段决策问题的例子,下面是另一个多阶段决策问题的例子:[例2]生产计划问题工厂生产某种产品,每单位(千件的成本为1(千元,每次开工的固定成本为3(千元,工厂每季度的最大生产能力为6(千件。
经调查,市场对该产品的需求量第一、二、三、四季度分别为2,3,2,4(千件。
如果工厂在第一、二季度将全年的需求都生产出来,自然可以降低成本(少付固定成本费,但是对于第三、四季度才能上市的产品需付存储费,每季每千件的存储费为0.5(千元。
还规定年初和年末这种产品均无库存。
试制订一个生产计划,即安排每个季度的产量,使一年的总费用(生产成本和存储费最少。
决策过程的分类根据过程的时间变量是离散的还是连续的,分为离散时间决策过程(discrete-time decision process,即多阶段决策过程和连续时间决策过程(continuous-time decision process;根据过程的演变是确定的还是随机的,分为确定性决策过程(deterministic decision process和随机性决策过程(stochastic decision process,其中应用最广的是确定性多阶段决策过程。
动态规划模型的基本要素一个多阶段决策过程最优化问题的动态规划模型通常包含以下要素:1.阶段阶段(step是对整个过程的自然划分。
通常根据时间顺序或空间特征来划分阶段,以便按阶段的次序解优化问题。
阶段变量一般用k=1,2,..,n表示。
在例1中由A出发为k=1,由Bi(i=1,2出发为k=2,依此下去从Di(i=1,2,3出发为k=4,共n=4个阶段。
在例2中按照第一、二、三、四季度分为k=1,2,3,4,共4个阶段。
2.状态状态(state表示每个阶段开始时过程所处的自然状况。
它应该能够描述过程的特征并且具有无后向性,即当某阶段的状态给定时,这个阶段以后过程的演变与该阶段以前各阶段的状态无关,即每个状态都是过去历史的一个完整总结。
通常还要求状态是直接或间接可以观测的。
描述状态的变量称状态变量(state variable。
变量允许取值的范围称允许状态集合(set of admissible states。
用xk表示第k阶段的状态变量,它可以是一个数或一个向量。
用Xk表示第k阶段的允许状态集合。
在例1中x2可取B1,B2,X2={B1,B2}。
n个阶段的决策过程有n+1个状态变量,xn+1表示xn演变的结果,在例1中x5取E。
根据过程演变的具体情况,状态变量可以是离散的或连续的。
为了计算的方便有时将连续变量离散化;为了分析的方便有时又将离散变量视为连续的。
状态变量简称为状态。
3.决策当一个阶段的状态确定后,可以作出各种选择从而演变到下一阶段的某个状态,这种选择手段称为决策(decision,在最优控制问题中也称为控制(control。
描述决策的变量称决策变量(decision variable。
变量允许取值的范围称允许决策集合(set of admissible decisions。
用uk(xk表示第k阶段处于状态xk时的决策变量,它是xk的函数,用Uk(xk表示了xk的允许决策集合。
在例1中u2(B1可取C1,C2,C3。
决策变量简称决策。
4.策略决策组成的序列称为策略(policy。
由初始状态x1开始的全过程的策略记作p1n(x1,即p1n(x1={u1(x1,u2(x2,...,un(xn}。
由第k阶段的状态xk开始到终止状态的后部子过程的策略记作pkn(xk,即pkn(xk={uk(xk,uk+1(xk+1,...,un(xn}。
类似地,由第k到第j阶段的子过程的策略记作pkj(xk={uk(xk,uk+1(xk+1,...,uj(xj}。
对于每一个阶段k的某一给定的状态xk,可供选择的策略pkj(xk有一定的范围,称为允许策略集合(set of admissible policies,用P1n(x1,Pkn(xk,Pkj(xk表示。
5.状态转移方程在确定性过程中,一旦某阶段的状态和决策为已知,下阶段的状态便完全确定。
用状态转移方程(equation of state表示这种演变规律,写作在例1中状态转移方程为:xk+1=uk(xk6.指标函数和最优值函数指标函数(objective function是衡量过程优劣的数量指标,它是关于策略的数量函数,从阶段k 到阶段n的指标函数用Vkn(xk,pkn(xk表示,k=1,2,...,n。
能够用动态规划解决的问题的指标函数应具有可分离性,即Vkn可表为xk,uk,Vk+1 n 的函数,记为:其中函数是一个关于变量Vk+1 n单调递增的函数。
这一性质保证了最优化原理(principle of optimality的成立,是动态规划的适用前提。
过程在第j 阶段的阶段指标取决于状态xj和决策uj,用vj(xj,uj表示。
阶段k到阶段n的指标由vj(j=k,k+1,..n组成,常见的形式有:阶段指标之和,即阶段指标之积,即阶段指标之极大(或极小,即这些形式下第k到第j阶段子过程的指标函数为Vkj(xk,uk,xk+1,...,xj+1。
可以发现,上述(3-(5三个指标函数的形式都满足最优性原理。
在例1中指标函数为(3的形式,其中vj(xj,uj是边 j ,u j (x j > 的权(边的长度) ,u j (x j 表示从 x j 出发根据决策 u j (x j 下一步所到达的节点。
根据状态转移方程,指标函数Vkn还可以表示为状态xk和策略pkn的函数,即Vkn(xk,pkn。
在xk给定时指标函数Vkn对pkn的最优值称为最优值函数(optimal value function,记作fk(xk,即其中opt可根据具体情况取max或min。
上式的意义是,对于某个阶段k的某个状态xk,从该阶段k到最终目标阶段n的最优指标函数值等于从xk出发取遍所有能策略pkn所得到的最优指标值中最优的一个。
7.最优策略和最优轨线使指标函数Vkn达到最优值的策略是从k开始的后部子过程的最优策略,记作pkn*={uk*,..un*},p1n*又是全过程的最优策略,简称最优策略(optimal policy。
从初始状态x1(=x1*出发,过程按照p1n*和状态转移方程演变所经历的状态序列{x1*,x2*,..,xn+1*}称最优轨线(optimal trajectory。
动态规划的基本思想前文主要介绍了动态规划的一些理论依据,我们将前文所说的具有明显的阶段划分和状态转移方程的动态规划称为标准动态规划,这种标准动态规划是在研究多阶段决策问题时推导出来的,具有严格的数学形式,适合用于理论上的分析。
在实际应用中,许多问题的阶段划分并不明显,这时如果刻意地划分阶段法反而麻烦。
一般来说,只要该问题可以划分成规模更小的子问题,并且原问题的最优解中包含了子问题的最优解(即满足最优子化原理),则可以考虑用动态规划解决。
动态规划的实质是分治思想和解决冗余,因此,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。