<H2>动态规划的基本概念</H2>
<H3>动态规划的发展及研究内容</H3>
<><DFN>动态规划(dynamic programming)</DFN>是运筹学的一个分支,是求解<DFN>决策过程(decision process)</DFN>最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究<DFN>多阶段决策过程(multistep decision process)</DFN>的优化问题时,提出了著名的<DFN>最优化原理(principle of optimality)</DFN>,把多阶段过程转化为一系列单阶段问题,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著<CITE>Dynamic Programming</CITE>,这是该领域的第一本著作。</P>
<>动态规划问世以来,在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。</P>
<>虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。</P>
<H3>多阶段决策问题</H3>
<P><DFN>多阶段决策过程</DFN>,是指这样的一类特殊的活动过程,问题可以按时间顺序分解成若干相互联系的阶段,在每一个阶段都要做出决策,全部过程的决策是一个决策序列。要使整个活动的总体效果达到最优的问题,称为<DFN>多阶段决策问题</DFN>。</P>
<P><a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>是一个多阶段决策问题的例子,下面是另一个多阶段决策问题的例子:</P>
<P><B>[例2]</B> 生产计划问题</P>
<P>工厂生产某种产品,每单位(千件)的成本为1(千元),每次开工的固定成本为3(千元),工厂每季度的最大生产能力为6(千件)。经调查,市场对该产品的需求量第一、二、三、四季度分别为 2,3,2,4(千件)。如果工厂在第一、二季度将全年的需求都生产出来,自然可以降低成本(少付固定成本费),但是对于第三、四季度才能上市的产品需付存储费,每季每千件的存储费为0.5(千元)。还规定年初和年末这种产品均无库存。试制订一个生产计划,即安排每个季度的产量,使一年的总费用(生产成本和存储费)最少。
</P>
<H3>决策过程的分类</H3>
<P>根据过程的时间变量是离散的还是连续的,分为<DFN>离散时间决策过程(discrete-time decision process)</DFN>,即多阶段决策过程和<DFN>连续时间决策过程(continuous-time decision process)</DFN>;根据过程的演变是确定的还是随机的,分为<DFN>确定性决策过程(deterministic decision process)</DFN>和<DFN>随机性决策过程(stochastic decision process)</DFN>,其中应用最广的是确定性多阶段决策过程。</P>
<H3>动态规划模型的基本要素</H3>
<P>一个多阶段决策过程最优化问题的动态规划模型通常包含以下要素:</P>
<P><DFN>1.阶段</DFN></P>
<P><DFN>阶段(step)</DFN>是对整个过程的自然划分。通常根据时间顺序或空间特征来划分阶段,以便按阶段的次序解优化问题。阶段变量一般用k=1,2,..,n表示。在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中由A出发为k=1,由B<SUB>i</SUB>(i=1,2)出发为k=2,依此下去从D<SUB>i</SUB>(i=1,2,3)出发为k=4,共n=4个阶段。在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/chapter1.htm#example2" target="_blank" >例2</A>中按照第一、二、三、四季度分为k=1,2,3,4,共4个阶段。</P>
<P><DFN>2.状态</DFN></P>
<P><DFN>状态(state)</DFN>表示每个阶段开始时过程所处的自然状况。它应该能够描述过程的特征并且具有<B>无后向性</B>,即当某阶段的状态给定时,这个阶段以后过程的演变与该阶段以前各阶段的状态无关,即每个状态都是过去历史的一个完整总结。通常还要求状态是直接或间接可以观测的。</P>
<P>描述状态的变量称<DFN>状态变量(state variable)</DFN>。变量允许取值的范围称<DFN>允许状态集合(set of admissible states)</DFN>。用x<SUB>k</SUB>表示第k阶段的状态变量,它可以是一个数或一个向量。用X<SUB>k</SUB>表示第k阶段的允许状态集合。在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中x<SUB>2</SUB>可取B<SUB>1</SUB>,B<SUB>2</SUB>,X<SUB>2</SUB>={B<SUB>1</SUB>,B<SUB>2</SUB>}。</P>
<P>n个阶段的决策过程有n+1个状态变量,x<SUB>n+1</SUB>表示x<SUB>n</SUB>演变的结果,在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中x<SUB>5</SUB>取E。</P>
<P>根据过程演变的具体情况,状态变量可以是离散的或连续的。为了计算的方便有时将连续变量离散化;为了分析的方便有时又将离散变量视为连续的。</P>
<P>状态变量简称为<DFN>状态</DFN>。</P>
<P><DFN>3.决策</DFN></P>
<P>当一个阶段的状态确定后,可以作出各种选择从而演变到下一阶段的某个状态,这种选择手段称为<DFN>决策(decision)</DFN>,在最优控制问题中也称为<DFN>控制(control)</DFN>。</P>
<P>描述决策的变量称<DFN>决策变量(decision variable)</DFN>。变量允许取值的范围称<DFN>允许决策集合(set of admissible decisions)</DFN>。用u<SUB>k</SUB>(x<SUB>k</SUB>)表示第k阶段处于状态x<SUB>k</SUB>时的决策变量,它是x<SUB>k</SUB>的函数,用U<SUB>k</SUB>(x<SUB>k</SUB>)表示了x<SUB>k</SUB>的允许决策集合。在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中u<SUB>2</SUB>(B<SUB>1</SUB>)可取C<SUB>1</SUB>,C<SUB>2</SUB>,C<SUB>3</SUB>。</P>
<P>决策变量简称<DFN>决策</DFN>。</P>
<P><DFN>4.策略</DFN></P>
<P>决策组成的序列称为<DFN>策略(policy)</DFN>。由初始状态x<SUB>1</SUB>开始的全过程的策略记作p<SUB>1n</SUB>(x<SUB>1</SUB>),即p<SUB>1n</SUB>(x<SUB>1</SUB>)={u<SUB>1</SUB>(x<SUB>1</SUB>),u<SUB>2</SUB>(x<SUB>2</SUB>),...,u<SUB>n</SUB>(x<SUB>n</SUB>)}。由第k阶段的状态x<SUB>k</SUB>开始到终止状态的后部子过程的策略记作p<SUB>kn</SUB>(x<SUB>k</SUB>),即p<SUB>kn</SUB>(x<SUB>k</SUB>)={u<SUB>k</SUB>(x<SUB>k</SUB>),u<SUB>k+1</SUB>(x<SUB>k+1</SUB>),...,u<SUB>n</SUB>(x<SUB>n</SUB>)}。类似地,由第k到第j阶段的子过程的策略记作p<SUB>kj</SUB>(x<SUB>k</SUB>)={u<SUB>k</SUB>(x<SUB>k</SUB>),u<SUB>k+1</SUB>(x<SUB>k+1</SUB>),...,u<SUB>j</SUB>(x<SUB>j</SUB>)}。对于每一个阶段k的某一给定的状态x<SUB>k</SUB>,可供选择的策略p<SUB>kj</SUB>(x<SUB>k</SUB>)有一定的范围,称为<DFN>允许策略集合(set of admissible policies)</DFN>,用P<SUB>1n</SUB>(x<SUB>1</SUB>),P<SUB>kn</SUB>(x<SUB>k</SUB>),P<SUB>kj</SUB>(x<SUB>k</SUB>)表示。</P>
<P><DFN>5.状态转移方程</DFN></P>
<P>在确定性过程中,一旦某阶段的状态和决策为已知,下阶段的状态便完全确定。用<DFN>状态转移方程(equation of state)</DFN>表示这种演变规律,写作</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn1.gif"></P></BLOCKQUOTE>
<P>在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中状态转移方程为:x<SUB>k+1</SUB>=u<SUB>k</SUB>(x<SUB>k</SUB>)</P>
<P><DFN>6.指标函数和最优值函数</DFN></P>
<P><DFN>指标函数(objective function)</DFN>是衡量过程优劣的数量指标,它是关于策略的数量函数,从阶段k到阶段n的指标函数用V<SUB>kn</SUB>(x<SUB>k</SUB>,p<SUB>kn</SUB>(x<SUB>k</SUB>))表示,k=1,2,...,n。</P>
<P>能够用动态规划解决的问题的指标函数应具有<DFN>可分离性</DFN>,即V<SUB>kn</SUB>可表为x<SUB>k</SUB>,u<SUB>k</SUB>,V<SUB>k+1 n</SUB> 的函数,记为:</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn2.gif"></P></BLOCKQUOTE>
<P>其中函数<IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/fi.gif">是一个关于变量V<SUB>k+1 n</SUB><B>单调递增</B>的函数。这一性质保证了<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/chapter3.htm#optimality" target="_blank" ><DFN>最优化原理(principle of optimality)</DFN></A>的成立,是动态规划的适用前提。</P>
<P>过程在第j 阶段的阶段指标取决于状态x<SUB>j</SUB>和决策u<SUB>j</SUB>,用v<SUB>j</SUB>(x<SUB>j</SUB>,u<SUB>j</SUB>)表示。阶段k到阶段n的指标由v<SUB>j</SUB>(j=k,k+1,..n)组成,常见的形式有:</P>
<P>阶段指标之和,即</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn3.gif"></P></BLOCKQUOTE>
<P>阶段指标之积,即</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn4.gif"></P></BLOCKQUOTE>
<P>阶段指标之极大(或极小),即</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn5.gif"></P></BLOCKQUOTE>
<P>这些形式下第k到第j阶段子过程的指标函数为V<SUB>kj</SUB>(x<SUB>k</SUB>,u<SUB>k</SUB>,x<SUB>k+1</SUB>,...,x<SUB>j+1</SUB>)。可以发现,上述(3)-(5)三个指标函数的形式都满足最优性原理。在<a href="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/introduction.htm#example1" target="_blank" >例1</A>中指标函数为(3)的形式,其中v<SUB>j</SUB>(x<SUB>j</SUB>,u<SUB>j</SUB>)是边<x<SUB>j</SUB>,u<SUB>j</SUB>(x<SUB>j</SUB>)>的权(边的长度),u<SUB>j</SUB>(x<SUB>j</SUB>)表示从x<SUB>j</SUB>出发根据决策u<SUB>j</SUB>(x<SUB>j</SUB>)下一步所到达的节点。</P>
<P>根据状态转移方程,指标函数V<SUB>kn</SUB>还可以表示为状态x<SUB>k</SUB>和策略p<SUB>kn</SUB>的函数,即V<SUB>kn</SUB>(x<SUB>k</SUB>,p<SUB>kn</SUB>)。在x<SUB>k</SUB>给定时指标函数V<SUB>kn</SUB>对p<SUB>kn</SUB>的最优值称为<DFN>最优值函数(optimal value function)</DFN>,记作f<SUB>k</SUB>(x<SUB>k</SUB>),即</P>
<BLOCKQUOTE>
<P><IMG src="http://algorithm.myrice.com/algorithm/technique/dynamic_programming/images/eqn6.gif"></P></BLOCKQUOTE>
<P>其中opt可根据具体情况取max或min。上式的意义是,对于某个阶段k的某个状态x<SUB>k</SUB>,从该阶段k到最终目标阶段n的最优指标函数值等于从x<SUB>k</SUB>出发取遍所有能策略p<SUB>kn</SUB>所得到的最优指标值中最优的一个。</P>
<P><DFN>7.最优策略和最优轨线</DFN></P>
<P>使指标函数V<SUB>kn</SUB>达到最优值的策略是从k开始的后部子过程的最优策略,记作p<SUB>kn</SUB><SUP>*</SUP>={u<SUB>k</SUB><SUP>*</SUP>,..u<SUB>n</SUB><SUP>*</SUP>},p<SUB>1n</SUB><SUP>*</SUP>又是全过程的最优策略,简称<DFN>最优策略(optimal policy)</DFN>。从初始状态x<SUB>1</SUB>(=x<SUB>1</SUB><SUP>*</SUP>)出发,过程按照p<SUB>1n</SUB><SUP>*</SUP>和状态转移方程演变所经历的状态序列{x<SUB>1</SUB><SUP>*</SUP>,x<SUB>2</SUB><SUP>*</SUP>,..,x<SUB>n+1</SUB><SUP>*</SUP>}称<DFN>最优轨线(optimal trajectory)</DFN>。</P> |