最优路径搜索方法及系统技术方案

技术编号:8883340 阅读:154 留言:0更新日期:2013-07-04 02:08
本发明专利技术涉及路径搜索技术领域,公开了一种最优路径搜索方法及系统,该方法包括:设置地图中角色可以通过的节点的权值;在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价;选取所述相邻节点中估计代价最小的一个节点作为所述最优路径的下一个节点。利用本发明专利技术,可以提高路径搜索的灵活性及效率。

【技术实现步骤摘要】

本专利技术涉及路径搜索技术,具体涉及一种最优路径搜索方法及系统
技术介绍
自动寻路是网络游戏内玩家的一种基本需求,玩家只需要用鼠标选择地图上的一个目标节点,计算机通过寻路算法,搜索到一条最短的路径,引导角色通过这条路径走到目标节点。搜索最优的路径往往需要计算机进行一段长时间的计算。在现有技术中,常用的最短路径搜索算法有深度优先和广度优先两种,它们的特点是在给定的空间中进行穷举,当空间非常大时,这两种方法的效率就非常低,需要花费很长时间。网络游戏中常用的是A-Star算法,它对每一个搜索的节点进行评估,得到“最好的节点”,再从这个节点进行搜索直到目标。这样可以省略大量无用的搜索路径,提高了效率。A-Star算法的公式是:f (n) = g (n) +h (η),其中,f (η)是节点η从初始节点到目标节点的估价函数,g(n)是在状态空间中从初始节点到节点η的实际代价,h(n)是从节点η到目标节点最佳路径的估计代价。h(n)用权值来估算,若h (η)越小,f (η)就越小,则节点η越有可能是“最好节点”。现有A-Atar算法仍然存在以下缺点:1.灵活性差:该算法直接固化在游戏程序中,所以对游戏内所有地图的处理都是一样的。地图中所有节点的权值只有两种:连通(权值为O),阻挡(权值为I),O表示游戏角色行走时可以经过这些节点,I表示该节点有障碍,不能经过。2.效率低:对于每一个权值为O的节点,A-Star算法根据程序内已经写好的固定的估价函数对他们进行评估,选择最好节点。这样要遍历搜索的节点仍然很多,效率不高。
技术实现思路
本专利技术实施例提供一种最优路径搜索方法及系统,以提高路径搜索的灵活性及效率。为此,本专利技术实施例提供如下技术方案:一种最优路径搜索方法,包括:设置地图中角色可以通过的节点的权值;在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价;选取所述相邻节点中估计代价最小的一个节点作为所述最优路径的下一个节点。优选地,所述设置地图中角色可以通过的节点的权值包括:控制所述地图中角色移动到所述角色可以通过的节点的位置;触发所述节点的位置进入编辑状态;根据所述节点的位置设置所述节点的权值;将所述节点的位置信息及权值信息映射到对应所述地图的阻挡图中。优选地,所述触发所述节点的位置进入编辑状态包括:通过快捷键触发所述节点的位置进入编辑状态。优选地,所述阻挡图为像素图,所述地图中的每个节点与对应所述地图的像素图中的一个像素点对应,不同权值的节点对应的像素点的颜色不同。可选地,所述根据所述节点的位置设置所述节点的权值包括:如果所述节点的位置在最优路径上,则将所述节点的权值设置为小于O ;否则,将所述节点的权值设置为O。可选地,所述权值小于O ;所述根据所述节点的位置设置所述节点的权值包括:如果所述节点的位置在最优路径上,则将所述节点的权值设置为最小。优选地,所述根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价包括:根据所述初始节点到所述相邻节点的实际代价、所述相邻节点到所述目标节点最佳路径的估计代价、以及所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价。一种最优路径搜索系统,包括:设置单元,用于设置地图中角色可以通过的节点的权值;搜索单元,用于在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价;选取单元,用于选取所述搜索单元得到的所述相邻节点中估计代价最小的一个节点作为所述最优路径的下一个节点。优选地,所述设置单元包括:控制子单元,用于控制所述地图中角色移动到所述角色可以通过的节点的位置;触发子单元,用于触发所述节点的位置进入编辑状态;编辑子单元,用于根据所述节点的位置设置所述节点的权值;映射子单元,用于将所述节点的位置信息及权值信息映射到对应所述地图的阻挡图中。优选地,所述触发子单元,具体用于通过快捷键触发所述节点的位置进入编辑状态。优选地,所述阻挡图为像素图,所述地图中的每个节点与对应所述地图的像素图中的一个像素点对应,不同权值的节点对应的像素点的颜色不同。可选地,所述编辑子单元,具体用于在所述节点的位置在最优路径上时,将所述节点的权值设置为小于O ;否则,将所述节点的权值设置为O。可选地,所述权值小于O;编辑子单元,具体用于在所述节点的位置在最优路径上,将所述节点的权值设置为最小。优选地,所述搜索单元,具体用于在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述初始节点到所述相邻节点的实际代价、所述相邻节点到所述目标节点最佳路径的估计代价、以及所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价。本专利技术实施例最优路径搜索方法及系统,通过设置地图中角色可以通过的节点的权值,使计算机在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价,选取所述相邻节点中估计代价最小的一个节点作为所述最优路径的下一个节点,也就是说,使计算机能得到正确的引导,快速、高效地搜索到最优路径。附图说明图1是现有游戏中的一张地图的示意图;图2是利用现有A-Star算法在图1所不地图中得到的路径不意图;图3是本专利技术实施例最优路径搜索方法的流程图;图4是本专利技术实施例最优路径搜索方法在图1所示地图中得到的路径示意图;图5是本专利技术实施例中设置节点的权值的一种流程图;图6是本专利技术实施例最优路径搜索系统的一种结构不意图;图7是本专利技术实施例中设置单元的一种结构示意图。具体实施例方式为了使本
的人员更好地理解本专利技术实施例的方案,下面结合附图和实施方式对本专利技术实施例作进一步的详细说明。 首先,对现有的A-Star寻路原理做简单说明。假设图1是游戏中的一张地图,其中空白部分是游戏中的道路,游戏角色可以自由通过,斜线填充的部分为游戏中的建筑物(即阻挡),游戏角色不可以自由通过。游戏角色需要从A点出发,向东行走,然后向南拐弯一次,最终到达目标节点D。在现有的A-Star算法中,系统会根据A-Star算法遍历A点周围的八个节点,如图2中所示的节点si s8,选择接下来该走到哪一个节点。A-Star算法公式如下:f (n) = g (n) +h (η)(I)其中,f (η)是节点η从初始节点到目标节点的估价函数,g (η)是在状态空间中从初始节点到节点η的实际代价,h(n)是从节点η到目标节点最佳路径的估计代价。上述g(n)和h(n)可以是自定义函数,具体可以根据节点η与初始节点和目标节点的距离来计算,也可以根据节点η的权值来计算。现有技术中,寻路过程如下:如图2所示,根据上面的公式⑴。g(sl) g(s8)都为1,即A点到达节点si s8的实际代价都为1,但是h(sl) h(s8)中,显然节点s4距离D点的直线距离比其他7个节点都要短,所以节点s4是所有八个节点中代价最小的。节点s4从初始节点到目标节点的估价函数为: f (s4) = g(s4)+h(s4) = 1+h (s4) (2)经过这样一轮的计算后,系统会选择节点s4作为下一步要到达的点。同理,对于节点s4,系统同样需要遍历它周围的八本文档来自技高网
...

【技术保护点】
一种最优路径搜索方法,其特征在于,包括:设置地图中角色可以通过的节点的权值;在进行最优路径搜索时,遍历当前节点周围的相邻节点,并根据所述相邻节点的权值计算所述相邻节点从初始节点到目标节点的估计代价;选取所述相邻节点中估计代价最小的一个节点作为所述最优路径的下一个节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:高经纬
申请(专利权)人:北京金山软件有限公司北京金山数字娱乐科技有限公司
类型:发明
国别省市:

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

1