2010搜索算法深入.ppt

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

搜索优化 什么是搜索 树、图结构基础上 给出初始节点,要求寻找到符合约束条件的目标节点 给出初始节点和目标节点,要求找到从初始节点到目标节点的一条路径。 最优解?较优解?全部解? 搜索的分类 深搜模型 深搜模式特征 初始化; 循环 当前解是合理解 是最终解 当前解输出; 输出后再构造下一个可能解(穷举Y、回溯X) 不是最终解 构造下一个可能解(扩展X) 当前解不是合理解 重新构造下一个可能解(穷举Y、回溯X) 检查当前解 迷宫代码示例----非递归 Top:=1; j:=0; While top0 do j:=j+1; x1:=…; y1:=…; if j8 then top:=top-1; j:=stick[top]; use[stick[top].x,stick[top].y]:=0; else if (top=8) and use[x1,y1] then stick[top]:=……; use[x1,y1]:=-1; top:=top+1; j:=0; if (x1,y1)=目标 then print; 迷宫代码示例----递归 Try(I) For j:=1 to 8 do x1:=stick[i-1].x+dx[j]; y1:=stick[i-1].y+dy[j]; if use[x1,y1]=0 then stick[i].direction:=j; stick[i].x:=x1;stick[i].y:=y1; use[x1,y1]:=-1; if (x1,y1)目标 then try(I+1) else print; use[x1,y1]:=0; 宽搜框架 初始化 循环 队首f=队尾r 取队首元素; for i=1 to 可能方案数 生成可能解; 判重,是新解 是最终解,打印 不是最终解,入队 f++ ; 2.1 邮票面值设计 给定一个信封,最多只允许粘贴N 张邮票,计算在给定K(N+k=40) 种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大max ,使得1-max之间的每一个邮资值都能得到。 N=3 K=2 1 3 MAX=7 算法基本框架 (1)面额为1的邮票是必需的,可以固定。 (2)增加一种面额并把当前所能取到的金额记录下来 (3)通过k-1次(2)的操作 (4)穷举所有的方案得到最优解 为什么要优化 减少搜索量,提高搜索效率,尽可能快地找到问题的解。 竞赛的特点(时间\空间限制) 优化策略1 在搜索的过程中,对数据的记录方式很关键。如果仅仅记录一个金额能否得到,当下一次添加邮票时并不能明确是否能从这个金额出发添加邮票额,所有的金额必须重新计算,浪费了大量的时间。 记录最少要用几张邮票达到一个面值是比较重要的,这样有利于添加新邮票时迅速判断可行性。 优化策略2 当添加一张新邮票时,对邮票面额的搜索可适当缩小范围。直接从上一个面额加1直到当前连续取得的最大金额加1就行了。 其他范围内的搜索都是无效的:过大导致不连续;如果小于前一面额的值,就会导致产生面额大小的无序性,造成大量的重复搜索,因此,保证邮票面额递增是基本原则。 数据结构设计 conti[0..maxs]:记录得到各面额最小需要的邮票数量 temp[1..40]:工作数组,记录当前邮票面额设计 max1[1..40]:记录采用当前方案能连续取得的最大面额 project[1..40]:记录最优解 stack[1..40]:栈,用于邮票面额数组temp的维护 procedure maxcont(top,j:integer); {统计本次方案能得到的最大连续数} for i:=1 to n do for t:=0 to max2 do if continue[t+j*i]continue[t]+i then continue[t+j*i]:=continue[t]+i; t:=1; while continue[t]=n do t:=t+1; if t-1max2 then begin

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档