Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1501056
  • 博文数量: 218
  • 博客积分: 6394
  • 博客等级: 准将
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-08 15:33
个人简介

持之以恒

文章分类

全部博文(218)

文章存档

2013年(8)

2012年(2)

2011年(21)

2010年(55)

2009年(116)

2008年(16)

分类:

2009-08-29 12:51:24

动态规划(Dynamic Programming)

1.动态规划的基本概念

动态规划是解决多阶段决策过程最优化的一种方法。

对于离散问题,解析数学无法施展,动态规划则成为非常有效的工具。

两个弱点:

1.       得出目标函数方程后,尚无统一的处理方法,必须根据具体问题的性质结合相应的数学技巧来求解;

2.       维数障碍。

动态规划模型的分类:

根据决策过程的时间参量是离散的还是连续的变量

1.       离散(多段)决策过程

2.       连续决策过程

根据决策过程的演变是确定性的还是随机性的

1.       确定性决策过程

2.       随机性决策过程

2.多阶段决策问题

1.       由于它的特殊性,可将过程划分为若干互相联系的阶段

2.       在它的每一个阶段都需要作出决策,并且一个阶段的决策确定以后,常影响下一个阶段的决策,从而影响整个过程的活动路线;

3.       各个阶段所确定的决策就构成一个决策序列,通常称为一个策略

4.       每一个阶段可供选择的决策往往不止一个,对应于一个策略就有确定的活动效果

5.       多阶段决策问题,就是要在允许选择的那些策略中间,选择一个最优策略,使在预定的标准下达到最好的效果

3.动态规划的基本概念

阶段(Stage)

把所给问题的过程,恰当地划分成若干个相互联系的阶段,以便于求解。通常用k表示阶段变量。

状态(State

状态表示某段的出发位置。它既是该段某支路的始点,同时也是前一段某支路的终点。通常一个阶段包含若干个状态。

       描述过程状态的变量,称为状态变量。常用xk表示在第k段的某一状态。第k段状态集合可表示为

       Xk = { xk(1), xk(2), …, xk(i) , …, xk(r)}

故第三阶段的状态集合就可记为

    X3 = { x3(1), x3(2), x3(3) , x3(4)}={1, 2, 3, 4}

      X3 = {C1, C2, C3, C4}

决策(Decision

决策就是某阶段状态给定以后,从该状态演变到下一阶段某状态的选择。

       描述决策的变量,称为决策变量。

       常用uk(xk)表示第k段当状态处于xk 时的决策变量。决策变量的取值往往限制在某一范围之内,此范围称为允许决策集合。通常以Dk(xk)表示第k段的允许决策集合。

uk(xk) Dk(xk)

策略(Policy

由过程的第1阶段开始到终点为止的过程,称为问题的全过程。

由每段的决策ui(xi)(i=1,2……,n)组成的决策函数序列就称为全过程策略,简称策略,记为p1,n

  p1,n(xk)={ u1(x1), u2(x2), ……, un(xn)}

由第k段开始到终点过程称为原过程的后部子过程(或称为k子过程)。

    其决策函数序列{ uk(xk)……, un(xn)}称为k字过程策略,简称子策略。即

    pk,n(xk)={uk(xk), uk+1(xk+2), ……, un(xn)}

在实际问题中,可供选择的策略有一定的范围,此范围称为允许策略集合,用P表示。从允许策略中找出达到最优效果的策略称为最优策略

指标函数和最优指标函数

在多阶段决策过程最优化问题中,指标函数是用来衡量所实现过程的优劣的一种数量指标,它是一个定义在全过程和所有后部子过程上的确定数量函数,常用Vk,n表示。

   指标函数Vk,n的最优值,称为相应的最优指标函数。记为fk(xk).

   在例1中,fk(xk)表示从第kxk点到终点G的最短距离。如f4(D1)就表示从第4段中的D1点到G 点的最短距离。

4.动态规划最优化原理

作为整个过程的最优策略具有这样的性质:即无论过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。

可逆过程

可以把段次颠倒过来球最优解的多阶段决策过程称为可逆过程。

顺序解法和逆序解法只表示行进方向的不同或始端的颠倒。但用动态规划方法求最优解时,都是在行进方向规定后,均要逆着这个规定的行进方向,从最后一段向前逆推计算,逐段找出最优途径

5.构成动态规划模型的条件

建立动态规划模型时,除了要将实际问题恰当地划分若干个阶段(一般是根据时间和空间而划分的)外,主要明确以下四个方面:

1.     正确选择状态变量xk, 使它既能描述过程的状态,又要满足无后效性。

动态规划中的状态与一般所说的状态概念是不同的,它必须具有三个特性:

1)      要能够用来描述受控过程的演变特征。

2)      要满足无后效性。 所谓无后效性是指:如果某段状态给定,则在这段以后过程的发展不受前面各阶段状态的影响。

3)      可知性。即是规定的各段状态变量的值,由直接或间接都是可以知道的。

2 确定决策变量uk及每段的允许决策集合Dk(xk)={uk}

3 写出状态转移方程

1)      如果给定第k段状态变量xk的值,则该段的决策变量uk一经确定,第k+1段状态变量xk+1的值也就完全确定。

2)      xk+1的值随xkuk的值的变化而变化的这种对应关系,用

1.       xk+1 = Tk(xk, uk) 表示。

3)      它表示由k段到k+1段的整体转移规律,称为状态转移方程。

4   根据题意,列出指标函数Vk,n 关系,并要满足递推性。

       正确列出指标函数关系,必须使它具有三个性质:

1)      它是定义在全过程和所有后部子过程上的数量函数;

  2)      要满足递推关系。
 

6. 动态规划的基本方程


下面还有一个将动态规划很好的文档,上面有相应的关于动态规划方面的例题,以及详细的解题过程!
文件:动态规划.pdf
大小:156KB
下载:下载



阅读(3390) | 评论(1) | 转发(0) |
0

上一篇:MFC和RTTI以及动态创建技术

下一篇:DLL学习

给主人留下些什么吧!~~

chinaunix网友2009-09-15 13:38:03

其实,我觉得大多数动态规划问题的求解都是用递归原理来搞定的。按《算法导论》归结的步骤: 1、定义最优解的结构; 2、递归定义最优解的值; 3、自底向上计算最优解; 4、根据计算信息构造最优解。 大部分动态规划可以这么解决。当然,军哥讲的那个流水线的是不能这么做的,我觉得那个更类似于归纳法。