Why are optimization problems often called programs?

  • linear programming
  • geometric programming
  • convex programming
  • Integer programming
  • ...
  • $\begingroup$ Not to mention mathematical programming. $\endgroup$ Nov 16 '15 at 13:55
  • $\begingroup$ To be more precise: it is constrained optimization problems that are given the "programming" label. $\endgroup$ Feb 3 '18 at 13:24
  • $\begingroup$ @J. M. is not a mathematician Nonlinear Programming encompasses unconstrained nonlinear optimization. For example, read p. 1of Avriel's Nonlinear Programming book, which should come up at this link books.google.com/… $\endgroup$ May 4 '18 at 20:56

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.

  • 7
    $\begingroup$ Well, computers weren't rare, they were just people (often women). These days we might speak of a gifted mathematician as being 'like a computer', but in the mid-20th century the praise flowed the other way and this would describe a useful piece of machinery. It makes reading Turing's early explanations of digital computers a bit confusing! $\endgroup$ Oct 17 '13 at 14:09

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.

  • 3
    $\begingroup$ Annother good exampple of programming in that classic sense is "television programming" and "radio programming" (collectively "broadcast programming"), which is the process of creating a schedule for what will be broadcast. They are also an interesting optimization problem because broascasters need to have flexibility in their schedules to be able to handle special events, cancelations, etc, all while trying to minimize wasting prime-time hours with filler like re-runs, if something that would get better ratings is available. But you cannot have a show change slots every week! $\endgroup$ Oct 17 '13 at 21:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.