A collection of search algorithms for teaching and experimenting.
There’s a heavy separation of concerns which leads to many tiny classes with a small scope. The library might be a bit overwhelming and seem to be an overkill, but it should allow us to solve many different problems with many algorithms to better understand their behavior.
There’s a generic
SearchAlgorithm implementation that can be extended to implement (graph)-DFS, BFS, Dijkstra’s Algorithm, A*. Currently only DFS and BFS are implemented.
Space, PredefinedSpace, RandomAccessSpace, Problem
Node, SearchAlgorithm, Open
class Board2D(Space, PredefinedSpace, RandomAccessSpace)
- main.py: Has a super simple benchmark.