Implementation of A*, DFS and other search algorithms with a generic interface to allow the specification of an arbitrary problem.