算法分析与设计动态规划ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《算法分析与设计动态规划ppt课件.ppt》由会员分享,可在线阅读,更多相关《算法分析与设计动态规划ppt课件.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法分析与设计动态规划ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第四章第四章 动态规划动态规划什么是动态规划什么是动态规划多段图多段图最优二分检索树最优二分检索树0/1背包问题背包问题可靠性设计可靠性设计货郎担问题货郎担问题2在实际生活中,有这么一类问题,它们的活在实际生活中,有这么一类问题,它们的活动过程可以分为若干个阶段,而且在任一阶动过程可以分为若干个阶段,而且在任一阶段后的行为都依赖于段后的行为都依赖于i 阶段的过程状态,而阶段的过程状态,
2、而与与i 阶段之前的过程是如何达到这种状态的阶段之前的过程是如何达到这种状态的方式无关,这样的过程就构成了一个方式无关,这样的过程就构成了一个多阶段多阶段决策过程决策过程。根据这类问题的多阶段决策的特性,提出了根据这类问题的多阶段决策的特性,提出了解决这类问题的解决这类问题的“最优性原理最优性原理”,从而创建,从而创建了最优化问题的一种新的算法设计方法了最优化问题的一种新的算法设计方法动态规划动态规划。4.1 一般方法一般方法3在多阶段决策过程的每一个阶段,都可在多阶段决策过程的每一个阶段,都可能有多种选择的决策,但必须从中选取能有多种选择的决策,但必须从中选取一种决策。一旦各种阶段的决策选定
3、之一种决策。一旦各种阶段的决策选定之后,就构成了解决这一问题的一个决策后,就构成了解决这一问题的一个决策序列。决策序列不同,导致的问题结果序列。决策序列不同,导致的问题结果也不同。也不同。动态规划的目标就是要在所有容许选择动态规划的目标就是要在所有容许选择的决策序列中选取一个会获得问题最优的决策序列中选取一个会获得问题最优解的决策序列,即解的决策序列,即最优决策序列最优决策序列。什么是动态规划4最优性原理最优性原理最优性原理最优性原理(Principle of Optimality)过程的最优决策序列过程的最优决策序列具有如下性质:无论过程的具有如下性质:无论过程的初始状态和初始决策是什么,其
4、余的决策都必须相对初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。于初始决策所产生的状态构成一个最优决策序列。利用动态规划求解问题的前提利用动态规划求解问题的前提 1)证明问题满足最优性原理证明问题满足最优性原理 如果对所求解问题证明满足最优性原理,则说明如果对所求解问题证明满足最优性原理,则说明用动态规划方法有可能解决该问题用动态规划方法有可能解决该问题 2)获得问题状态的递推关系式获得问题状态的递推关系式 获得各阶段间的递推关系式是解决问题的关键。获得各阶段间的递推关系式是解决问题的关键。5多段图问题多段图问题多段图问题多段图问题123458761
5、110912st97324227111118654356524V1V2V3V4V56多段图问题多段图问题多段图多段图G(V,E)是是个有向图。它具有如下特性:个有向图。它具有如下特性:图中的结点被划分成图中的结点被划分成k 2个不相交的集合个不相交的集合Vi ,1ik,ik,其中其中V1和和Vk分别只有一个结点分别只有一个结点s(源源点点)和和 t(汇点汇点)。图中所有的边图中所有的边均具有如下性质:若均具有如下性质:若uVi,则,则v Vi+1,1ik,ik,且每条边且每条边均附有均附有成本成本c(u,v)。从从s到到t的一条路径成本是这条路径上边的成本的一条路径成本是这条路径上边的成本和。
6、和。多段图问题多段图问题(multistage graph problem)是求由是求由s到到t的的最小成本路径最小成本路径。7多段图问题多段图问题最优性原理对多段图成立最优性原理对多段图成立假设假设s,v2,v3,vk-1,t是一条由是一条由s到到t的的最短路径最短路径再假设从源点再假设从源点s开始,已作出了到结点开始,已作出了到结点V2的决的决策,因此策,因此V2就是初始决策所产生的状态就是初始决策所产生的状态如果把如果把V2看成是原问题的一个子问题的初始状看成是原问题的一个子问题的初始状态,解决这个子问题就是找出一条由态,解决这个子问题就是找出一条由V2到到t的的最短路径最短路径这条最短
7、路径显然是这条最短路径显然是v2,v3,vk-1,t如果不是,设如果不是,设v2,q3,qk-1,t由由V2到到t的更短的更短路径,则这条路径肯定比路径,则这条路径肯定比v2,v3,vk-1,t路径路径短,这与假设矛盾,因此最优性原理成立短,这与假设矛盾,因此最优性原理成立80/1背包问题背包问题背包问题中的背包问题中的xj限定只能取限定只能取0或或1值,用值,用KNAP(1,j,X)来表示这个问题来表示这个问题效益值背包容量则则0/1背包问题就是背包问题就是KNAP(1,n,M)9最优化决策序列的表示最优化决策序列的表示设设S0是问题的初始状态。假定要作是问题的初始状态。假定要作n次决策次决
8、策xi,1inX1=r1,1,r1,2,r1,pj是是x1的可能决策值的集合,而的可能决策值的集合,而S1,1是在选取决策值是在选取决策值r1,j1以后所产生的状态,以后所产生的状态,1j1p1又设又设F1,j1是相应于状态是相应于状态S1,j1的最优决策序列的最优决策序列则相应于则相应于S0的最优决策序列就是的最优决策序列就是r1,j1 F1,j1|1j1p1中最优的序列,记作中最优的序列,记作如果已作了如果已作了k-1次决策,次决策,1k-1nk-1n。设。设x x1 1,x,xk-1k-1的最优的最优决策值是决策值是r r1 1,.,r,.,rk-1k-1,他们所产生的状态为,他们所产生
9、的状态为S S1 1,S,Sk-1k-110最优化决策序列的表示最优化决策序列的表示又设又设Xk=rk,1,rk,2,rk,pk是是xk的可能值的的可能值的集合。集合。Sk,jk是选取是选取rk,jk决策之后所产生的状决策之后所产生的状态态,1jkpkFk,jk 是相应于是相应于Sk,jk的最优决策序列。的最优决策序列。因此,相应于因此,相应于Sk-1的最优决策序列是的最优决策序列是于是相应于于是相应于S0的最优决策序列为:的最优决策序列为:r1,rk-1,rk,Fk11向前处理法向前处理法(forward approach)从最后阶段开始,以逐步向前递推的方式列出从最后阶段开始,以逐步向前递
10、推的方式列出求前一阶段决策值的递推关系式,即根据求前一阶段决策值的递推关系式,即根据xi+1,xn的那些最优决策序列来列出求取的那些最优决策序列来列出求取xi决决策值的关系式,这就是动态规划的策值的关系式,这就是动态规划的向前处理法向前处理法向后处理方法向后处理方法(backward approach)就是根据就是根据x1,xi-1的那些最优决策序列列出求的那些最优决策序列列出求xi的递推的递推关系式。关系式。多段图的向前处理和向后处理多段图的向前处理和向后处理0/1背包问题的向前处理和向后处理背包问题的向前处理和向后处理124.2 多段图多段图多段图向前处理的算法多段图向前处理的算法设设P(
11、i,j)是一条从是一条从Vi中的节点中的节点j 到汇点到汇点t 的最小的最小成本路径,成本路径,COST(i,j)表示这条路径的成本,表示这条路径的成本,根据向前处理方法有公式根据向前处理方法有公式4.5:13因为,若因为,若 EE成立成立,有有COST(k-1,j)=c(j,t),(k-1,j)=c(j,t),若若 EE不成立,则有不成立,则有COST(k-1,j)=(k-1,j)=,所以,所以可以通过如下步骤解式公式(可以通过如下步骤解式公式(4.54.5),并求出),并求出COST(1,s)。首先对于所有首先对于所有jVk-2,计算,计算COST(k-2,j),然后对,然后对所有的所有的
12、jVk-3,计算计算,计算计算COST(k-3,j)等等,最后等等,最后计算出计算计算出计算COST(1,s)多段图的多段图的向前处理算法向前处理算法14例子中例子中5段图的段图的实现计算步骤:实现计算步骤:COST(4,9)=4COST(4,10)=2COST(4,11)=5COST(3,6)=min6+COST(4,9),5+COST(4,10)=7COST(3,7)=min4+COST(4,9),3+COST(4,10)=5COST(3,8)=min5+COST(4,10),6+COST(4,11)=7多段图的多段图的向前处理算法向前处理算法15COST(2,2)=min4+COST(3
13、,6),2+COST(3,7),1+COST(3,8)=7COST(2,3)=9COST(2,4)=18COST(2,5)=15COST(1,1)=min9+COST(2,2),7+COST(2,3),3+COST(2,4),2+COST(2,5)=16多段图的多段图的向前处理算法向前处理算法16例子中例子中5段图的实现计算步骤:段图的实现计算步骤:在计算每一个在计算每一个COST(i,j)的同时,记下每个状态的同时,记下每个状态(结点结点j)所做出的决策,设为所做出的决策,设为D(i,j),则可容易地,则可容易地求出这条最小成本路径。求出这条最小成本路径。D(3,6)=10D(3,7)=10
14、D(3,8)=10D(2,2)=7D(2,3)=6D(2,4)=8D(2,5)=8D(1,1)=2 设这条最小成本路径是设这条最小成本路径是sl,v2,v3,vk-1,t=12。则可得知:则可得知:v2D(1,1)2,v3=D(2,D(1,1)=7 和和v4D(3,D(2,D(1,1)D(3,7)10多段图的多段图的向前处理算法向前处理算法17多段图的多段图的向前处理算法向前处理算法procedure FGRAP(E,k,n,P)real COST(n),integer D(n-1),P(k),r,j,k,nCOST(n)0for jn-1 to 1 by 1 do 设设r是一个这样的结点是一
15、个这样的结点,E且使且使c(j,r)+COST(r)取小值取小值COST(j)c(j,r)+COST(r)D(j)rrepeatP(1)1;P(k)nfor j2 to k-1 doP(j)D(P(j-1)repeatEnd FGRAPH计算出计算出COST(j)的值,的值,并找出一条最小成本并找出一条最小成本路径路径找出最小成本路径找出最小成本路径上的第上的第j个结点个结点18多段图的多段图的向后处理算法向后处理算法向后处理方法向后处理方法(backward approach)就是就是根据根据x1,xi-1的那些最优决策序列列出的那些最优决策序列列出求求xi的递推关系式。的递推关系式。123
16、458761110912st97324227111118654356524V1V2V3V4V519多段图的多段图的向后处理算法向后处理算法设设BP(i,j)是一条由源点是一条由源点s到到Vi中结点中结点j的最的最小成本路径,小成本路径,BCOST(i,j)表示表示BP(i,j)的成的成本本,由向后处理方法得到,由向后处理方法得到公式公式4.6:即由源点即由源点s到到Vi中结点中结点j的最小成本,等于由的最小成本,等于由源点源点s到到Vi-1中任一结点中任一结点l 的最小成本加上的最小成本加上Vi-1中结点中结点l 到到Vi中结点中结点j的边长的边长,所得的所有和所得的所有和中最小的那个值。中最
17、小的那个值。20因为,若因为,若 EE成立成立,BCOST(2,j)=c(1,j),BCOST(2,j)=c(1,j),若若 EE不成立,不成立,则有则有BCOST(2,j)=BCOST(2,j)=,所以可以通过如下步,所以可以通过如下步骤解式公式(骤解式公式(4.64.6),),首先对首先对i3计算计算BCOST,然后对,然后对 i4 计算计算BCOST等,最后等,最后计算出计算出BCOST(k,t)。BCOST(2,2)=9;BCOST(2,3)=7;BCOST(2,4)=3;BCOST(2,5)=2;多段图的多段图的向后处理算法向后处理算法21123458761110912st97324
18、227111118654356524BCOST(3,6)=minBCOST(2,2)+4,BCOST(2,3)+2=9BCOST(3,7)=minBCOST(2,2)+2,BCOST(2,3)+7,BCOST(2,5)+11=11BCOST(3,8)=minBCOST(2,2)+1,BCOST(2,4)+11,BCOST(2,5)+8=101632728V1V2V3V4V522123458761110912st973242271111186543565241632728BCOST(4,9)=minBCOST(3,6)+6,BCOST(3,7)+4=15BCOST(4,10)=minBCOST(
19、3,6)+5,BCOST(3,7)+3,BCOST(3,8)+5=14BCOST(4,11)=1691011V1V2V3V4V523123458761110912st97324227111118654356524163272891011BCOST(5,12)=minBCOST(4,9)+4,BCOST(4,10)+2,BCOST(4,11)+5=1612V1V2V3V4V524多段图的多段图的向后处理算法向后处理算法在计算每一个在计算每一个BCOST(i,j)的同时,记的同时,记下每个状态下每个状态(结点结点j)所做出的决策所做出的决策(即即,使使BCOST(i-1,j)+c(l,j)取最小值
20、的取最小值的 l 值值),设为设为D(i,j),则可容易地求出这条最,则可容易地求出这条最小成本路径。小成本路径。25对于实例中的最小成本路径如下所示:对于实例中的最小成本路径如下所示:D(3,6)=3;D(3,7)=2;D(3,8)=2;D(4,9)=6;D(4,10)=6;D(4,11)=8;D(5,12)=10123458761110912st9732422711111865435652416327289101112V1V2V3V4V526多段图的多段图的向后处理算法向后处理算法Line procedure BGRAP(E,k,n,P)real BCOST(n),integer D(n-
21、1),P(k),r,j,k,nBCOST(1)0for j2 to n do 设设r是一个这样的结点,是一个这样的结点,E且使且使BCOST(r)+c(r,j)取小值取小值BCOST(j)BCOST(r)+c(r,j)D(j)rrepeatP(1)1;P(k)nfor jk-1 to 2 by-1 doP(j)D(P(j+1)repeatEnd BGRAPH计算出计算出BCOST(j)的值,并找出一的值,并找出一条最小成本路径条最小成本路径找出最小成本路径找出最小成本路径上的第上的第j个结点个结点274.3 每对结点之间的最短路径复习(略)284.4 最优二分检索树问题的描述问题的描述1)二分
22、检索树定义)二分检索树定义 二分检索树是一棵二元树,它或者为空,或者其每个二分检索树是一棵二元树,它或者为空,或者其每个结点含有一个可以比较大小的数据元素,且有:结点含有一个可以比较大小的数据元素,且有:的左子树的所有元素比根结点中的元素小;的左子树的所有元素比根结点中的元素小;的右子树的所有元素比根结点中的元素大;的右子树的所有元素比根结点中的元素大;的左子树和右子树也是二分检索树。的左子树和右子树也是二分检索树。注:注:二分检索树要求树中所有结点的元素值互异二分检索树要求树中所有结点的元素值互异29二分检索树ifforwhilerepeatloopifforrepeatloopwhile
23、对于一个给定的对于一个给定的标识符标识符集合,可能有集合,可能有若干棵若干棵不同的二分检索树不同的二分检索树:不同形态的二分检索树对标识符的不同形态的二分检索树对标识符的检索性能检索性能是是不同不同的。的。30二分检索树检索一棵二分检索树算法检索一棵二分检索树算法procedure SEARCH(T,X,i)i=Twhile i0 do case :XIDENT(i):i=RCHILD(i)endcaserepeatend REARCH31最优二分检索树问题最优二分检索树问题 设给定的标识符集合是设给定的标识符集合是a1,a2,an,并假定,并假定a1a2 an。设,设,P(i)是对是对ai检
24、索的概率,检索的概率,Q(i)是正被检索的标识符是正被检索的标识符X恰好满足:恰好满足:ai Xai+1,0in(设(设a0=-,an+1=+)时的概率,即一时的概率,即一种不成功检索情况下的概率。种不成功检索情况下的概率。则则 表示所有成功检索的概率表示所有成功检索的概率 表示所有不成功检索的概率表示所有不成功检索的概率 考虑所有可能的成功和不成功检索情况,共考虑所有可能的成功和不成功检索情况,共2n+1种可种可能的情况,有能的情况,有32二分检索树二分检索树(如右图所示)内结点:代表成功检索情况,刚好有n个。外结点:代表不成功检索情况,刚好有n1个。33二分检索树的预期成本二分检索树的预期
25、成本 预期成本预期成本:算法对于所有可能的成功检索情况和不成功检:算法对于所有可能的成功检索情况和不成功检索情况,平均所要做的比较次数。根据期望值计算方法,索情况,平均所要做的比较次数。根据期望值计算方法,平均检索成本平均检索成本每种情况出现的每种情况出现的概率概率该情况下所需的该情况下所需的比较比较次数次数 平均检索成本的平均检索成本的构成构成:成功检索成分成功检索成分不成功检索成分不成功检索成分 成功检索成功检索:在:在l级内结点终止的成功检索,需要做级内结点终止的成功检索,需要做l次比较次比较运算(基于二分检索树结构)。该级上的任意结点运算(基于二分检索树结构)。该级上的任意结点ai的的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 分析 设计 动态 规划 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内