Section: Application Domains
Production planning and scheduling
These problems present themselves throughout the supply chain in a host of industrial applications. Production planning problems can be defined on a network of facilities on an aggregate scale, or at a more detailed level within a single plant. These problems are concerned with the timing, the location, and the quantities of production. Often multiple product categories compete for scarce resources (raw materials, machine capacities, limited labor), and there are many other factors that must also be taken into account. To list just a few example, there is often external demand for finished products that must be considered; a bill-of-materials that specifies which products require others for their production or assembly must be taken into account; and the restrictions imposed by setup times and/or precedence restrictions must be rigorously accounted for.
One important class of production planning and scheduling problems is lot-sizing problems , in which the most important decision typically relate to how much to produce of each product category, as well as when (which time period) and where (which machine, line, or facility) to produce it in. In one stream of research, we have been engaging in developing rigorous computational methods to strengthen automatically the formulations of these problems in order to enable optimization software to identify high quality production plans and find strong performance guarantees (lower bounds) for such problems [124] , [125] , [126] . In another stream, we have been analyzing fundamental MIP models that incorporate uncertainty into lot-sizing problems, deriving results concerning optimality conditions for and the polyhedral structure of these models [94] , [95] .
Another important category of problems within this larger family are machine scheduling problems . In contrast to lot-sizing problems, the emphasis is on determining the sequence and location of a set of jobs whose specific quantities of production have already been determined. In machine scheduling problems, a set of jobs of different durations must be processed on a set of machines over time. The objective is to minimize a function of the jobs' starting times. Often, jobs can be processed only within availability intervals, or precedence relations between jobs must be followed. Typical applications of machine scheduling can be found in manufacturing and operational planning.
For some machine scheduling problems whose objective is to minimize a weighted sum of the number of late jobs, we have developed branch-and-price and branch-and-cut algorithms [8] , [145] . Recently, we have developed heuristic [99] and exact [53] , [13] MIP-based algorithms for the problem of scheduling an airborne radar, which can be modeled as a machine scheduling problem.