Tutorial5DynamicProgramming(动态规划)(一)Review比较基本的.docVIP

  • 3
  • 0
  • 约3.65千字
  • 约 3页
  • 2019-07-03 发布于四川
  • 举报

Tutorial5DynamicProgramming(动态规划)(一)Review比较基本的.doc

Tutorial 5 Dynamic Programming: (动态规划) (一)Review 比较基本的算法设计思想里,动态规划是比较难于理解,难于抽象的一种,但是却又十分重要。动态规划的实质是分治思想和解决冗余,因此它与分治法和贪心法类似,它们都是将问题的实例分解为更小的、相似的子问题,但是动态规划又有自己的特点。 (1)贪心法的当前选择可能要依赖于已经作出的选择,但不依赖于还未做出的选择和子问题,因此它的特征是由顶向下,一步一步地做出贪心选择,但不足的是,如果当前选择可能要依赖子问题的解时,则难以通过局部的贪心策略达到全局最优解。相比而言,动态规划则可以处理不具有贪心实质的问题。 (2)分治法解决问题时,由于子问题的数目往往是问题规模的指数函数,因此对时间的消耗太大。动态规划的思想在于,如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,如果我们能够保存已经解决的子问题的答案,而在需要的时候再找出已求得的答案,这样就可以避免大量的重复计算。由此而来的基本思路是,用一个表记录所有已解决的子问题的答案,不管该问题以后是否被用到,只要它被计算过,就将其结果填入表中。 (3) 动态规划的思想比较感性的说,其实是对贪心算法和分治法的一种折衷,它所解决的问题往往不具有可爱的贪心实质,但是各个子问题又不是完全零散的,这时候我们用一定的空间来换取时间,就可以提高解题的效率。 The 0/1 knapsack problem 0-1 背包问题 问题描述:给定n种物品和一个背包,物品I的重量是Wi,其价值为Vi,背包的容量为c,问如何选择装入背包的物品,使得装入背包的物品的总价值最大? 形式化描述:给定c求一个n元1-0向量Xi(每种物品要么装要么不装) ????????????Wi?Xi(i从1到n连乘累加,Xi=0或1)〈=c ????????????Vi?Xi(i从1到n连乘累加,Xi=0或1)?达到最大 Chain Matrix Multiplication 矩阵乘法问题: 给定n个矩阵{A1,A2,…An},其中Ai与A i+1是可乘的,i=1,2…,n-1。考察这n个矩阵的连乘积A1A2…An。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q矩阵,B是一个q×r矩阵,则其乘积C=AB是一个p×r矩阵,需要pqr次数乘。 由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。例如,设3个矩阵{A1,A2,A3}的维数分别为10×100,100×5,和5×50。若按加括号方式((A1A2)A3)计算,3个矩阵连乘积需要的数乘次数为10×100×5+10×5×50=7500。若按加括号方式(A1(A2A3))计算,3个矩阵连乘积总共需要10×5×50+10×100×50=75000次数乘。由此可见,在计算矩阵连乘积时,加括号方式,即计算次序对计算量有很大影响。 矩阵连乘积的最优计算次序问题,即对于给定的相继n个矩阵{A1,A2,…An}(其中矩阵Ai的维数为pi-1×p,i=1,2,…,n),确定计算矩阵连乘积A1,A2,…An的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。 (3) All-Pairs Shortest Paths 最短路径问题是 HYPERLINK /wiki/%E5%9B%BE%E8%AE%BA \o 图论 图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括: 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在 HYPERLINK /w/index.php?title=%E6%97%A0%E5%90%91%E5%9B%BEaction=editredlink=1 \o 无向图 无向图中该问题与确定起点的问题完全等同,在 HYPERLINK /wiki/%E6%9C%89%E5%90%91%E5%9B%BE \o 有向图 有向图中该问题等同于把所有路径方向反转的确定起点的问题。 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题 - 求图中所有的最短路径。 用于解决最短路径问题的算法被称做“最短路径算法”, 有时被简称作“路径算法”。 最常用的路径算法有: HYPERLINK /wiki/Dijkstra%E7%AE%97%E6%B3%95 \o Dijkstra算法 Dijkstra算法 HYPERLINK /wiki/A%E6%98%9F%E7%AE%97%E6%B3%95 \o A星算法 A*算法 HYPERLINK /w

文档评论(0)

1亿VIP精品文档

相关文档