[发明专利]一种迷宫最短路径的搜索方法及系统有效
申请号: | 201510119078.X | 申请日: | 2015-03-18 |
公开(公告)号: | CN104731099B | 公开(公告)日: | 2017-08-25 |
发明(设计)人: | 戴丛磊;魏育辉;贝金雨;王铁岩 | 申请(专利权)人: | 深圳市八零年代网络科技有限公司 |
主分类号: | G05D1/02 | 分类号: | G05D1/02 |
代理公司: | 深圳市恒申知识产权事务所(普通合伙)44312 | 代理人: | 陈健 |
地址: | 518109 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 迷宫 路径 搜索 方法 系统 | ||
技术领域
本发明属于计算机软件领域,尤其涉及一种迷宫最短路径的搜索方法及系统。
背景技术
目前关于迷宫的算法主要有两种:宽度优先搜索算法和深度优先搜索算法。具体为:
宽度优先搜索算法:从起点开始,寻找出所有走一步所能到达的位置,记录这些位置,再从这些位置开始,寻找出所有再走一步(即从起点走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次查找模块中,查找无障碍迷宫格的具体顺序为从当前所处迷宫格开始按照上-下-左-右的顺序查找;并且在二维数组中已经设置过元素值的元素,不重复设置元素值。
进一步地,所述最短路径选择模块在选择过程中,若存在多个元素具有需被选择的元素值,则从该多个元素中随机选择一个。
进一步地,所述最短路径选择模块在进行选择过程中,将被选择的元素记录至自定义的一维数组中。
本发明与现有技术相比,有益效果在于:本发明提供的一种迷宫最短路径的搜索方法及系统基于泼水法,即水从目的地开始扩散,每次扩散一格,直到扩散到出发点,记住水到达各个点所经过的步数,从中找出一条最短路径;本发明弥补了现有技术的不足,能快速在迷宫中找到一条最短的路线。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市八零年代网络科技有限公司,未经深圳市八零年代网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510119078.X/2.html,转载请声明来源钻瓜专利网。