- 2011 by Taylor and Francis Group, LLC. Dynamic programming is a recursive method for obtaining the optimal control as a function of the state in multistage systems. The procedure first determines the optimal control when there is only one stage left in the life of the system. Then it determines the optimal control where there are two stages left, etc. The recursion proceeds backward in time.