Operations research is a fascinating career path. Academic programs called Operations Research exist for students wanting a degree in this area. I was privileged to conduct operations research for over 11 years at the Center for Naval Analyses where we performed research for the U.S. Navy. During that time, I worked with many gifted scientists, mathematicians, and engineers. My two favorite analysts (as we were called) were physicists: one a theoretical physicist and the other an experimental physicist. Neither had a degree in operations research. I cannot recall working with anyone who had such a degree. I came to this text with a prejudice: that operations research is best conducted by well-educated men and women who would never call themselves operations researchers.

But this is a textbook about operations research. Two natural questions arise. Is the book necessary? If it is necessary, would it be useful to someone doing operations research? The authors have done an outstanding job of presenting tools for operations research. Anyone who toils in this field would be well served to know these tools.

The first tool is linear programming. Linear programming is indeed necessary for any researcher to understand. We had economists who studied how ships needed supplies, where to store spares (onboard or at bases nearby), and how to deliver parts to vessels underway. Those are linear programming problems. The book explains linear programming with a manufacturing example, showing the variable assignments, and how to introduce slack variables (and surplus variables) to work with problem constraints.

They describe the simplex method with rich examples so the reader will understand the methodology and get insight into its behavior in higher spaces that one cannot visualize. I recall studying the simplex method years ago and I implemented a toy example at the time. For real-world applications, you would not write your own program but rather find an open source program to use. Fortunately, the authors provide a list of software packages to help anyone needing to solve these types of optimization problems. The authors, to their credit, discuss software packages at the end of each chapter, which complements the text.

The next chapter is devoted to network analysis, which, to an electrical engineer, sounds like circuit theory. In this book, we see network theory as a means to describe actions, or flows, through nodes from a source to a sink. These might describe a delivery system where we want to send packages from a warehouse to a customer. When you track a package from a seller to your home you are probing the delivery network to see how efficient it is and where your package is among all the possible routes to your house.

If you are a shipper, for example, you might want to optimize your network so packages take a minimal time for delivery (minimal delay), or can be delivered at a low cost. The network (say with airplanes, trucks, and ships) would describe the various paths within the network. Your optimization solution would tell you which paths are best for your interests. Of course, as the networks grow with more nodes and edges the complexity of the problem grows exponentially. There is little one can do to remedy that but one should understand how problems scale.

Networks also appear in project management when we sequence tasks necessary to complete a project. Within this network is a critical path that extends from the start of the project to its end. Any delay within the critical path causes a delay to the entire project. Project management software packages are commonly used to plan and track projects. Oftentimes one hears about delays and whether these will affect the critical path. If a delay is outside the critical path, that’s usually fine. But if a delay affects this path, that’s cause for worry.

In a chapter about integer programming we are interested in optimizing a function with solutions restricted to the integer values. Why are integer values so important? The authors tell us the variables may have only values of 0 or 1. For example, the variables may be, say xij “each having value of one or zero, depending on whether model i is produced at plant j, or not.” And, what is more, why not just solve the problem with unconstrained variables and then round the answer to an integer? The authors note, “Rounding down half a [multi-million dollar] plane here or there could put a company right out of business.” The authors discuss common integer programming problems such as the Traveling Salesman and Knapsack problems. While I have never needed to use integer programming, I have talked with others who used it to inventory spare parts for the Navy.

Nonlinear optimization (chapter 5) is discussed in a short chapter at just 20 pages. This area is so broad I wouldn’t expect any introductory text to cover it well. Still the authors give a lovely introduction so at least the reader can see some of the difficult concepts such as local minima, multivariate gradient searches, and Newton’s method. It whets your appetite.

Chapter 6 is about Markov processes. I met these in graduate school when fellow students used them for speech processing. The authors motivate Markov processes with examples of weather modeling with states of sunny, cloudy, or snowing. The authors assign reasonable transition probabilities and lead the reader through an analysis of the model. Markov processes are a topic anyone can relate to and the presentation here is concise enough to grasp easily. The discussion, while not deep, is enough to give the reader an idea of when to reach for this tool.

Simulation is discussed in chapter 8 and this is just a taste of what one should know. This topic deserves several books but if you want a superficial idea you would do well to read this chapter.

The final meaty chapter is chapter 9 on decision analysis. Everyone should either read this chapter or something like it. We make decisions and it would be good to know how to do that in a structured way. The authors tell you about game theory, how to develop a strategy, and how to manage regret. It’s more psychological than mathematical. The discussion about decision trees is well presented and complete. How many times do we face a decision and need something to help us sort our options? Other topics include utility theory, anchoring, and framing. These are psychological areas and worth understanding.

The last chapter is about heuristic techniques. I took this chapter to say researchers may need to improvise for some problems. Improvisation is sometimes all you can do.

To summarize, Operations Research is a wonderful introduction to many ideas and techniques a researcher may use. It’s not an exhaustive book but such a book doesn’t exist. It is, however, a well-presented palette of tools and techniques any researcher should see and understand. You may never need any of these tools but if you do, this book will you get going.

David S. Mazel is a practicing engineer in Washington, DC. He welcomes your thoughts and feedback. He can be reached at mazeld at gmail dot com.