Early Integer Programming

D the academic year 1953–54, I was a third-year graduate student in mathematics at Princeton, doing research on nonlinear differential equations. I wrote several papers, the first of which became my Ph.D. thesis. I was fortunate in having as my thesis advisor the remarkable and inspiring Professor Solomon Lefschetz. Armed with my Ph.D. degree, I entered the US Navy in the fall of 1954 and spent four months at Officer Candidate School in Newport, Rhode Island. After that the Navy assigned me to the Physics Branch of the Office of Naval Research in Washington, and I arrived there early in 1955. Down the hall from the Physics Branch was the Operations Research Group. By 1956 I knew some of the people there and had learned something about what operations research was. Also by that time I had learned my duties at the Physics Branch well enough so that I did them in less than full time, and Frank Isaakson, my helpful Branch Head, permitted me to spend my spare time with the Operations Research Group. I had always wanted to try applied mathematical work, and the time I spent with the Operations Research Group looking at various Navy weapons systems strengthened that interest. I decided tentatively to make operations research my future work, and by way of preparation took, in 1957, an evening course in operations research given by Alan Goldman. This was my first encounter with linear programming. Later in 1957, as the end of my three-year tour of duty in the Navy was approaching, Princeton invited me to return as Higgins Lecturer in Mathematics. Because of my interest in applied work I had planned to look for an industrial position, but I decided instead to accept this attractive offer and spend a year or two at Princeton before going on. When I returned to Princeton late in the fall of 1957, I got to know Professor A. W. Tucker, then the department head, who was the organizer and prime mover of a group interested in game theory and related topics. This group included Harold Kuhn and Martin (E. M. L.) Beale. The Navy had kept me on as a consultant, so I continued to work on Navy problems through monthly trips to Washington. On one of these trips a group presented a linear programming model of a Navy Task Force. One of the presenters remarked that it would be nice to have whole number answers as 1.3 aircraft carriers, for example, meant nothing. I thought about his remark and determined to try inventing a method that would produce integer results. I thought it was clearly important, as after all, indivisibilities are everywhere, but I also thought it should be possible. My view of linear programming was that it was the study of systems of linear inequalities and that it was closely analogous to studying systems of linear equations. Systems of linear equations could be solved in integers (diophantine equations), so why not systems of linear inequalities? Returning to the office I shared with Bob Gunning (now Dean of the Faculty at Princeton), I set to work and spent about a week of continuous thought trying to combine methods for linear diophantine equations with linear programming. This produced nothing but a large number of partly worked out numerical examples and a huge amount of waste paper. Late in the afternoon of the eighth day of this I had run out of ideas. Yet I still believed that, if I had to, in one way or another, I would always be able to get at an integer answer to any particular numerical example. At that point I said to myself, suppose you really had to solve some particular problem and get the answer by any means, what would be the first thing that you would do? The immediate answer was that as a first step I would solve the linear programming (maximization) problem and, if the answer turned out to be 7 1 4 , then I would at least know that the integer maximum could not be more than 7. No sooner had I made this obvious remark to myself than I felt a sudden tingling in two of my left toes, and with great excitement realized that I had just done something different, and something that was not a part of classical diophantine analysis. How exactly had I managed to conclude, almost without thought, that, if the LP answer was 7 1 4 , the integer answer was at most 7? As I was working with equations having integer coefficients and only integer variables, it did not take me long to conclude that the reasoning involved two steps. First that the objective function was maximal on the linear programming problem and therefore as large or larger than it could ever be on the integer problem. Second that the objective function was an integer linear form and therefore