“Dynamic programming” is widely used across fields from economics to engineering, and from computer programming to machine learning. It’s essentially a method of breaking down a larger problem into sub-problems, so that if you work through the sub-problems in the right order, building each answer on the previous one, you eventually solve the larger problem. It was invented by Richard Bellman back in the 1950s–thus the eponymous “Bellman equation,” which describes an optimal process for the process of getting a big picture or long-term answer based on solving a series of sub-problems.
But why did Bellman call it “dynamic programming”? He tells the story in his 1984 autobiography, Eye of the Hurricane (p. 159):
I spent the Fall quarter (of 1950) at RAND. My first task was to find a name for multistage decision processes. An interesting question is, Where did the name, dynamic programming, come from? The 1950s were not good years for mathematical research. We had a very interesting gentleman in Washington named Wilson. He was Secretary of Defense, and he actually had a pathological fear and hatred of the word, research. I’m not using the term lightly; I’m using it precisely. His face would suffuse, he would turn red, and he would get violent if people used the term, research, in his presence. You can imagine how he felt, then, about the term, mathematical. The RAND Corporation was employed by the Air Force, and the Air Force had Wilson as its boss, essentially. Hence, I felt I had to do something to shield Wilson and the Air Force from the fact that I was really doing mathematics inside the RAND Corporation. What title, what name, could I choose? In the first place I was interested in planning, in decision making, in thinking. But planning, is not a good word for various reasons. I decided therefore to use the word, “programming” I wanted to get across the idea that this was dynamic, this was multistage, this was time-varying I thought, lets kill two birds with one stone. Lets take a word that has an absolutely precise meaning, namely dynamic, in the classical physical sense. It also has a very interesting property as an adjective, and that is its impossible to use the word, dynamic, in a pejorative sense. Try thinking of some combination that will possibly give it a pejorative meaning. Its impossible. Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it as an umbrella for my activities.
As an aside, the Secretary of Defense mentioned here is Charles Wilson, who almost but didn’t quite ever say “what’s good for General Motors is good for the country,” a story I told here.
I can offer only a moderate recommendation of Bellman’s autobiography. On one side, he’s not an especially smooth writer, nor does he develop characters especially well. On the other side, he’s full of good stories and tart observations. Just before the story told above he describes giving a talk and writes:
I expounded on my favorite theme: “Progress is not due to those who roll up their sleeves and do things the way their fathers did. Progress is due to those who say, `There must be a simpler way.'”
Obviously, this story of “dynamic programming” has been out in the public view for awhile. However, I had not heard it before seeing a mention on Beatrice Cherrier’s Twitter feed last month.