- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法與数据结构讲义三(搜索算法)
第十三课 搜索算法
12.0 搜索树
12.1 搜索算法的基本原理
12.2 广度优先搜索
12.3 深度优先搜索
12.4 练习 12.0 搜索树
引例:在一个4*4的棋盘上的左下角有一个马,按照国际象棋的规则,将这个马跳到右
* 上角。
分析:首先建立棋盘的坐标,我们以左下角为(1,1),以右上角、
为(4,4)。按照马的移动规则,假定当前马的位置坐标为
(x,y),则移动方法有:
(1)x’=x+1; y’=y+2
(2)x’=x+1; y’=y-2;
(3)x’=x+2; y’=y+1;
(4)x’=x+2; y’=y-1;
(5)x’=x-1; y’=y+2;
(6)x’=x-1; y’=y-2;
(7)x’=x-2; y’=y+1;
(8)x’=x-2; y’=y-1
可以建立搜索树如下:
图中表示:由(1,1)可以跳到(2,3)和(3,2)两个点(其它移动规则由于边
界限制无法到达);(2,3)又可以跳到(1,1)、(4,4)、(4,2)、(3,1)四个点,(3,2)
可以跳达(1,1)、(1,3)、(2,4)、(4,4)四个点,……。
搜索树:按照数据元素的产生式规则建立起来的数据元素逻辑关系。
特点:(1)数据之间的逻辑关系为一对多。
(2)每个结点数据的下一级子结点是由该结点的产生式规则生成。
(3)目标结点(答案数据)一定在搜索树中能够出现。
(4)对于数据规模较大的问题,搜索树的结点将是海量的。
(5)搜索树可能是无穷无尽的(因为很多结点回重复出现)。
12.1 搜索算法的基本原理:
从搜索树中可以看出,一个问题从起始状态,通过穷举的方式建立起搜索树后,目标状态一定能在搜索树中出现。因此,只要建立起搜索树,就可以在其中搜索到目标状态(数据、路径、位置等)。
搜索算法要解决的问题:
产生式规则:由当前状态按照问题的需求和限制,生成新的状态的方法集合。
搜索树的生成和存储:一般采用一边生成,一边搜索;存储方法有:集合、栈。
搜索的方法:按行搜索:即从上到下,逐层搜索
双向按行搜索:一边从上往下(起始状态到中间状态),一边从下往上逐
层搜索(从目标状态到中间状态),找到相同的中间状态
即可。
回朔法搜索:优先向更深层结点查找,走不通则换一条路,无法换则退回
到上一层。
搜索状态的减少:在生成搜索树时,对于已搜过的中间状态的再次出现,是否需要
再次加入到树中重新搜索。
12.2 广度优先搜索(bfs)
又称宽度优先搜索,是一种从搜索树的根结点开始,沿着树的宽度遍历树的结点。如果所有节点均被访问,则算法中止。一般用于求从起始状态到目标状态所需的最少步骤数。
算法过程:
1、首先将根结点放入队列中。
2、从队首取出一个结点,按照产生式规则逐个生成新的结点数据,对新数据:
如果如果是目标结点,则结束算法并返回结果。
如果不是目标结点,则检查它是否已在搜索树中出现过,未出现就将它作为尚未检查过的子结点加入到队列的队尾(特殊情况下,也有已出现过的结点重新入队的)。
3、重复步骤2。
4、若队列为空,表示整张图都检查过了,即目标无法达到,结束算法并返回“找
不到目标”的信息。
算法细化:
用哈希数组判断新生成的结点数据是否已出现过。
队列经常要多开一行,记录新结点的父亲(即该结点由上一层的哪个结点扩展而来),用于最后输出过程。
如数据规模过大,需要使用循环队列(后果是无法记录父亲)。
算法框架:
function creat(i)
begin
case i of
1:creat:=按照第一产生式规则生成新状态数据;
2:creat:=按照第二产生式规则生成新状态数据;
.
.
.
end;
end;
////////////////////////////////////////////////////////////////
procedure bfs;
begin
join(起始状态);
while not(队空) do
begin
当前处理状态:=deq;
for i:=第一产生式规则 to 最大产生式规则 do
begin
新状态:=creat(i);
您可能关注的文档
- 算法分析編程学到现在才真正到了戏.doc
- 算法分析與复杂性理论实验报告凸包问题.doc
- 算法分析與复杂性理论实验报告动态规划.docx
- 算法分析與复杂性理论实验报告基本排序.docx
- 算法分析與复杂性理论实验报告最大流问题.docx
- 算法分析與复杂性理论实验报告求最近点对的问题.doc
- 算法分析與复杂性理论小论文.docx
- 算法分析與设计(答案).doc
- 算法分析與设计复习资料2.doc
- 算法分析與设计-动态规划和分治递归.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2022医院医疗机构开展违反中央八项规定精神突出问题专项治理的实施方案(详细版).pdf VIP
- 半导体工艺炉的炉门及半导体工艺炉.pdf VIP
- 测绘行业安全生产汇报.pptx VIP
- 半导体后端工艺半导体封装的作用、工艺和演变.docx VIP
- 半导体工艺原理--半导体工艺原理(贵州大学).ppt VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 走进潮汕文化ppt课件(优质ppt).pptx
- DG_TJ 08-2439-2024 建筑工程“多测合一”技术标准(正式版).pdf VIP
- Camera客观标准测试.pdf VIP
- 2024年湖北省恩施州恩施市六角亭街道招聘社区工作者真题参考答案详解.docx VIP
文档评论(0)