design, solve and estimate discrete dynamic programs.