返回

20【毕业设计】地图中最短路径的搜索算法研究文档 20【毕业设计】地图中最短路径的搜索算法研究文档

格式:word 上传:2026-10-28 05:44:02
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(1)
第 1 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(2)
第 2 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(3)
第 3 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(4)
第 4 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(5)
第 5 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(6)
第 6 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(7)
第 7 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(8)
第 8 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(9)
第 9 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(10)
第 10 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(11)
第 11 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(12)
第 12 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(13)
第 13 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(14)
第 14 页 / 共 16 页
【毕业设计】地图中最短路径的搜索算法研究.doc预览图(15)
第 15 页 / 共 16 页
预览结束,还剩 1 页未读
阅读全文需用电脑访问
温馨提示 电脑下载 投诉举报

1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。

2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。

3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。

索算法中,从起始结出发,访问它的任邻接结点再从出发,访问与邻接但还没有访问过的顶点然后再从出发,进行类似的访问„„如此进行下去,直至所有的邻接结点都被访问为止,如果此时还没有找到目标结点,则退回步,退到前次刚访问过的顶点,看是否还有其它没有被访问的邻接顶点。


如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问如果没有,就再退回步进行搜索。


重复上述过程,直到找到目标结点或图中所有顶点都被访问过为止。


对于多个邻接结点,求解问题的价值是相同的,因此我们可以按任意顺序来扩展它们。


而这里采用的原则是先生成的结点先扩展。


算法运行结果图算法图是关于个节点进行算法考虑长度为的结点的每种可能的状态。


因此,对于同层结点来说,求解问题的价值是相同的,我们可以按任意顺序来扩展它们。


这里采用的原则是先生成的结点先扩展。


深度优先算法运行结果图深度优先搜程序运行结果与分析图中各种算法的运行效果广度优先算,主要代码如下,保证找到最短路径最优解的条件,关键在于估价函数的选取估价值实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。


估价值与实际值越接近,估价函数取得就越好。


算法的它有两部分组成部分为,它表示从起始搜索点到当前点的代价通常用结点在搜索树中的深度来表示。


另部分,即,它表示启发式搜索中最为重要的部分,即当前结点到目标结点的估值。


算法个经过仔细设计的启发函数,往往在很快的时间内就可得到个搜索问题的最优解。


而算法最为核心的部分,就在于它的个估值函数的设计上其中是每个可能试探点的估值,前搜索结点往下选择下步结点时,可以通过个启发函数来进行选择,选择代价最少的结点作为下步搜索结点而跳转其上遇到有个以上代价最少的结点,不妨选距离当前搜索点最近次展开的搜索点进行下步搜索。


重复检测的所有邻接顶点算法算法属于种启发式搜索算法,被广泛应用在最优路径求解和些策略设计的问题中。


所谓启发式搜索,与和这类盲目型搜索最大的不同,就在于当点作访问标记,若顶点存在,访问顶点顶取图的顶点个数定义访问标记数组,访问顶点顶点作访问标记入队定义访问标记数组,于向下层访问。


广度优先算法的主要代码如下取图的顶点个数先搜索是种分层的搜索过程,每向前走步可能访问批顶点,不像深度优先搜索那样会出现回退的现象。


因此它不是个递归的过程。


为了实现逐层访问,算法中使用了个队列以记忆正在访问的这层和上层的顶点,以便第层的结点逐扩展,得到第二层结点,并逐检查第二层结点中是否包含目标结点。


运算过程代码显示结果输出相应控制若没有,再用算符逐扩展第二层所有结点„„,如此依次扩展,直到发现目标结点为止。


广度优属于种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。


广度优先搜索的核心思想是从初始结点开始,应用算符生成第层结点,检查目标结点是否在这些后继结点中,若没有,再用产生式规则将所有第属于种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。


