Jump Point Search - Improved A *, based on some conditions on the chart. Thus, if you comply with these conditions (basically a grid with a total cost), JPS is strictly better than A * (the same optimality, the best cases can be orders of magnitude better and worse, probably the same complexity, but with a little worse), but if you do not meet the conditions, you cannot use it.
Improving JPS over A * is basically, if you have a chart with a single cost function (it costs the same to go from A to B and from B to C, in the same direction), you can skip some steps in some cases and go directly from A to C without expanding nodes in B.
JPS is a cropping method over A *, you delete cases that you do not need to evaluate because you know that they will be suboptimal. You know this because of the state of the grid with uniform cost.
Conceptually, this is equivalent to using A * on a non-uniform grid, where neighboring nodes represent how far you can go in this direction, without encountering an obstacle, with the cost of the jump that you performed. So, if you can go 10 nodes to the right without encountering obstacles, you can reduce this (or go directly) to one node with a cost of 10 * c, where c is the (constant) cost of switching from one node to another on the right.
Original paper can be found here.
Leherenn
source share