一种迷宫最短路径的快速搜索方法及系统技术方案

技术编号:19480359 阅读:158 留言:0更新日期:2018-11-17 10:34
本发明专利技术适用于计算机软件领域,提供了一种迷宫最短路径的快速搜索方法及系统,具体为:首先,设置二维数组;其次,在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;然后,在当前已设置的迷宫格处进行第i次查找,以找出当前迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素设置为i;重复执行此步骤,直至到达起点;最后,在二维数组中选择元素值最大的一个元素,然后按照元素值递减的方式依次选择,直至选择到元素值为1的元素,将被选择的元素所形成的路径作为迷宫起点到终点的最短路径。本发明专利技术提供的最短路径的搜索方法,能快速在迷宫中找到一条最短路线。

【技术实现步骤摘要】
一种迷宫最短路径的快速搜索方法及系统
本专利技术属于计算机软件领域,尤其涉及一种迷宫最短路径的快速搜索方法及系统。
技术介绍
目前关于迷宫的算法主要有两种:宽度优先搜索算法和深度优先搜索算法。具体为:宽度优先搜索算法:从起点开始,寻找出所有走一步所能到达的位置,记录这些位置,再从这些位置开始,寻找出所有再走一步(即从起点走2步)所能到达的位置,不断继续,直到找到目标点止,然后从记录的这些位置(像一棵树)中找出路径;这种算法可找到一条或者所有最短路径,但是需要记录大量位置,使用大量内存。深度优先搜索算法:从入口出发,顺着某一方向向前探索,若能走通,则继续往前走;否则沿原路退回(回溯),换一个方向再继续探索.直至所有可能的通路都探索到为止。如果恰好某一步探索到出口,则就找到了从入口到出口的路径。为了保证在任何位置上都能沿原路退回,防止死循环,需要使用堆栈来保存大量记录,而要求解最短路径,则必须搜索出所有到达出口的路径,通过比较得到最短距离的路径,这样也必然要求增加数据空间来保存搜索过程中的当前最短路径,增加了空间复杂度。所以,目前已有算法对于解决大规模迷宫问题还存在不足,主要问题在于搜索空间大、求解速度慢、无法得到最优路径等。
技术实现思路
本专利技术所要解决的技术问题在于提供一种迷宫最短路径的快速搜索方法及系统,旨在能快速在迷宫中找到一条最短行径路线。本专利技术是这样实现的,一种迷宫最短路径的搜索方法,所述迷宫包括起点、终点、障碍物迷宫格、无障碍迷宫格;所述方法包括下述步骤:步骤A,设置二维数组;所述二维数组的整体元素布局与迷宫的整体迷宫格布局相同;步骤B,在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;步骤C,在当前已设置的迷宫格处进行第i次查找,以找出当前迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素设置为i,其中,i为大于1的自然数;i以1为增加步长的递增方式重复执行此步骤,直至到达起点;步骤D,在二维数组中选择元素值最大的一个元素,然后按照元素值递减的方式依次选择,直至选择到元素值为1的元素,将被选择的元素所形成的路径作为迷宫起点到终点的最短路径。进一步地,步骤B和步骤C中,查找无障碍迷宫格的具体顺序为从当前所处迷宫格开始按照上-下-左-右的顺序查找;并且在二维数组中已经设置过元素值的元素,不重复设置元素值。进一步地,在步骤D中,在选择过程中,若存在多个元素具有需被选择的元素值,则从该多个元素中随机选择一个。进一步地,步骤D在进行选择过程中,将被选择的元素记录至自定义的一维数组中。本专利技术还提供了一种迷宫最短路径的搜索系统,所述迷宫包括起点、终点、障碍物迷宫格、无障碍迷宫格;所述系统包括:二维数组设置模块,用于设置二维数组;所述二维数组的整体元素布局与迷宫的整体迷宫格布局相同;第1次查找模块,用于在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;第i次查找模块,用于在当前已设置的迷宫格处进行第i次查找,以找出当前迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素设置为i,其中,i为大于1的自然数;i以1为增加步长的递增方式重复执行此过程,直至到达起点;最短路径选择模块,用于在二维数组中选择元素值最大的一个元素,然后按照元素值递减的方式依次选择,直至选择到元素值为1的元素,将被选择的元素所形成的路径作为迷宫起点到终点的最短路径。进一步地,所述第1次查找模块和所述第i次查找模块中,查找无障碍迷宫格的具体顺序为从当前所处迷宫格开始按照上-下-左-右的顺序查找;并且在二维数组中已经设置过元素值的元素,不重复设置元素值。进一步地,所述最短路径选择模块在选择过程中,若存在多个元素具有需被选择的元素值,则从该多个元素中随机选择一个。进一步地,所述最短路径选择模块在进行选择过程中,将被选择的元素记录至自定义的一维数组中。本专利技术与现有技术相比,有益效果在于:本专利技术提供的一种迷宫最短路径的搜索方法及系统基于泼水法,即水从目的地开始扩散,每次扩散一格,直到扩散到出发点,记住水到达各个点所经过的步数,从中找出一条最短路径;本专利技术弥补了现有技术的不足,能快速在迷宫中找到一条最短的路线。附图说明图1是本专利技术实施例提供的迷宫最短路径的搜索方法示意图;图2-6是本专利技术实施例提供的迷宫最短路径的搜索过程示意图;图7是本专利技术实施例提供的迷宫最短路径的搜索系统示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术的技术原理基于泼水法,水从目的地开始扩散,每次扩散一格,直到扩散到出发点,记住水到达各个点所经过的步数,从中找出一条最短路径。本专利技术所适用的迷宫包括起点、终点、障碍物迷宫格、无障碍迷宫格;如图1所示,所提供的搜索方法包括下述步骤:步骤A,设置二维数组;所述二维数组的整体元素布局与迷宫的整体迷宫格布局相同;步骤B,在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;步骤C,在当前已设置的迷宫格处进行第i次查找,以找出当前迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素设置为i,其中,i为大于1的自然数;i以1为增加步长的递增方式重复执行此步骤,直至到达起点;在步骤B和步骤C中,查找无障碍迷宫格的具体顺序为从当前所处迷宫格开始按照上-下-左-右的顺序查找;并且在二维数组中已经设置过元素值的元素,不重复设置元素值。步骤D,在二维数组中选择元素值最大的一个元素,然后按照元素值递减的方式依次选择,直至选择到元素值为1的元素,将被选择的元素所形成的路径作为迷宫起点到终点的最短路径。在步骤D中,在选择过程中,若存在多个元素具有需被选择的元素值,则从该多个元素中随机选择一个,并将被选择的元素记录至自定义的一维数组中。下面举一具体实施例介绍迷宫最短路径的搜索方法:预先设置一个用于存储最短路径的一维数组arrayShortPath和一个整体元素布局与迷宫的整体迷宫格布局相同的二维数组arrayPos,采用数组对迷宫信息进行存储,数组的元素的值表示迷宫对应位置的内容。如图2所示,黑色图像的小格子表示迷宫障碍物,不可通过,其它未填充的格子表示空地,可以通过;左上角的虚线格子表示迷宫对应位置为起点,保证起点不可通过;右下角的虚线格子表示迷宫终点,终点不可通过。在设计迷宫算法的过程中,首先将迷宫每一步分成若干个正方形的单元格,然后利用传染的方式,就好比泼水出去水不断扩散直到起点流出,然后在可通过的路径中查找出最短的一条路径。具体实施方式如下:步骤a:如图3所示,从终点开始,按顺序依次找出所有走一步所能到达的格子,本专利技术实施例采取上->下->左->右的顺序,将终点的上面一个格子填充为灰色,标记为01-a;下边不可通过,不标记;左边可通过,也填充为灰色,标记为01-c;右边也不可通过,不标记,已经标记过的格子不重复标记,然后将迷宫中所有为1的元素依次存储到本文档来自技高网...

