ABSTRACT

Dynamic programming (DP) is an optimization procedure that was developed by Richard Bellman in 1952 [1,2]. DP converts a problem with multiple decisions and limited resources into a sequence of interrelated subproblems arranged in stages, so that each subproblem is more tractable than the original problem. A key aspect of this procedure is that the decision in one stage cannot be made in isolation due to the resource constraints. The best decision must optimize the objective function with respect to the current and prior stages, or the current and future stages.