At the N+1 level -- the algorithm is the same. You have a map from (source, destination) to (hint, hint_cost, cost), which provides you the cost and the next step that is ideal. If the ideal route is inside the N-level node, the N+1 level will tell you.
..
A 2^N square has (2^N by 2^N) nodes: each cartesian coordinate in the 2^N square is a node. By "node" I mean "smallest pathing element" -- in a tile game, that would be a tile. In a continuous game, it would be the pathing grain-size.
The "edge sections" of a 2^N square are the (graph-theoretic) edges connecting the nodes on the surface of the 2^N square to nodes outside of the 2^N square. They are also sections of the "edge" of the 2^N square, hence "edge section".
The "fold sections" of a 2^N square are the (graph-theoretic) edges connecting the contained 2^(N-1) sub-squares between each other. If you folded the 2^N square into half twice, the folds are where you would tend to naturally fold. They are the edges of the sub-squares that aren't also edges of the square. :)
edge | \.//----------------\ -| . | || . |<--- edge || . | || . | ||................| | 2^N distance| . /^\ | || fold->. | | || . fold |<--- edge || . | |\----------------/ - /^\ | edge|----------------| 2^N distance
The trick is that the complete information to get from any of the edges or folds to any of the other edges are folds is encoded in the pre-calculated data.
It isn't A*: there is no heuristic function, which is what makes A* different than a completely blind search.
A*, or an A* like algorithm, might be needed to get from (interior) to (edge) of a 2^N graph. So maybe this ends up being A* in the end. :)
But I think I can get a sufficiently accurate list of "cost to get to the edges of a graph" at the 2^N level in O((2^N)^2) time and O(2^N) space without using A*. Do this at both ends, and you can stitch them together in 36 4^N steps (or O((2^N)^2))).
2^N is at most twice the distance between the source and dest -- so I have O(distance^2) time and O(distance) space to hook together arbitrary points, and I never call a heuristic function... (note that this might require a post-process of O(path length) to find the details of the path -- two points 2 units apart
could have a path that is a million units long -- this algorithm separates calculating the cost to get to the destination and the details actual path: but it does let you calculate the path piece-meal, and avoid having to do the entire path to figure out the first step).
What I'm looking for is ways to improve this quadratic score, or otherwise improve the algorithm, or get a name for it.
The pre-work building the 2^N squares doesn't store an approximation of the cost: it has to pre-solve all of the (edge|fold)-to-(edge|fold) paths. This is hard (as noted, O(nodes^3) time O(nodes(?)) space is one solution).
So I don't think this is quite A* -- but maybe it is equivalent to hierarchical A* in some way (or maybe just inferior!). Do you have a link to a good description of hierarchical A*
Am I making sense? :)