Synonyms
Definition
Dynamic Programming (DP) is a paradigm used in algorithms for solving optimization problems. It relies on the construction of nested subproblems such that the solution of the main problem can be obtained from the solutions of the subproblems.
Background
The paradigm was introduced by the mathematician Richard Bellman in the 1940s and applied in control theory [1].
Theory
The applicability of the paradigm relies on the following two assumptions:
-
Optimal substructure means that a system of nested subproblems can be constructed in such a way that the solution of the main problem can be obtained from the solutions of these subproblems.
-
Overlapping subproblems means that the smaller subproblems in the next level are only slightly smaller and moreover the set of these subproblems is small as well. This distinguishes DP from “divide and conquer” methods.
The method starts by solving the smallest subproblems directly. The obtained results are stored and...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bellman R (2003) Dynamic programming. Dover, Mineola
Denardo EV (2003) Dynamic programming: models and applications. Dover, Mineola
Sniedovich M (2010) Dynamic programming: foundations and principles. Taylor and Francis, Boca Raton
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer Science+Business Media New York
About this entry
Cite this entry
Flach, B., Hlavac, P.V. (2014). Dynamic Programming. In: Ikeuchi, K. (eds) Computer Vision. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-31439-6_690
Download citation
DOI: https://doi.org/10.1007/978-0-387-31439-6_690
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-30771-8
Online ISBN: 978-0-387-31439-6
eBook Packages: Computer ScienceReference Module Computer Science and Engineering