Changes

Jump to: navigation, search

Dynamic Programming

12,136 bytes added, 09:24, 19 May 2018
Created page with "'''Home * Programming * Algorithms * Dynamic Programming''' '''Dynamic Programming''', (DP)<br/> a mathematical, algorithmic optimization method of Re..."
'''[[Main Page|Home]] * [[Programming]] * [[Algorithms]] * Dynamic Programming'''

'''Dynamic Programming''', (DP)<br/>
a mathematical, algorithmic optimization method of [[Recursion|recursively]] nesting [https://en.wikipedia.org/wiki/Overlapping_subproblems overlapping sub problems] of [https://en.wikipedia.org/wiki/Optimal_substructure optimal substructure] inside larger decision problems. The term DP was coined by [[Richard E. Bellman]] in the 50s not as programming in the sense of producing computer code, but mathematical programming, planning or optimization similar to [https://en.wikipedia.org/wiki/Linear_programming linear programming], devoted to the study of multistage processes. These processes are composed of sequences of operations in which the outcome of those preceding may be used to guide the course of future ones <ref>[[Richard E. Bellman]] ('''1953'''). ''[http://www.rand.org/pubs/reports/R245.html An Introduction to the Theory of Dynamic Programming]''. R-245, [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation]</ref>.

=DP in Computer Chess=
In computer chess, dynamic programming is applied in [[Depth-First|depth-first]] [[Search|search]] with [https://en.wikipedia.org/wiki/Memoization memoization] aka using a [[Transposition Table|transposition table]] and/or other [[Hash Table|hash tables]] while traversing a [[Search Tree|tree]] of overlapping sub problems aka child positions after making a move by one side in top-down manner, gaining from stored [[Chess Position|positions]] of sibling subtrees due to [[Transposition|transpositions]] and/or common aspects of positions, in particular effective inside an [[Iterative Deepening|iterative deepening]] framework. Another approach of dynamic programming in computer chess or computer games is the application of [[Retrograde Analysis|retrograde analysis]], to solve a problem by solving subproblems in bottom-up manner starting from terminal nodes <ref>[[Richard E. Bellman]] ('''1965'''). ''[http://www.rand.org/pubs/papers/P3013/ On the Application of Dynamic Programming to the Determination of Optimal Play in Chess and Checkers].'' [https://en.wikipedia.org/wiki/Proceedings_of_the_National_Academy_of_Sciences_of_the_United_States_of_America PNAS]</ref>.

=See also=
* [[Michael L. Littman#MarkovModels|Markov Models]] by [[Michael L. Littman]]
* [[Reinforcement Learning]]
* [[Temporal Difference Learning]]

=Selected Publications=
==1953 ...==
* [[Richard E. Bellman]] ('''1953'''). ''[http://www.rand.org/pubs/reports/R245.html An Introduction to the Theory of Dynamic Programming]''. R-245, [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation]
* [[Richard E. Bellman]] ('''1954'''). ''The Theory of Dynamic Programming''. P-550, [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation], [http://www.rand.org/content/dam/rand/pubs/papers/2008/P550.pdf pdf]
* [[Richard E. Bellman]] ('''1954'''). ''On a new Iterative Algorithm for Finding the Solutions of Games and Linear Programming Problems''. Technical Report P-473, [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation], U. S. Air Force Project RAND
* [[Mathematician#SKarlin|Samuel Karlin]] ('''1955'''). ''[http://onlinelibrary.wiley.com/doi/10.1002/nav.3800020408/abstract The Stucture of Dynamic Programming Models]''. [https://en.wikipedia.org/wiki/Naval_Research_Logistics Naval Research Logistics], Vol. 2
* [[Richard E. Bellman]] ('''1957'''). ''Dynamic Programming''. [https://en.wikipedia.org/wiki/Princeton_University_Press Princeton University Press]
* [[Richard E. Bellman]] ('''1958'''). ''[http://www.sciencedirect.com/science/article/pii/S0019995858800030 Dynamic Programming and Stochastic Control Processes]''. [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation], [https://en.wikipedia.org/wiki/Santa_Monica,_California Santa Monica, CA], [http://www.sciencedirect.com/science/journal/00199958/1/3 Information and Control 1]
==1960 ...==
* [[Richard E. Bellman]] ('''1960'''). ''[http://dl.acm.org/citation.cfm?id=321011 Sequential Machines, Ambiguity, and Dynamic Programming]''. [[ACM#Journal|Journal of the ACM]], Vol. 7, No. 1
* [[Mathematician#RAHoward|Ronald A. Howard]] ('''1960'''). ''Dynamic Programming and Markov Processes''. [https://en.wikipedia.org/wiki/MIT_Press MIT Press], [https://www.amazon.com/Programming-Processes-Technology-Research-Monographs/dp/0262080095 amazon] <ref>[https://en.wikipedia.org/wiki/Markov_chain Markov chain from Wikipedia]</ref>
* [[Richard E. Bellman]], [[Mathematician#SEDreyfus|Stuart E. Dreyfus]] ('''1962'''). ''Applied Dynamic Programming''. [https://en.wikipedia.org/wiki/RAND_Corporation RAND Corporation], [https://en.wikipedia.org/wiki/Princeton_University_Press Princeton University Press], [https://www.rand.org/content/dam/rand/pubs/reports/2006/R352.pdf pdf]
* [[Richard E. Bellman]] ('''1962'''). ''[http://dl.acm.org/citation.cfm?id=321111 Dynamic Programming Treatment of the Travelling Salesman Problem]''. [[ACM#Journal|Journal of the ACM]], Vol. 9, No. 1, [http://www.akira.ruc.dk/~keld/teaching/algoritmedesign_f08/Artikler/05/Bellman61.pdf 1961 pdf preprint]
* [[Mathematician#DHBlackwell|David Blackwell]] ('''1962'''). ''[https://projecteuclid.org/euclid.aoms/1177704593 Discrete Dynamic Programming]''. [https://en.wikipedia.org/wiki/Annals_of_Mathematical_Statistics Annals of Mathematical Statistics], Vol. 33, No. 2
* [[Richard E. Bellman]] ('''1965'''). ''[http://www.rand.org/pubs/papers/P3013/ On the Application of Dynamic Programming to the Determination of Optimal Play in Chess and Checkers].'' [https://en.wikipedia.org/wiki/Proceedings_of_the_National_Academy_of_Sciences_of_the_United_States_of_America PNAS]
* [[Mathematician#DHBlackwell|David Blackwell]] ('''1965'''). ''[https://projecteuclid.org/euclid.aoms/1177700285 Discounted Dynamic Programming]''. [https://en.wikipedia.org/wiki/Annals_of_Mathematical_Statistics Annals of Mathematical Statistics], Vol. 36, No. 1 <ref>[http://users.stat.umn.edu/~sudde001/personal_page/DBDP.pdf David Blackwell and Dynamic Programming] (pdf) by [[Mathematician#WSudderth|William Sudderth]]</ref>
* [[Mathematician#DHBlackwell|David Blackwell]] ('''1967'''). ''[https://projecteuclid.org/euclid.bsmsp/1200513001 Positive Dynamic Programming]''. [https://projecteuclid.org/euclid.bsmsp/1200512974 Proc. 5th Berkeley Symposium on Mathematical Statistics and Probability]
==1970 ...==
* [[Mathematician#DHBlackwell|David Blackwell]] ('''1976'''). ''[https://projecteuclid.org/euclid.aos/1176343412 The Stochastic Processes of Borel Gambling and Dynamic Programming]''. [https://en.wikipedia.org/wiki/Annals_of_Statistics Annals of Statistics], Vol. 4, No. 2
* [[Mathematician#SEDreyfus|Stuart E. Dreyfus]], [http://www.averill-law.com/about/ Averill M. Law] ('''1977'''). ''[http://dl.acm.org/citation.cfm?id=578655 Art and Theory of Dynamic Programming]''. [https://en.wikipedia.org/wiki/Academic_Press Academic Press]
* [[Mathematician#SEShreve|Steven E. Shreve]], [[Mathematician#DBertsekas|Dimitri Bertsekas]] ('''1979'''). ''[http://pubsonline.informs.org/doi/abs/10.1287/moor.4.1.15?journalCode=moor Universally Measurable Policies in Dynamic Programming]''. [https://en.wikipedia.org/wiki/Mathematics_of_Operations_Research Mathematics of Operations Research], Vol. 4, No. 1
==1990 ...==
* [[Mathematician#DBertsekas|Dimitri Bertsekas]] ('''1996, 2017'''). ''[http://www.athenasc.com/dpbook.html Dynamic Programming and Optimal Control]''. [http://www.athenasc.com/index.html Athena Scientific]
==2000 ...==
* [[Mathematician#DBertsekas|Dimitri Bertsekas]] ('''2001'''). ''Neuro-Dynamic Programming: An Overview''. [http://link.springer.com/referencework/10.1007%2F0-306-48332-7 Encyclopedia of Optimization], [http://web.mit.edu/people/dimitrib/NDP_Encycl.pdf pdf], [http://www.math.s.chiba-u.ac.jp/~yasuda/open2all/Neuro/NDP_Overview.pdf slides as pdf]
* [[Mathematician#SEDreyfus|Stuart E. Dreyfus]] ('''2002'''). ''Richard Bellman on the Birth of Dynamic Programming''. [https://en.wikipedia.org/wiki/Operations_Research:_A_Journal_of_the_Institute_for_Operations_Research_and_the_Management_Sciences Operations Research], Vol. 50, No. 1, [http://www.cas.mcmaster.ca/~se3c03/journal_papers/dy_birth.pdf pdf]
* [[Richard E. Bellman]] ('''2003'''). ''[http://dl.acm.org/citation.cfm?id=862270 Dynamic Programming]''. [https://en.wikipedia.org/wiki/Dover_Publications Dover Publications]
* [[Mathematician#SDasgupta|Sanjoy Dasgupta]], [[Mathematician#CHPapadimitriou|Christos H. Papadimitriou]], [[Mathematician#UVVazirani|Umesh Vazirani]] ('''2006'''). ''[http://www.cs.berkeley.edu/%7Evazirani/algorithms.html Algorithms]''. [https://en.wikipedia.org/wiki/McGraw-Hill McGraw-Hill], [https://people.eecs.berkeley.edu/~vazirani/algorithms/chap6.pdf Chapter 6 Dynamic programming] (pdf)
* [[Sylvain Gelly]], [[Jérémie Mary]], [[Olivier Teytaud]] ('''2006'''). ''Learning for stochastic dynamic programming''. [http://www.lri.fr/%7Egelly/paper/lfordp.pdf pdf], [http://www.grappa.univ-lille3.fr/~mary/paper/lfordp.pdf pdf]
* [[Sylvain Gelly]], [[Olivier Teytaud]], [[Jérémie Mary]] ('''2007'''). ''Active learning in regression, with application to stochastic dynamic programming''. ICINCO and CAP, 2007, [http://www.grappa.univ-lille3.fr/~mary/paper/ldsfordp.pdf pdf]
* [http://dblp.uni-trier.de/pers/hd/p/Powell:Warren_B= Warren B. Powell] ('''2007'''). ''Approximate Dynamic Programming - Solving the Curses of Dimensionality''. [https://en.wikipedia.org/wiki/John_Wiley_%26_Sons Wiley]
==2010 ...==
* [[Richard E. Bellman]] ('''2010'''). ''[http://press.princeton.edu/titles/9234.html Dynamic Programming]''. With a new introduction by [[Mathematician#SEDreyfus|Stuart E. Dreyfus]], [https://en.wikipedia.org/wiki/Princeton_University_Press Princeton University Press]
* [[Rémi Munos]] ('''2010'''). ''Approximate dynamic programming''. In [http://www.isir.upmc.fr/?op=view_profil&id=28&old=N&lang=en Olivier Sigaud] and [http://www.loria.fr/~buffet/ Olivier Buffet], editors, [http://eu.wiley.com/WileyCDA/WileyTitle/productCd-1848211678.html Markov Decision Processes in Artificial Intelligence], chapter 3, ISTE Ltd and [http://eu.wiley.com/WileyCDA/ John Wiley & Sons Inc.], [http://researchers.lille.inria.fr/~munos/papers/files/MDPIA_chap3.pdf pdf]
* [http://dblp.uni-trier.de/pers/hd/p/Powell:Warren_B= Warren B. Powell] ('''2011'''). ''[http://adp.princeton.edu/ Approximate Dynamic Programming - Solving the Curses of Dimensionality]''. 2nd edition, [https://en.wikipedia.org/wiki/John_Wiley_%26_Sons Wiley]
* [[Mathematician#DBertsekas|Dimitri Bertsekas]] ('''2013'''). ''[http://www.athenasc.com/abstractdp.html Abstract Dynamic Programming]''. [http://www.athenasc.com/index.html Athena Scientific]
* [[Richard E. Bellman]], [[Mathematician#SEDreyfus|Stuart E. Dreyfus]] ('''2015'''). ''[http://press.princeton.edu/titles/100.html Applied Dynamic Programming]''. [https://en.wikipedia.org/wiki/Princeton_University_Press Princeton University Press]

=External Links=
* [https://en.wikipedia.org/wiki/Dynamic_programming Dynamic programming from Wikipedia]
: [https://en.wikipedia.org/wiki/Dynamic_programming#Algorithms_that_use_dynamic_programming Algorithms that use dynamic programming]
* [https://en.wikipedia.org/wiki/Bellman_equation Bellman equation from Wikipedia]
* [https://en.wikibooks.org/wiki/Algorithms/Dynamic_Programming Algorithms/Dynamic Programming - Wikibooks]
* [https://en.wikipedia.org/wiki/Stochastic_dynamic_programming Stochastic dynamic programming from Wikipedia]
* [https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/ Dynamic Programming – From Novice to Advanced – topcoder]
* [https://www.codechef.com/wiki/tutorial-dynamic-programming Tutorial for Dynamic Programming | CodeChef]
* [http://www.geeksforgeeks.org/category/dynamic-programming/ Dynamic Programming Archives - GeeksforGeeks]
* [https://people.cs.clemson.edu/~bcdean/dp_practice/ Dynamic Programming Practice Problems]

=References=
<references />

'''[[Algorithms|Up one Level]]'''

Navigation menu