Dynamic Programming (DP) is a funny term. It was named as such to avoid enraging a former Secretary of Defense, and the name has stuck ever since.

Essentially, there’s nothing dynamic about it. DP can simply be categorized as an algorithmic strategy where one breaks down a single problem into sub-problems. By solving each sub-problem, the algorithm gets closer and closer to solving the original problem. After solving all of the sub-problems, the answer to the original problem is found.

Experienced readers will most likely think that this definition is very close to the idea of recursion — it definitely is, and most problems that employ a DP solution can be solved with recursion.

For the purposes of this article, however, we will be taking a look at bottom-up dynamic programming (BUDP), which does not necessarily make use of recursion. After thoroughly examining the topic at hand, we will solve the problem Minimum Path Sum using BUDP, and do so with several illustrative diagrams.

#javascript

An Introduction to Bottom-Up Dynamic Programming
1.50 GEEK