In computer science, dynamic programming (
short:
DP) is a method for reducing the runtime of algorithms exhibiting the properties of overlapping subproblems and optimal substructure.
Mathematician Richard Bellman invented dynamic programming in 1953. The
field was founded as a systems analysis and engineering topic which is recognized by the IEEE.