【技术保护点】
1. 一种迷宫最短路径的快速搜索方法及系统,其特征在于,所述迷宫包括起点、终点、 障碍物迷宫格、无障碍迷宫格;所述方法包括下述步骤:步骤A,设置二维数组;所述二维数组的整体元素布局与迷宫的整体迷宫 格布局相同;步骤B,在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格, 并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;步骤C,在当前已设置的迷宫格处进行第i次查找,以找出当前迷宫格, 并将二维数组中与本次查找出的迷宫格对应位置的元素设置为i,其中,i为大 于1的自然数;i以1为增加步长的递增方式重复执行此步骤,直至到达起点;步骤D,在二维数组中选择元素值最大的一个元素,然后按照元素值递减 的方式依次选择,直至选择到元素值为1的元素,将被选择的元素所形成的路 径作为迷宫起点到终点的最短路径。

【技术特征摘要】
1.一种迷宫最短路径的快速搜索方法及系统,其特征在于,所述迷宫包括起点、终点、障碍物迷宫格、无障碍迷宫格;所述方法包括下述步骤:步骤A,设置二维数组;所述二维数组的整体元素布局与迷宫的整体迷宫格布局相同;步骤B,在终点处进行第1次查找,以查找出与终点相邻的无障碍迷宫格,并将二维数组中与本次查找出的迷宫格对应位置的元素值设置为1;步骤C,在当前已设...

【专利技术属性】
技术研发人员:胡石
申请(专利权)人:合肥微商圈信息科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1