I mean why should we use such epic buzzword when you can say: "cache your results!".
-
1$\begingroup$ I think that you will find that caching one's result is necessary but not sufficient to implement dynamic programming. $\endgroup$– Shawn MehanCommented Nov 19, 2015 at 18:08
-
$\begingroup$ A buzzword way would be dynamic programming is induction, memoizing is recursion. $\endgroup$– AProgrammerCommented Nov 19, 2015 at 19:23
-
$\begingroup$ @AProgrammer What's the difference between induction and recursion? $\endgroup$– David RicherbyCommented Nov 19, 2015 at 19:46
-
1$\begingroup$ @DavidRicherby, It's the same journey, just going in opposite directions. $\endgroup$– AProgrammerCommented Nov 19, 2015 at 20:43
-
$\begingroup$ possible duplicate: cs.stackexchange.com/q/47216/755. (See also cs.stackexchange.com/q/17871/755 and cstheory.stackexchange.com/q/5635/5038 for more about the history of the name.) $\endgroup$– D.W. ♦Commented Nov 20, 2015 at 9:18
1 Answer
There are some other key aspects of dynamic programming besides caching, namely, it is about writing solutions of optimization problems recursively to exploit the fact that optimal solutions are constructed out of optimal solutions to subproblems, and further that caching limits the number of recursive calls to the maximum number of distinct subproblems that need to be solved.
Also, dynamic programming is not so much a formalism, as an intuitive framework for solving many optimization problems recursively.
Further, the use of such an "epic buzzword" is largely the result of brilliant marketing by Richard Bellman...