1MOR/DP: A Computer System For Dynamic Programming The last example illustrates a considerable computational effort can be required to numerically solve discrete dynamic programming problems. To facilitate such solutions, we have developed a microcomputer language MOR/DP (Deuermeyer and Curry, 1989) for solving a variety of dynamic programming problems. The problem class that can be handled by the system is restricted to a single state and a single decision variable per recursion function. However, a large variety of serial, nonserial and stochastic problems can be addressed. The system is DOS based and has the inherent limitations of this operating system and of particular importance is the 640K memory usage limitation. In this section, the rudiments of the MOR/DP language are given and the model of the previous solved with this system. The key feature of the MOR/DP language is that it is a structured format with three distinct segments. These segments are the definition, control and logic segments, with the first two being optional, but the logic segment is required. The Definition Segment is used to define functions, variables, sequences, arrays, etc. The Control Segment is used for specifying non-standard control features such as no-backtracking for stochastic problems. The Logic Segment is where the main features of the model are specified. This is where the recursion functions are defined and numerically solved. We will need only the bare essentials of the language to solve the problem at hand and only those features necessary for this task will be discussed here. The user is referred to the MOR/DP users guide (Curry, et al. 1989) for a detailed description of the language features. The dynamic programming literature uses a variety of terminology to express various aspects of the methodology. As we introduce the computer support aspects of this material, we need to make a distinction concerning functions and their use in dynamic programming. The previous example utilized functions for two separate purposes. The first is the normal use of functions to capture the relationships between several problem factors such as in a cost function definition. Given this definition, then using the function with different arguments yields a situation dependent result. The key element is that this relationship between the factors remains the same and, therefore, can be efficiently defined once and reused as needed. The second use of functions in dynamic programming is the summary of the optimal returns which generally depend on an input parameter. To illustrate, the optimal returns for each decision period in the second example problem are summarized in a tabular form. Each entry in the table is the result of an optimization process based on an input parameter; in this instance, the input
has intentionally blurred sections.
Sign up to view the full version.