Hacker News new | past | comments | ask | show | jobs | submit login
Richard Bellman on the Birth of Dynamic Programming (2002) [pdf] (informs.org)
91 points by kqr2 on Aug 21, 2018 | hide | past | favorite | 10 comments



I love the section on the name "dynamic programming" (arguably the worst term in all of computer science):

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 Cor- poration 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, let’s kill two birds with one stone. Let’s 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 it’s impossible to use the word, dynamic, in a pejorative sense. Try thinking of some combination that will possibly give it a pejorative meaning. It’s 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

Basically: "I more or less randomly picked two words that sounded good in a government bureaucracy". Makes sense!


His choice of the word "programming" is rock solid -- at the time, "programming" meant "planning a set of actions" and was already used this way in the military sphere. Computer programming is planning a set of actions for a computer to take. The latter use has taken over in the intervening half century, to the point where we no longer specify that we're programming a computer (what else would one program?) But at the time it was entirely reasonable for Bellman to choose "programming."

"Dynamic," on the other hand, was a masterful sales job.


I think "dynamic" is not such a bad term either -- the original application of DP was to optimization in dynamical systems.


> arguably the worst term in all of computer science

Agreed, but I'd argue that "linear programming" is a strong contender.


Like "dynamic programming", it suffers greatly from the vast change in meaning of the term "programming": its meaning has become specialized to a point that it's hardly recognizable as a subset of the original meaning.

But "linear programming" at least has one half that is really (still) meaningful: "linear programming" should be called "linear optimization" or something similar, but at least it really is linear.


Linear programming often comes up in a mathematical context where the word "programming" is odd and can be appropriately defined (as for example in topology/analysis "balls").

Dynamic programming generally comes up in an algorithm design context where "programming" already has a dominant meaning.

----

This is a lot like a topological ball-like concept was being used in sports tactics where you have to tell soccer/basketball players to stay within a ball of the opposing forward man...


It also has a very interesting property as an adjective, and that is it’s impossible to use the word, dynamic, in a pejorative sense. [...] It’s impossible.

Recent developments in machine learning and algorithmic decision making have brought about something that might well be called dynamic racism, which it seems Bellman had not anticipated.

A good reference for the unfamiliar: https://fairmlclass.github.io


Dynamic ethics was what came to my mind.


is that pejorative?


That was a great read. Bellman’s work affects much of technology today. Interesting to hear his story, especially the Stanford vs. Rand career path decision.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: