算法分析作业第6章_第1页
算法分析作业第6章_第2页
算法分析作业第6章_第3页
算法分析作业第6章_第4页
算法分析作业第6章_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法分析作业 第6章动态规划1. 最优化问题2. 多阶段过程 明显的 隐含的3. 最优性原理 必要条件 与问题表示相关(状态)4. 建立递推关系式 最优子结构(等价于最优性原理) 边界条件作业 3 、4、6、 8 、176.3 对于标识符集(a1,a2,a3,a4)=(end, goto, print, stop),已知成功检索概率为P(1)=1/20, P(2)=1/5, P(3)=1/10, P(4)=1/20,不成功检索概率为Q(0)=1/5, Q(1)=1/10, Q(2)=1/5, Q(3)=1/20, Q(4)=1/20,用算法OBST对其计算W(i ,j),R(i, j)和C(i

2、, j)(0i, j4)。 P112 算法6.5 P(i) P(1)=1/20, P(2)=1/5, P(3)=1/10, P(4)=1/20 Q(i)Q(0)=1/5, Q(1)=1/10, Q(2)=1/5, Q(3)=1/20, Q(4)=1/20 P(i)P(1)=1, P(2)=4, P(3)=2, P(4)=1 Q(i)Q(0)=4, Q(1)=2, Q(2)=4, Q(3)=1, Q(4)=1WRC44+2+1=7010722+4+4=100201044+1+2=7030711+1+1=3040310001234P1421Q42411W(i,j)=W(i,j-1) +P(j) +

3、Q(j)C(i,j)=minC(i,k-1)+C(k,j)+W(i,j)R(i,j)=最小的kWRC44+2+1=77+4+44+4=1010+2+1=13022010 2044+1+2=77+1+1=9033071211+1+1=3040310001234P1421Q42411W(i,j)=W(i,j-1) +P(j) +Q(j)C(i,j)=minC(i,k-1)+C(k,j)+W(i,j)R(i,j)=最小的kWRC44+2+1=77+4+4=1515+2+1=1818+1+1=20012220722 32 3922+4+4=1010+2+1=1313+1+1=

4、150222010 20 2744+1+2=77+1+1=9033071211+1+1=3040310001234P1421Q42411W(i,j)=W(i,j-1) +P(j) +Q(j)C(i,j)=minC(i,k-1)+C(k,j)+W(i,j)R(i,j)=最小的k6.4 证明算法OBST的计算时间是O(n2)。 在已知根R(i, j),0i j4的情况下写一个构造最优二分检索树T的算法。证明这样的树能在O(n)时间内构造出来。 Procedure BuildTree(m, n, R, Root)integer R(n,n), kTreeNode Root, LR, RRkR(m,n

5、)if k=0 thendata(Root)m, left(Root)null, right(Root)null,elsedata(Root)k, BuileTree(m, k-1, R, LR),BuileTree(k, n, R, RR) left(Root)LR, right(Root)RRendif end BuildTree时间复杂性分析 T(n)=c+T(k)+T(n-k-1),此递推式保证算法的时间复杂性为O(n); 也可从递归的角度出发,递归的次数正是结点的个数,而每次递归时间复杂性为常数,所以算法的时间复杂度也为O(n)。Procedure CreateTree(m, n,

6、root, w) integer r, k, root(n, n), w(n, n) real ww, min if m=n then root(m, n)0 else if m=n-1 then root(m,n)n else for km+1 to n do ww|w(m, k-1)-w(k, n)| if ww min then minww, rk endif repeat root(m, n)r Call CreateTree(m, r-1) Call CreateTree(r, n) endifEnd CreateTree时间复杂性最好和平均的情况应该是O(nlogn),但最坏的情况

7、是O(n2)6.6 设(w1,w2,w3,w4)=(10,15,6,9), (p1,p2,p3,p4)=(2,5,8,1)。生成每个fi阶跃点的序偶集合Si,0i4。 (w1,w2,w3,w4)=(10,15,6,9), (p1,p2,p3,p4)=(2,5,8,1)6.8 给出一个使得DKNAP(算法4.7)出现最坏情况的例子,它使得| Si |=2i, 0in。还要求对n的任意取值都适用。 取 (P1,P2,Pi,)=(W1,W2,Wi,)=(20,21,2i-1,)P和W取值相同,使支配原则成立,也就是说不会因为支配原则而删除元素;只要说明不会出现相同元素被删除一个的情形,即可知是最坏的

8、情况。可用归纳法证明此结论。6.17 最优性原理并不总是对可以将其解看成是一系列决策结果的所有问题成立。找两个最优性原理不成立的例子,并说明对这两个问题最优性原理为什么不成立。 多段图问题:路径和改为路径乘积并允许出现负数6.5 由于我们通常只知道成功检索和不成功检索概率的近似值,因此,若能在较短的时间内找出几乎是最优的二分检索树,也是一件很有意义的工作。所谓几乎是最优的二分检索树,就是对于给定的P和Q,该树的成本(由(6.9)式计算)几乎最小。已经证明,由以下方法获得这种检索树的算法可以有O(nlogn)的时间复杂度,选取这样的k为根,它使|W(0, k-1)- W(k, n) |尽可能地小

9、。重复以上步骤去找这根的左、右子树。 对于题6.3的数据,用上述方法找出一棵这样的二分检索树。它的成本是什么? 用SPAKS写一个实现上述方法的算法,你的算法的计算时间为O(nlogn)吗? 计算树根:计算树根: k从从1到到4, |W(0,0)-W(1,4)|=11, |W(0,1)-W(2,4)|=2, |W(0,2)-W(3,4)|=12, |W(0,3)-W(4,4)|=17 所以该树的根是所以该树的根是T(0,4)=2, 依次计算得到依次计算得到T(0,1)=1,T(2,4)=3,T(3,4)=4 总体成本是总体成本是4+2*(2+1)+2*(4+2+4)+3*(1+1+1)=394

10、71518202101315479131 假定两个仓库W1和W2都存有同一种货物,其库存量分别为r1和r2。想要将其全部发往n个目的地D1,D2,Dn. 设发往Dj的货物为dj,因此r1+r2=dj.如果由仓库Wi发送量为xij的货物到目的地Dj的花费为Cij,那么仓库问题就是求各个仓库应给每个目的地发多少货才使总的花费最小。即要求出这些非负整数xij,1i2,1jn,它使得x1j+x2j=dj, 1jn,并且使ijcij(xij)取最小值。假设当W1有x的库存且按最优方式全部发往目的地D1,D2,Di时所需的花费为gi(x)(W2的库存为dj-x)。于是此仓库问题的最优总花费是gn(r1).

11、6.13求gi(x)的递推关系式 写一个算法求解这个递推关系式并要能得 到 xi j的 决 策 值 得 最 优 序 列 ,1i2,1jn.11121110min ,( )()()() miniiiiiiiiixx dig xcxcdxgxx0( )0 0igxxdprocedure G(d, X, x, c, g)/* d是限量, X是库存量,C是函数; c是代价数组,x是货物量,g是花费,i是处理到第几个目的地,*/ integer c(n), x(n), d(n), g(0:n,0:X), i, X, j for i0 to n do g0,X=0 repeatfor i1 to n do for j0 to X do g(i,j) MAX for k 0 to min(j,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论