Dynamic Programming

Abstract
Dynamic programming is a mathematical technique for solving certain types of sequential decision problems. We characterize a sequential decision problem as a problem in which a sequence of decisions must be made with each decision affecting future decisions. We need to consider such problems because we rarely encounter an operational situation where the implications of any decision do not extend far into the future. For example, the best way to invest funds this year depends upon how the proceeds from this year's investments can be employed next year. The maintenance policy we should use for our machinery this year depends upon what we intend to do with this machinery in the future. The examples are as numerous as the fields of man's endeavor.