Why are optimization problems often called programs?
- linear programming
- geometric programming
- convex programming
- Integer programming
- ...
Why are optimization problems often called programs?
It may be that this question had been answered here before, but I couldn't find the answer.
Anyway, the answer is given by the person who coined the name itself: George Dantzig wrote in "LINEAR PROGRAMMING":
Here are some stories about how various linear programming terms arose. The military refer to their various plans or proposed schedules of training, logistical supply and deployment of combat units as a program. When I first analyzed the Air Force planning problem and saw that it could be formulated as a system of linear inequalities, I called my paper Programming in a Linear Structure. Note that the term ‘program’ was used for linear programs long before it was used as the set of instructions used by a computer. In the early days, these instructions were called codes. In the summer of 1948, Koopmans and I visited the Rand Corporation. One day we took a stroll along the Santa Monica beach. Koopmans said: “Why not shorten ‘Programming in a Linear Structure’ to ‘Linear Programming’?” I replied: “That’s it! From now on that will be its name.” Later that day I gave a talk at Rand, entitled “Linear Programming”; years later Tucker shortened it to Linear Program.
From the wikipedia page on mathematical optimization:
The term, programming, in this context does not refer to computer programming. Rather, the term comes from the use of program by the United States military to refer to proposed training and logistics schedules, which were the problems Dantzig studied at that time.
When the term "linear programming" first came into use, computers were still very rare beasts, and the term "computer programming" wasn't that widely used. Here "programming" meant planning. As researchers started to work on other optimization problems, the "programming" term continued to be used and we ended up with "nonlinear programming", "integer programming", etc.
Solving an optimization problem is not programming in any sense. However, the results of the optimization are then used as key factors in the making of decision related to resources or strategy. And that is the "programming" part.
So this is a case of metonymy: naming something after something else which has an associated meaning.
Although linear programming does precede computer programming, the term program as a "list of things to be done" precedes linear programming!
For instance, a symphony orchestra's formal concert performance has a program. This is very much like a computer program. First we play this, then we play that, then there is an intermission, and so forth. A copy of the program is usually available to members of the audience.
The word program is made up of "pro" (beforehand) and "gram" (write): literally writing something down before doing it with the intent of closely sticking with what is written.
Once we have solved the optimization problem, then we chart a "program" for our organization to take specific steps with specific resources.