Hi, great library, clean approach! However, I have a couple of suggestions
-
Introduce memoization for find_all_solutions. While thinking about other problems, I've found that if next_state function can return the same result for two different inputs (that is if next_state is not bijection), a lot of solutions will be recomputed. It would be nice if this solver could store the %{state => next_state(state)} kind of map to avoid recomputations
-
find_all_solutions function is craving for parallelization.
-
Minor, it would be nice if you could remove examples from lib, so that they won't be loaded into runtime of the program which uses this dependency
Hi, great library, clean approach! However, I have a couple of suggestions
Introduce memoization for
find_all_solutions. While thinking about other problems, I've found that ifnext_statefunction can return the same result for two different inputs (that is ifnext_stateis not bijection), a lot of solutions will be recomputed. It would be nice if this solver could store the%{state => next_state(state)}kind of map to avoid recomputationsfind_all_solutionsfunction is craving for parallelization.Minor, it would be nice if you could remove examples from
lib, so that they won't be loaded into runtime of the program which uses this dependency