Description
Pragmatic framework for dynamic programming.
Description
This module provides a simple declarative framework for dynamic programming optimization. Users specify a dynamic programming problem as a simple haskell function that looks very similar to mathematical recursion used in texts. The specification is then translated into a form that can be solved efficiently by a modular solver. Includes solvers using memoization, strict and lazy ordered tables, and recursion with a range of data structures for the underlying table. This method also separates processing steps like pruning and debugging from the recursion itself, and this package contains preliminary tools for beam search and tracing.