Dynamic programming (DP) is an optimization approach that transforms a complex problem into a sequence of simpler problems; its essential characteristic is the multistage nature of the optimization procedure. The DP method was developed in the 1950s through the work of Richard Bellman who is still the doyen of research workers in this field. Both discrete and continuous problems can be amenable to this method and deterministic as well as stochastic models can be handled by it. The complexities increase tremendously with the number of constraints. The DP technique, when applicable, represents or decomposes a multistage decision problem as a sequence of single-stage decision problems. The decomposition to N subproblems is done in such a manner that the optimal solution of the original N-variable problem can be obtained from the optimal solutions of the N one-dimensional problems. Multistage decision problems can also be solved by the direct application of classical optimization techniques.