Definition
Dynamic programming is a method for modeling a sequential decision process in which past decisions impact future possibilities. Decisions can be made at fixed discrete time intervals or at random time intervals triggered by some change in the system. The decision process can last for a finite period of time or run indefinitely – depending on the application. Each time a decision needs to be made, the decision-maker (referred to as “he” in this entry with no sexist connotation intended) views the current state of the system and chooses from a known set of possible actions. As a result of the state of the system and the action chosen, the decision-maker receives a reward (or pays a cost) and the system evolves to a new state based on known probabilities. The challenge faced by the decision-maker is to choose a sequence of actions that will lead to the greatest reward over the length of the decision-making horizon. To do this, he needs to consider not only the current reward...
Recommended Reading
Bertsekas D (2000) Dynamic programming and optimal control. Athena Scientific, Belmont
Bertsekas D, Tsitsiklis J (1996) Neuro-dynamic programming. Athena Scientific, Belmont
Feinberg E, Shwartz A (2002) Handbook of Markov decision processes. Kluwer Academic, Boston
Puterman M (1994) Markov decision processes. Wiley, New York
Sutton R, Barto A (1998) Reinforcement learning. MIT, Cambridge
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
Puterman, M.L., Patrick, J. (2014). Dynamic Programming. In: Sammut, C., Webb, G. (eds) Encyclopedia of Machine Learning and Data Mining. Springer, Boston, MA. https://doi.org/10.1007/978-1-4899-7502-7_77-1
Download citation
DOI: https://doi.org/10.1007/978-1-4899-7502-7_77-1
Received:
Accepted:
Published:
Publisher Name: Springer, Boston, MA
Online ISBN: 978-1-4899-7502-7
eBook Packages: Springer Reference Computer SciencesReference Module Computer Science and Engineering