Reference: Introduction to Algorithms
Dynamic Programming is used to solve optimization problem.
It firstly partition the problem into subproblems.
Then combine the solution of subproblems into the solution of the original problem.
It has 4 steps when solving problems.
step 1. Characterize the structure of Optimal Solution
step 2. Recursively define the value of Optimal Solution
step 3. Bottom-up or Top-down compute the value of Optimal Solution
step 4. Construct the Optimal Solution
Problem:
Given a rod of length n, and cut it into pieces, and sell them.
There's a price table for each length.
To find the maximum revenue after selling all the pieces.
Take n=4 as an example.
There are 2^(n-1) different ways to cut the rod.
Below is the price table.