1
MOR/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

This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*