The development of a DP algorithm can be broken into
sequence of four steps:
-
characterize the structure of an optimal solution
-
recursively define the value of an optimal solution
-
compute the value of an optimal solution in a bottom-up fashion
-
construct an optimal solution from computed information