A* is less useful when you're not omniscient, that is, testing if a cell is blocked has a sensing cost. I ran into this in a game application. To find out if a cell is obstructed, I have to do a ray cast at a few points in the cell, which uses resources. A* requires sensing a large number of cells to collect non-useful data, and if you have a big, mostly open space with some obstacles, like the real world, it does fa…
- build a graph of connectivity of all areas of the map OFFLINE
- make sure that graph also has information about disconnected components and never apply A* to points which are disconnected from each other
Do A* on that graph.