数塔问题完整版.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数塔问题

例数塔问题

有形如右图的一个数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的数值和最大。

9

1215

1068

21895

19710416

问题分析

数组存放下三角数据

口算结果?

9-12-10-18-10

1贪婪算法

贪婪策略?

是否满足贪婪选择性质?

是否满足最优子结构性质?

2枚举

最保险的思路,列举出所有可能的路径再比较,得出和最大的路径。

重复工作:

循环、递归。

2枚举-递归

算法1

inta[100][100];//下三角形存放数据

intmax(inti,intj,intn)//递归函数

{

intleft,right;

if((i==n)||(j==n))//到达边缘

returna[i][j];

left=max(i+1,j,n);//左边

right=max(i+1,j+1,n);//右边

return(leftright)?(left+a[i][j]):(right+a[i][j]);

}

重叠子问题:计算了两次18的最大路径。

3动态规划的手工计算

9

1215

1068

21895

19710416

阶段5

阶段4

阶段3

阶段2

(21)

(28)

(19)

(21)

(38)

(34)

(29)

(50)

(49)

(59)

决策

决策

决策

决策

阶段1

59

5049

383429

21281921

19710416

取第i行第j个数,一般有两种方案。

3动态规划的手工计算

9

1215

1068

21895

19710416

(33)

(49)

(41)

(37)

(31)

(30)

(32)

(21)

(24)

(52)

(56)

(59)

(45)

(53)

决策

决策

决策

决策

阶段1

阶段2

阶段3

阶段4

阶段5

3动态规划的手工计算

顺序与逆序解法本质上无区别;

一般当初始状态唯一给定时可用逆序解法;

如需比较到达不同终点状态的各个路径及最大结果时,使用顺序法比较简便;

如需知道塔中每一点到最下层的最大值和路径时,使用逆序法比较简便。

4动态规划的算法实现

原始信息存储

层数用整型变量n存储;

数塔中的数据用二维数组data[][]存储,下三角阵。

动态规划过程存储

必须用二维数组d[][]存储各阶段的决策结果。二维数组d的存储内容如下:

d[n][j]=data[n][j],其中j=1,2,……,n;

d[i][j]=max(d[i+1][j],d[i+1][j+1])+data[i][j],其中i=n-1,n-2,……1,j=1,2,……,i;

逆序法

59

5049

383429

21281921

19710416

最后d[1][1]存储的就是问题的最大值。

可以通过分析d,得到路径。

4动态规划的算法实现

输出data[1][1]“9”;

b=d[1][1]-data[1][1]=59-9=50b与d[2][1],d[2][2]比较b与d[2][1]相等,输出data[2][1]“12”;

b=d[2][1]-data[2][1]=50-12=38b与d[3][1],d[3][2]比较b与d[3][1]相等,输出data[3][1]“10”;

b=a[3][1]-data[3][1]=38-10=28b与d[4][1],d[4][2]比较b与d[4][2]相等,输出data[4][2]“18”;

b=d[4][2]-data[4][2]=28-18=10b与d[5][2],d[5][3]比较b与d[5][3]相等,输出data[5][3]“10”。

数组d

59

5049

383429

21281921

19710416

数组data

9

1215

1068

21895

19710416

4动态规划

文档评论(0)

191****1763 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档