广度优先搜索的核心思想是从初始结点开始,应用算符生成第层结点,检查目标结点是否在这些后继结点中,若没有,再用产生式规则将所有第层的结点逐扩展,得到第二层结点,并逐检查第二层结点中是否包含目标结点。


运算过程代码显示结果输出相应控制若没有,再用算符逐扩展第二层所有结点„„,如此依次扩展,直到发现目标结点为止。


广度优先搜索是种分层的搜索过程,每向前走步可能访问批顶点,不像深度优先搜索那样会出现回退的现象。


因此它不是个递归的过程。


为了实现逐层访问,算法中使用了个队列以记忆正在访问的这层和上层的顶点,以便于向下层访问。


广度优先算法的主要代码如下取图的顶点个数定义访问标记数组访问顶点顶点作访问标记入队取图的顶点个数定义访问标记数组访问顶点顶点作访问标记,若顶点存在,重复检测的所有邻接顶点算法算法属于种启发式搜索算法,被广泛应用在最优路径求解和些策略设计的问题中。


所谓启发式搜索,与和这类盲目型搜索最大的不同,就在于当前搜索结点往下选择下步结点时,可以通过个启发函数来进行选择,选择代价最少的结点作为下步搜索结点而跳转其上遇到有个以上代价最少的结点,不妨选距离当前搜索点最近次展开的搜索点进行下步搜索。


个经过仔细设计的启发函数,往往在很快的时间内就可得到个搜索问题的最优解。


而算法最为核心的部分,就在于它的个估值函数的设计上其中是每个可能试探点的估值,它有两部分组成部分为,它表示从起始搜索点到当前点的代价通常用结点在搜索树中的深度来表示。


另部分,即,它表示启发式搜索中最为重要的部分,即当前结点到目标结点的估值。


算法保证找到最短路径最优解的条件,关键在于估价函数的选取估价值实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。


估价值与实际值越接近,估价函数取得就越好。


算法的主要代码如下程序运行结果与分析图中各种算法的运行效果广度优先算法运行结果图广度优先搜索图是关于个节点进行广度优先搜索的运行结果,从节点开始,遍历与他相邻的节点,然后在遍历节点的相邻节点。


广度优先搜索算法中,解答图上结点的扩展是沿结点深度的断层进行,也就是说,结点的扩展是按它们接近起始结点的程度依次进行的。


首先生成第层结点,同时检查目标结点是否在所生成的结点中,如果不在,则将所有的第层结点逐扩展,得到第二层结点,并检查第二层结点是否包含目标结点„„对长度为的任结点进行扩展之前,必须先考虑长度为的结点的每种可能的状态。


因此,对于同层结点来说,求解问题的价值是相同的,我们可以按任意顺序来扩展它们。


这里采用的原则是先生成的结点先扩展。


深度优先算法运行结果图深度优先搜索图是关于个节点进行深度优先搜索的运行结果,从节点开始,访问与他相邻的节点,然后再访问与节点相邻的节点,重复此过程直到找到目标节点为止。


深度优先搜索算法中,从起始结出发,访问它的任邻接结点再从出发,访问与邻接但还没有访问过的顶点然后再从出发,进行类似的访问„„如此进行下去,直至所有的邻接结点都被访问为止,如果此时还没有找到目标结点,则退回步,退到前次刚访问过的顶点,看是否还有其它没有被访问的邻接顶点。


如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问如果没有,就再退回步进行搜索。


重复上述过程,直到找到目标结点或图中所有顶点都被访问过为止。


对于多个邻接结点,求解问题的价值是相同的,因此我们可以按任意顺序来扩展它们。


而这里采用的原则是先生成的结点先扩展。


算法运行结果图算法图是关于个节点进行算法考虑长度为的结点的每种可能的状态。


因此,对于同层结点来说,求解问题的价值是相同的,我们可以按任意顺序来扩展它们。


这里采用的原则是先生成的结点先扩展。


