One of the major themes of the LINDO family of optimizers has been to provide easy-to-use optimization that is nevertheless of industrial strength, thereby broadening the potential user base for this powerful tool. In the following, we describe the notable, or at least memorable, events leading up to the LINDO of today. We wrote the first ancestor of today’s LINDO integer programming (IP) code in 1965 at Cornell University. It was a pure 0/1 code using a simple variant of Lagrangean relaxation for bounds. There were two motivating prior events: The paper by Little et al. (1963) on applying branch-and-bound (B&B) to the TSP, and the introduction of the CORC computer language and compiler at Cornell by Conway and Maxwell (1963). Little et al. demonstrated that there was a systematic way, B&B, for solving arbitrary combinatorial problems. There was an earlier paper by Land and Doig (1960) that was essentially B&B using LP for solving IP’s, however, it did not describe a computer implementation, so the Little et. al. paper may properly be called the first computer implementation of B&B. The programming language in 1965 at Cornell was a lovely language called CORC. It was like BASIC, but much more forgiving. The most notable feature of the CORC compiler was that it tried to correct user errors. For example, if CORC saw that a variable was referenced in only one place, it assumed it was a spelling error and changed the spelling to match the closest other variable in spelling, and then proceeded with the compilation. A CORC program almost always executed, although the output might be littered with warnings about what CORC had assumed you meant. It set a high standard for user-friendly computing. It took real effort to write a program that would not make it through compilation and into execution. Even though CORC was a more userfriendly language than BASIC, CORC languished while BASIC became popular because BASIC was available on a time-sharing system, which made BASIC available to a large audience.

[1]
Gautam Mitra,et al.
Analysis of mathematical programming problems prior to applying the simplex algorithm
,
1975,
Math. Program..

[2]
Michel Grabisch,et al.
Equivalent Representations of Set Functions
,
2000,
Math. Oper. Res..

[3]
Erling D. Andersen,et al.
Presolving in linear programming
,
1995,
Math. Program..

[4]
William L. Maxwell,et al.
CORC—the Cornell computing language
,
1963,
CACM.

[5]
Ignacio E. Grossmann,et al.
Computational experience with dicopt solving MINLP problems in process systems engineering
,
1989
.

[6]
Ellis L. Johnson,et al.
Solving Large-Scale Zero-One Linear Programming Problems
,
1983,
Oper. Res..

[7]
A. Land,et al.
An Automatic Method for Solving Discrete Programming Problems
,
1960,
50 Years of Integer Programming.

[8]
James E. Kalan.
Aspects of large-scale in-core linear programming
,
1971,
ACM '71.