This PR introduces implementations of Dijkstra's algorithm and A for path finding on map graphs. In general, A should be used to reduce computation time. The heuristic used for A* is octile distance.
Limitations
No benchmarking has been performed yet. Is heuristic computation slow? Do multiple hash tables incur a significant runtime penalty?
Both search algorithms seem to run quickly. They are probably not going to be computational bottlenecks in the full system.
Global search does not take clearance into account. Paths tend to run very close to wall endings.
Search algorithms do not implement any tie-breaking.
Summary
This PR introduces implementations of Dijkstra's algorithm and A for path finding on map graphs. In general, A should be used to reduce computation time. The heuristic used for A* is octile distance.
Limitations
Closes #61