Synonyms
Related Concepts
Definition
Dynamic programming 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 mean 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...
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
Section Editor information
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this entry
Cite this entry
Flach, B., Hlavac, V. (2020). Dynamic Programming. In: Computer Vision. Springer, Cham. https://doi.org/10.1007/978-3-030-03243-2_690-1
Download citation
DOI: https://doi.org/10.1007/978-3-030-03243-2_690-1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03243-2
Online ISBN: 978-3-030-03243-2
eBook Packages: Springer Reference Computer SciencesReference Module Computer Science and Engineering