深度优先算法运行结果图深度优先搜索图是关于个节点进行深度优先搜索的运行结果,从节点开始,访问与他相邻的节点,然后再访问与节点相邻的节点,重复此过程直到找到目标节点为止。


深度优先搜索算法中,从起始结出发,访问它的任邻接结点再从出发,访问与邻接但还没有访问过的顶点然后再从出发,进行类似的访问„„如此进行下去,直至所有的邻接结点都被访问为止,如果此时还没有找到目标结点,则退回步,退到前次刚访问过的顶点,看是否还有其它没有被访问的邻接顶点。


如果有,则访问此顶点,之后再从此顶点出发,进行与前述类似的访问如果没有,就再退回步进行搜索。


重复上述过程,直到找到目标结点或图中所有顶点都被访问过为止。


对于多个邻接结点,求解问题的价值是相同的,因此我们可以按任意顺序来扩展它们。


而这里采用的原则是先生成的结点先扩展。


算法运行结果图算法图是关于个节点进行算法的运行结果。


最为核心的过程,在于每次选择下个当前搜索点时,是从所有已探知的但未搜索过点中可能是不同层,亦可不在同条支路上,选取值最小的结点进行展开。


而所有已探知的但未搜索过点可以通过个按值升序的队列即优先队列进行排列。


这样,在整体的搜索过程中,只要按照类似广度优先的算法框架,从优先队列中弹出队首元素值,对其可能子结点计算和值,直到优先队列为空无解或找到终止点为止。


算法的总体比较与分析对于广度优先搜索算法,当结点到跟结点的费用和结点的深度成正比时,特别是当每结点到根结点的费用等于深度时,用广度优先法得到的解是最优解,但如果不成正比,则得到的解不定是最优解,而般情况下广度优先搜索算发都能找到最优解,但必须遍历搜的的分枝。


广度优先搜索算法,般需要存储产生的所有结点,占的存储空间要比深度优先大得多,由于对空间的大量需求,因此广度优先算法并不适合解非常大的问题。


对于深度优先搜索算法,般来说时间复杂度大但空间复杂度小,不保留全部结点的深度优先搜索法,由于把扩展望的结点从数据库中弹出删除,这样,般在数据库中存储的结点数就是深度值,因此它占用的空间较少,所以,当搜索树的结点较多,用其他方法易产生内存溢出时,深度优先搜索不失为种有效的算法。


从输出结果方面看,深度优先搜索算法般只能找到满意解,但能很快找到接近解,可能不必遍历所有分枝。


在更多的情况下,深度优先搜索算法也是比较好的方案。


深度搜索与广度搜索的控制结构和产生系统很相似,唯的区别在于对扩展节点选取上。


这两种算法每次都扩展个节点的所有子节点,而不同的是,深度搜索下次扩展的是本次扩展出来的子节点中的个,而广度搜索扩展的则是本次扩展的节点的兄弟节点。


比较深度优先和广度优先两种搜索算法可以看出,广度优先搜索法般无回溯操作,即入栈和出栈的操作,所以运行速度比深度优先搜索算法法要快些。


总之,般情况下,深度优先搜索法占内存少但速度较慢,广度优先搜索算法占内存多但速度较快,在距离和深度成正比的情况下能较快地求出最优解。


因此在选择用哪种算法时,要综合考虑,决定取舍。


广度优先搜索算法和深度优先

下一篇
  • Hi,我是你的文档小助手!
    你可以按格式查找相似内容哟
DOC PPT RAR 精品 全部
小贴士:
  • 🔯 当前文档为word文档,建议你点击DOC查看当前文档的相似文档。
  • ⭐ 查询的内容是以当前文档的标题进行精准匹配找到的结果,如果你对结果不满意,可以在顶部的搜索输入框输入关健词进行。
帮帮文库-精品文档 帮帮文库-免费阅读 帮帮文库-海量资源
换一批

搜索

客服

足迹

下载文档