

The RAND Corporation was employed by the Air Force, and the Air Force had Wilson as its boss, essentially. You can imagine how he felt, then, about the term, mathematical. His face would suffuse, he would turn red, and he would get violent if people used the term, research, in his presence. I’m not using the term lightly I’m using it precisely. He was Secretary of Defense, and he actually had a pathological fear and hatred of the word, research. We had a very interesting gentleman in Washington named Wilson. My first task was to find a name for multistage decision processes.Īn interesting question is, ‘Where did the name, dynamic programming, come from?’ The 1950s were not good years for mathematical research. I spent the Fall quarter (of 1950) at RAND. In his autobiography Eye of the Hurricane he wrote:

So where did the name come from? It was coined by Richard Bellman (famous for the Bellman–Ford algorithm for finding shortest paths in a graph). I can recall being confused by the name when studying algorithms as an undergraduate: I knew that ‘linear programming’ referred to the optimization of linear functions under linear constraints, but what did the ‘dynamic’ in ‘dynamic programming’ refer to? The name was a small but genuine barrier to understanding the technique. But the name sucks: the technique is no more or less ‘dynamic’ than many other techniques, and ‘programming’ is a fossil: as we’ll see below, the ‘program’ referred to is the output of the technique, not the implementation of the technique itself. But the name sucks!ĭynamic programming is an important technique for writing combinatorial algorithms, in which you divide a problem into sub-problems, like in good ol’ divide-and-conquer, except that the sub-problems may overlap, so you build up a table of these problems and their solutions in order to avoid repeated work.
Tabular method software#
◀ Circular logic ✴ ✴ Software archaeology and technical debt ▶ĭynamic programming is an important technique for writing combinatorial algorithms.
