Dual dynamic programming for linear production/inventory systems

We consider the problem of scheduling production of an inventoried item, using a production technology described by a linear program (LP). Traditional approaches involve using LP to find a schedule for a specific starting inventory, or using dynamic programming (DP) to find a production strategy for any stock level at any stage. Our method solves an LP for each period parametrically, and then uses a backwards recursion, based on the marginal conditions of DP, to generate the optimal operating strategy for the entire horizon in a convenient form. This method is dual to conventional DP in the sense that it finds optimal primal variables (points in the state space) corresponding to a set of critical shadow prices, rather than vice versa. It is more accurate and more efficient than traditional DP, while tests indicate that the computational effort required to produce a complete operating strategy is competitive with that taken to produce a single solution via LP. The method also yields useful insights into the nature of the problem. This paper concentrates on a linear deterministic problem with one inventory, but the method can be generalized. It has been successfully applied to two-dimensional reservoir release and coal stockpiling problems under uncertainty. Production/inventory systems, in which items are produced, or collected, and stored for future use in a warehouse, reservoir or stockpile, have proved to be one of the most fruitful areas for the application of Bellman's method of dynamic programming (DP). The computational challenges arising from this area have also served to stimulate many developments and refinments of the basic idea of DP. Here we develop a dual approach to DP which is particularly suited to such problems. This paper deals with the relatively simple situation in which there is only one product, with a production technology described by a linear program (LP), and we note that for this problem, our approach has strong affinities with a computational scheme suggested by Bellman himself (1). But, our method is capable of significant generalization (e.g. 2, 3), and although it offers significant computational gains for many problems, we are also very interested in its improved accuracy, and the extra sensitivity information it provides. Apart from DP, two approaches have been adopted to problems of this kind. Firstly, an optimal schedule can be found, for a specific starting inventory, by solving a multi-period linear or non-linear programming model, or perhaps a more efficient network technique. This can involve significant computational effort if the production model is complex, but a more important limitation in many situations is that it only provides a single production schedule and stock trajectory. Thus, a new solution is required as soon as circumstances vary sufficiently to force inventory levels away from that trajectory. This also makes it very difficult to extend such models to cover stochastic situations properly. Secondly, the optimal strategy for some problems has a specific form, and can be found by special methods. Most such methods apply to inventory systems in a situation of stable demand, although Bahl and Zionts (4) extend the early work of Johnson (5) to provide a non-iterative solution procedure for production planning problems with one input resource and multiple products. Such methods are obviously of limited application. DP, on the other hand, develops an optimal strategy specifying the production decision which should be made, given any stock level in any period of the planning horizon. Such a strategy may remain valid for many periods, and can be used to determine expected system performance via simulation. It also yields sensitivity analysis of a type not readily available from LP models. For instance it may reveal that a certain machine will never be used in some period, irrespective of the stock situation at the time. But often this extra information can only be obtained at the price of a significantly greater computational burden, especially if the sub-model describing the production process in each period