本文中的图全部来自:

https://mohitsharma0690.blogspot.com/2016/01/hierarchical-pathfinding.html

图的说明:

Here is an example of how clusters are created in an open space environment. The white squares represent walkable grids. Non-walkable grid spaces are marked with black (missing here). The nodes marked as grey are part of the abstract graphs. The red lines are the edges in the abstract graph. All of the edges are bidirectional.

使用A* 算法的效果图,从红色点到绿色点寻找路径:

使用HPA* 算法后寻找路径的效果图:

我们可以看到,最后的HPA* 寻找路径一定在红色线上(不同块之间的路径一定在红色线上,也就是黄色路径一定和部分红色线重合,启始块和目标块的内部路径不在红色线上,这里的分割块就是算法描述中的cluster)

要知道这样一个问题,如果cluster分割块的size过大,也就是分割块过多的情况下,那么HPA* 的寻找路径一定和A* 算法的寻找路径有较大的不同,根据上图我们可以看到,如果红色的网格过于稀疏那么HPA* 算法的黄色线由于必须和部分红色线重合,因此会和原始的A* 算法的黄色线有较大的差别。

但是,如果cluster的size过小,也就是分割块过多,那么必然增加整体的运算时间,降低运算效率。

在文章最后给出了下面的一个寻路图:(复杂难度的)

在上图中使用HPA* 算法是难以获得A* 算法相类似的路径的。

在寻路难度较大的问题,如复杂的迷宫问题,HPA* 的性能有可能没有A* 算法的高。

HPA* (Near Optimal hierarchical Path-finding)算法的效果图的更多相关文章

  1. Proof for Floyd-Warshall's Shortest Path Derivation Algorithm Also Demonstrates the Hierarchical Path Construction Process

    (THIS BLOG WAS ORIGINALLY WRTITTEN IN CHINESE WITH LINK: http://www.cnblogs.com/waytofall/p/3732920. ...

  2. [MIT6.006] 1. Algorithmic Thinking, Peak Finding 算法思维,峰值寻找

    [MIT6.006] 系列笔记将记录我观看<MIT6.006 Introduction to Algorithms, Fall 2011>的课程内容和一些自己补充扩展的知识点.该课程主要介 ...

  3. AOJ GRL_1_C: All Pairs Shortest Path (Floyd-Warshall算法求任意两点间的最短路径)(Bellman-Ford算法判断负圈)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_C All Pairs Shortest Path Input ...

  4. HDU4889 Scary Path Finding Algorithm

    Fackyyj loves the challenge phase in TwosigmaCrap(TC). One day, he meet a task asking him to find sh ...

  5. HDU 4889 Scary Path Finding Algorithm

    其实这个题是抄的题解啦…… 题解给了一个图,按照那个图模拟一遍大概就能理解了. 题意: 有一段程序,给你一个C值(程序中某常量),让你构造一组数据,使程序输出"doge" 那段代码 ...

  6. 【转载】 A* 寻路算法 (个人认为最详细,最通俗易懂的一个版本)

    原文地址: http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html =============================== ...

  7. A* 寻路算法[转载]

    A* 寻路算法 转载地址:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html 原文地址: http://www.gamedev ...

  8. neo4j算法(1)-介绍

    neo4j为图数据库,其中涉及的也就为图算法,图算法被用来度量图形,节点及关系. 在neo4j中,通过call algo.list() 可查看neo4j中的算法列表. 在neo4j官方文档中,主要记录 ...

  9. 【最短路径Floyd算法详解推导过程】看完这篇,你还能不懂Floyd算法?还不会?

    简介 Floyd-Warshall算法(Floyd-Warshall algorithm),是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似.该算法名称以 ...

  10. js图的数据结构处理---弗洛伊德算法

    function Graph() { this.graph = [ [0, 2, 4, 0, 0, 0], [0, 0, 1, 4, 2, 0], [0, 0, 0, 0, 3, 0], [0, 0, ...

随机推荐

  1. C#.NET与JAVA互通之AES加密解密V2024

    C#.NET与JAVA互通之AES加密解密V2024 视频: 注意点: 1. KEY 和 IV 从字符串转byte数组时,双方要约定好编码,一般是UTF8. 2.明文从字符串转byte数组时,双方要约 ...

  2. EF 结合 PagingModel

    PagingModel pagingModel using (var db = new PayLogDbContext()) { var data = db.Database.Query<Mer ...

  3. MAPJOIN中无法使用UDF

    今天在写SQL时,遇到了一个异常,提示semantic exception generate map join error unable to find class,udf编写的没毛病,其他SQL也有 ...

  4. StringRedisHelper

    @Slf4j @Service public class StringRedisHelper { private StringRedisTemplate redisTemplate; @Autowir ...

  5. java8 多条件的filter过滤

    java8 多条件的filter过滤 package com.example.core.mydemo.java; import java.io.Serializable; import java.ti ...

  6. OOM异常的4种可能分析及常见的OOM异常演示

    OOM异常的4种可能分析及常见的OOM异常演示 OOM异常: OutOfMemoryError 1.JAVA堆溢出JAVA堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到这些对象之间 ...

  7. int类型在接收null会报错,需要使用Java包装类型Integer,且Integer不能equal String字符串

    int类型在接收null会报错,需要使用Java包装类型Integer,且Integer不能equal String字符串 package com.example.core.mydemo.json2; ...

  8. Pycharm或cmd在Terminal中运行tensorboard、pip等python包

    这个主要是添加python包的路径到环境变量里 因为装了anaconda,所以我们要找的是对应虚拟环境里的包路径,一般是放在anaconda安装路径下的anaconda3\envs\环境名\Scrip ...

  9. opc da 服务器数据 转 profinet IO项目案例

    1         案例说明 1.   在OPC DA服务器上运行OPC DA client软件查看OPC DA服务器的相关参数. 2.   配置VFBOX网关参数,使用网关采集OPC DA服务器数据 ...

  10. DotNetGuide专栏C#/.NET/.NET Core充电站(让你学习不迷路)

    DotNetGuide简介 记录.收集和总结C#/.NET/.NET Core基础知识.学习路线.开发实战.编程技巧练习.学习视频.文章.书籍.项目框架.社区组织.开发必备工具.常见面试题.面试须知. ...