Faster pathfinding using Jump Point Search
harablog.wordpress.com
harablog.wordpress.com
How useful are uniform-cost grids? Every implementation of A* I've ever used has been applied to varying-cost grids.
Seeing the permutation property isn't straightforward until you change your definition of a path: from an ordered sequence of edges to an ordered sequence of vectors.
Take the following two paths as examples:
p1 = {up, up, up, right, right, right} p2 = {up, right, up, right, up, right}
Not only are they equivalent but I can derive one from the other by just changing the order of the moves.
Such symmetries are plentiful on grid maps: as soon as you have a large open area, you introduce lots of possible ways to cross it.
It's a graph search. Imagine adding an out-of-plane edge that travels from behind the starting point to the goal. Since taming that path could be optimal it has to check - it doesn't attempt to reason that such a path would necessarily be obstructed by what's been explored thus far. It's just a graph search.
Swamps is a nice technique for narrowing the scope of the current search; it achieves ~5x maximum speedup and could be combined with Jump Point Search to go faster still.
The comparison to HPA is summarised in the article. Additional evaluations are the subject of further work :)