第三讲 动态规划.pptVIP

  • 99
  • 0
  • 约7.12千字
  • 约 46页
  • 2017-12-23 发布于上海
  • 举报
第三讲 动态规划

动 态 规 划 主讲:黄厚辉 电话邮箱:imhhh@yeah.net 什么是动态规划? 动态规划(dynamic programming)是运筹学的一个分支,是求解多阶段决策问题的最优化方法。 动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种特殊算法(如线性规划是一种算法)。因而,它不象线性规划那样有一个标准的数学表达式和明确定义的一组规则,而必须对具体问题进行具体分析处理(但是有据可依)。因此,在学习时,除了要对基本概念和方法正确理解外,应以丰富的想象力去建立模型,用创造性的技巧去求解。 什么时候用动态规划? 动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。 例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。 虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。 简单引例1—最短路线问题 以下是一个赋权图(网络),两顶点连线上的数字表示距离,确定一条从始点1到终点7铺设管道并使总距离最小的路线(最短路径)。 方法一:枚举法 方法二:动态规划(逆序算法) 规定:f1表示从起点1到终点7的最短路径长度,类似fi表示从起点i到终点7的最短路径长度,rij表示从点i到点j的路径长度(无跨阶段)。 由此可知:f1取决与f2和f3,f2取决与f4和f5,f3取决与f4 ,f5和f6, f4 ,f5和f6取决与f7,f7是终点,可令:f7 =0。 所以可得: 动态规划理论基本概念及其数学表达 阶段 状态 决策 策略 状态转移方程 (阶段)指标函数和最优值函数 最优策略和最优轨线 递归方程 小结 综上,如果一个问题能用动态规划方法求解,那么,我们可以按下列步骤,首先建立起动态规划的数学模型: 将过程划分成恰当的阶段。 正确选择状态变量xk,使它既能描述过程的状态,又满足无后效性,同时确定允许状态集合Xk。 选择决策变量uk,确定允许决策集合Uk(xk)。 写出状态转移方程。 确定阶段指标vk(xk,uk)及指标函数的形式Vkn(阶段指标之和,阶段指标之积,阶段指标之极大或极小等)。 写出基本方程即最优值函数满足的递归方程,以及端点条件。 动态规划的求解 [p_opt,fval]=DynProg(x,DecisFun,SubObjFun,TransFun, ObjFun) % 自由始端和终端的动态规划,求指标函数最小值的逆序算法递归 % 计算程序。 % x是状态变量,一列代表一个阶段状态; % 函数DecisFun(k,x)由阶段k的状态变量x求出相应的允许决策变量; % 函数SubObjFun(k,x,u)是阶段指标函数. % 函数TransFun(k,x,u)是状态转移函数,其中x是阶段k的某状态变量,u 是相应的决策变量; % 函数ObjFun(v,f)是第k阶段直至最后阶段指标函数,当ObjFun(v,f)=v+f时,可以省略. % 输出p_opt由4列构成,p_opt=[序号组;最优策略组;最优轨线组; 指标函数值组]; % fval是一个列向量,各元素分别表示p_opt各 % 最优策略组对应始端状态x的最优函数值; 求解例一(最短路问题) 给出状态变量,以及给状态变量赋值 x=nan*ones(3,4); x(1,1)=1;x(1:2,2)=[2;3]; x(1:3,3)=[4:6];x(1,4)=7; 编写决策函数,给出阶段k,状态vi时的决策集 function u=DecisFun (k,x) if x==1 u=[2;3]; elseif x==2 u=[4;5]; elseif x==3 u=[4;5;6]; elseif (x==4)||(x==5)||(x==6) u=7; elseif x==7 u=7; end 编写阶段指标函数 function v=SubObjFun(k,x,u) tt=[5;4;6;3;8;7;6;3;5;4]; tmp=[x==1u==2,x==1u==3,x==2u==4,x==2u==5,... x==3u==4,x==3u==5,x==3u==6,... x==4u==7,x==5u==7,x==6u==7]; v=tmp*tt; 编写状态转移函数 function y=TransFun(k,x,u) y=u; 编写收

文档评论(0)

1亿VIP精品文档

相关文档