Integer programming (discrete optimization) is best used for solving problems involving discrete, whole elements. Using integer variables, one can model logical requirements, fixed costs, sequencing and scheduling requirements, and many other problem aspects. Whether it’s taught in OR graduate programs or in math or computer science programs; in courses called "Integer Programming," "Combinatorial Optimization," "Combinatorial Optimization and Integer Programming" or simply "Advanced Operations Management," it’s a part of every OR curriculum, and one of its greatest teachers has developed a text that shows how to use logic in integer programming to develop models with much greater precision.
Paul Williams, a leading authority on modeling in integer programming, has written a concise, readable introduction to the science and art of using modeling in logic for integer programming. Written for graduate and postgraduate students, as well as academics and practitioners, the book is divided into four chapters that all avoid the typical format of definitions, theorems and proofs and instead introduce concepts and results within the text through examples. References are given at the end of each chapter to the more mathematical papers and texts on the subject, and exercises are included to reinforce and expand on the material in the chapter.
Chapter 1 gives a basic introduction to logic and its aims, and goes on to explain the Propositional and Predicate Calculus. Chapter 2 explains Linear Programming (LP) and Integer Programming (IP) using the machinery of logic; explains the fundamental structural and mathematical properties of these types of models, along with the main methods of solving IP models; covers main areas of practical application; and attempts to distinguish between computationally ‘difficult’ and ‘easy’ classes of problem. Chapter 3 applies logic to the formulation of IP models using the methods explained in chapter 1 and looks at the deeper mathematical concepts involved. Chapter 4 then covers the fundamental problem of computational logic: the satisfiability problem, which lies at the heart of the entire book. Methods of solving with both logic and IP are given and their connections are described. Applications in diverse fields are discussed, and Williams shows how IP models can be expressed as satisfiability problems and solved as such.