Daniel Harabor
>>
Projects
>>
Pathfinding

Pathfinding is the problem of navigating from one place to another. My research in this area is primarily focused on single-agent pathfinding problems where the world is represented as a static 2-dimensional grid. This is a common setting which appears in many application areas including logistics, robotics and video games.

Goals

The principal aim of this project is to improve the state-of-the-art in pathfinding by developing algorithms which are fast, require little memory and produce optimal or near-optimal solutions.

Main Result

Together with my co-authors I have developed several innovative algorithms for efficiently solving a range of common pathfinding problems.
  • Jump Point Search (JPS) is the state-of-the-art in graph pruning for grid maps. It speeds up pathfinding by very selectively expanding only certain nodes on the way to the goal. JPS is fast, optimal and requires no pre-processing or extra memory. It can consistently speed up a classical search algorithm such as A* by an order of magnitude and more on a range of synthetic and realistic maps.
  • Rectangular Symmetry Reduction (RSR) is a graph pruning technique which speeds up search by identifying and eliminating symmetries in a grid map. RSR is fast, optimal and requires very little extra memory.
  • Hierarchical Annotated A* (HAA*) is a near-optimal pathfinding technique applicable to scenarios involving multi-size agents navigating across multi-terrain grid maps.

Resources

Jump Point Search is described in the following papers:
D. Harabor and A. Grastien. 2011. Online Graph Pruning for Pathfinding on Grid Maps. In Proceedings of the 25th National Conference on Artificial Intelligence (AAAI), San Francisco, USA.
(pdf)

D. Harabor and A. Grastien. Improving Jump Point Search. Pathfinding Algorithm. 2014. In Proceedings of the 24th International Conference on Automated Planning and Scheduling (ICAPS). Portsmouth (NH), USA.
(pdf)

This poster gives an overview of the main idea behind RSR. The following subsequent papers expand and improve on that idea:
D. Harabor, A. Botea and P. Kilby. 2011. Path Symmetries in Uniform-cost Grid Maps. In Proceedings of the Symposium on Abstraction Reformulation and Approximation (SARA), Barcelona, Spain.
(pdf)

D. Harabor, A. Botea. 2010. Breaking Path Symmetries in 4-connected Grid Maps. In Proceedings of the AI and Interactive Digital Entertainment Conference (AIIDE-2010), Stanford University, Palo Alto, CA, USA.
(pdf)

HAA* is introduced in the following industry and conference articles:

D. Harabor. 2009. Clearance-based Pathfinding and Hierarchical Annotated A* Search. In AiGameDev.com.
(pdf)

D. Harabor, A. Botea. 2008. Hierarchical Path Planning with Multi-Size Agents in Heterogenous Environments. In the IEEE Symposium on Computational Intelligence and Games (CIG-08). Also, in the ICAPS-08 Workshop KEPS-08.
(pdf)

Source Code

The source code for HAA* is available here (Mac OSX).
The source code for Jump Point Search is available here (Mac OSX).