This is an old revision of the document!
Chapter 6: Dynamic Programming
Dynamic Programming is the opposite of Greedy and is similar to divide and conquer. It is a good tool for problems which do not have greedy aspects and can only produce exponential divide and conquer solutions. Dynamic Programming is the process of decomposing all information into a collection of sub-problems and then using their solutions to solve progressively larger sub-problems. Overall, it is more powerful than the other strategies we have tried so far.
