Hello,
Few days ago I came across this article that talks about Hierarchical Pathfinding [1] [2] and how it can reduce the time it's taken to find a path between two points in a large map by deviding that map into 5x5 chunks and connecting each chunk together. So all you have to do is find the path in that 5x5 chunks and move to the other chunk. At least that's what I understood.
I have had an idea like that a few months back when I was trying to optimize my A* algorithm, but then I found Min Heap algorithm. So I went ahead and implemented that instead. That made all the difference in the world. However my question now is, will there be any further performance improvement implementing Hierarchical Pathfinging algorithm on top of what I have already done using Min Heap? I'm sure there will be but will it be worth the effort?
Keep in mind I'm using a very large maps. Something like 1024x1024 (1,048,576) Nodes. Min Heap already reduced the time taken to find a path a great deal.
Before implementing Min Heap it took to find a path with a map size of 1024x1024 around 15,900ms (diagonal movment not allowed)
After implementing Min heap it is now taking around 908ms to find a path. (diagonal movment not allowed) and 189ms with diagonal movment allowed.
do you think implementing Hierarchical Pathfinding will drop that further by a large margin? Do you think this is a good way to speed up A* even further? do you have an alternative ideas?