第四讲 动态规划.ppt

第四讲 动态规划

第四讲 动态规划 问题 一个楼梯有20级,每次走1级或2级,从底走到顶一共有多少种走法? 分析 假设从底走到第n级的走法有f(n)种,走到第n级有两个方法 一个是从第n-1级走1步,另一个是从第n-2级走2步,前者有f(n—1)种方法,后者有f(n-2)种方法 所以f(n)=f(n-1)+f(n-2) 易知f(0)=1,f(1)=1 分析 可递归求解 子问题有重叠 解决方法 每个子问题及其解记录下来,只求解一次 引言——由一个问题引出的算法 深度优先搜索法来解决此问题,该问题的递归式为 其中是?(v)与v相邻的节点的集合,w(v,u)表示从v到u的边的长度 算法如下: int MinDistance(v) { if ( v == E ) return 0; else { min = maxint; for ( 所有没有访问过的节点i ) { if ( v和i相邻 ) { 标记i访问过了; t = v到i的距离+MinDistance(i); 标记i未访问过; if ( tmin ) min=t;

文档评论(0)

1亿VIP精品文档

相关文档