3. Operations Research

Integer Programming

Modeling discrete decisions, branch-and-bound overview, and applications in scheduling, facility layout, and routing problems.

Integer Programming

Hey students! 👋 Welcome to one of the most powerful tools in industrial engineering - integer programming! This lesson will teach you how to model real-world problems where decisions must be whole numbers (like how many machines to buy or which routes to take), explore the branch-and-bound method for solving these problems, and discover how companies use integer programming for scheduling workers, designing facility layouts, and optimizing delivery routes. By the end of this lesson, you'll understand why integer programming is essential for making smart, discrete decisions in engineering and business operations! 🎯

Understanding Integer Programming Fundamentals

Integer programming (IP) is a specialized branch of mathematical optimization that deals with problems where some or all decision variables must take on integer (whole number) values. Unlike regular linear programming where variables can be any real number, integer programming reflects the reality that many business decisions are naturally discrete - you can't hire 2.5 employees or build 0.7 of a factory! 🏭

The mathematical formulation of an integer programming problem looks similar to linear programming but includes integer constraints. A typical integer program has the form:

$$\text{Maximize (or Minimize) } Z = c_1x_1 + c_2x_2 + ... + c_nx_n$$

Subject to:

$$a_{11}x_1 + a_{12}x_2 + ... + a_{1n}x_n \leq b_1$$

$$a_{21}x_1 + a_{22}x_2 + ... + a_{2n}x_n \leq b_2$$

$$...$$

$$x_j \geq 0 \text{ and integer for } j \in S$$

Where $S$ is the set of variables that must be integers.

There are three main types of integer programming problems. Pure integer programming requires all variables to be integers, mixed integer programming (MIP) allows some variables to be continuous while others must be integers, and binary integer programming restricts variables to only 0 or 1 values. Binary programming is particularly useful for yes/no decisions like whether to open a facility or select a particular route.

Real-world applications are everywhere in industrial engineering! Amazon uses integer programming to decide how many fulfillment centers to build and where to locate them. Airlines like Delta use it for crew scheduling, ensuring each flight has the right number of pilots and flight attendants while minimizing costs. Manufacturing companies use it to determine optimal production schedules, and logistics companies like FedEx use it for vehicle routing to minimize delivery costs while meeting time constraints.

The Branch-and-Bound Method

The branch-and-bound algorithm is the most widely used method for solving integer programming problems, and understanding it will help you appreciate why these problems can be computationally challenging! 🌳

The algorithm works by systematically exploring the solution space through a tree-like structure. Here's how it works: First, we solve the linear programming relaxation of the problem - this means we temporarily ignore the integer constraints and solve it as a regular linear program. This gives us an upper bound (for maximization problems) on the optimal integer solution.

If the optimal solution to the relaxed problem happens to have integer values for all integer variables, we're done! But usually, some variables will have fractional values. The algorithm then branches by creating two new subproblems. For example, if variable $x_1 = 3.7$ in the optimal relaxed solution, we create two branches: one where $x_1 \leq 3$ and another where $x_1 \geq 4$.

The bounding aspect comes from keeping track of the best integer solution found so far (the incumbent). If any subproblem's relaxed solution is worse than the incumbent, we can eliminate that entire branch without exploring it further - this is called pruning.

Let's consider a simple example: A furniture company wants to maximize profit by deciding how many chairs ($x_1$) and tables ($x_2$) to produce. The profit function is $Z = 40x_1 + 30x_2$, subject to constraints like available wood and labor hours, with both variables being integers.

The beauty of branch-and-bound is its efficiency in eliminating large portions of the search space. However, in the worst case, the algorithm might need to examine an exponential number of nodes, which is why integer programming problems are generally harder to solve than linear programming problems.

Applications in Scheduling

Scheduling applications represent some of the most impactful uses of integer programming in industrial engineering! 📅 Companies across industries rely on integer programming to create efficient schedules that balance multiple objectives and constraints.

Workforce scheduling is a classic application where integer programming shines. Consider a hospital that needs to schedule nurses across different shifts. Each nurse can work only whole shifts (you can't work 0.3 of a shift!), and the hospital must meet minimum staffing requirements for each time period while minimizing labor costs and ensuring fair work distribution.

The mathematical model might include binary variables $x_{ij}$ where $x_{ij} = 1$ if nurse $i$ works shift $j$, and 0 otherwise. Constraints ensure each shift has adequate coverage: $\sum_{i} x_{ij} \geq d_j$ for each shift $j$ with demand $d_j$. Additional constraints limit each nurse's weekly hours and ensure rest periods between shifts.

Production scheduling is another critical application. Boeing uses integer programming to schedule aircraft assembly, determining which planes to build in which time slots to meet delivery commitments while minimizing production costs. The discrete nature comes from the fact that you can't build partial aircraft - each plane is either completed in a time period or it isn't.

Project scheduling with resource constraints also benefits from integer programming. Construction companies use it to determine the optimal sequence of activities, considering that certain tasks can't be split (like pouring a foundation) and resources like cranes can only be in one location at a time.

The power of integer programming in scheduling lies in its ability to handle complex logical constraints. For example, "if we start project A, then we must also start project B within two weeks" can be modeled using binary variables and logical constraints that would be impossible to handle with traditional linear programming.

Facility Layout and Location Problems

Facility layout and location decisions are perfect examples of where integer programming provides tremendous value to industrial engineers! 🏢 These problems involve discrete choices about where to place facilities, how to arrange equipment, and how to design efficient workflows.

Facility location problems help companies decide where to build warehouses, factories, or service centers. Amazon's decision to build over 1,000 fulfillment centers worldwide was guided by sophisticated integer programming models that considered factors like customer demand, shipping costs, real estate prices, and service time requirements.

The classic p-median problem seeks to locate $p$ facilities to minimize the total distance customers travel to reach their nearest facility. Binary variables $y_j = 1$ if we locate a facility at candidate site $j$, and $x_{ij} = 1$ if customer $i$ is assigned to facility $j$. The objective minimizes $\sum_{i}\sum_{j} d_{ij}x_{ij}$ subject to constraints ensuring exactly $p$ facilities are opened and each customer is assigned to exactly one facility.

Facility layout problems within manufacturing plants use integer programming to determine optimal equipment placement. The Quadratic Assignment Problem (QAP) is a famous formulation where we want to assign $n$ facilities to $n$ locations to minimize the total cost of material flow between facilities multiplied by distances between locations.

Consider a smartphone manufacturing plant where different assembly stations must be positioned optimally. Stations that frequently exchange components should be placed close together to minimize material handling costs. The discrete nature comes from the fact that each station must occupy exactly one location.

Warehouse layout optimization is another practical application. Companies like Walmart use integer programming to determine optimal shelf arrangements, considering factors like product popularity, storage requirements, and picking efficiency. Fast-moving items are positioned near shipping areas, while slow-moving inventory is placed in less accessible locations.

These problems often involve millions of possible configurations, making integer programming essential for finding optimal solutions that human planners couldn't identify through intuition alone.

Vehicle Routing and Transportation

Vehicle routing problems represent one of the most commercially successful applications of integer programming, saving companies billions of dollars annually in transportation costs! 🚛

The Vehicle Routing Problem (VRP) asks: given a set of customers with known demands and a fleet of vehicles with limited capacity, what routes should each vehicle follow to minimize total travel distance while serving all customers exactly once?

UPS famously uses a sophisticated routing system called ORION (On-Road Integrated Optimization and Navigation) that employs integer programming to optimize delivery routes for over 66,000 drivers daily. The system considers over 200,000 possible route combinations for each driver and has saved UPS over 100 million miles of driving and 10 million gallons of fuel annually since its implementation.

The mathematical formulation uses binary variables $x_{ijk} = 1$ if vehicle $k$ travels directly from customer $i$ to customer $j$. The objective minimizes total distance: $\sum_{i}\sum_{j}\sum_{k} d_{ij}x_{ijk}$, subject to constraints ensuring each customer is visited exactly once, vehicle capacity isn't exceeded, and routes are connected.

Pickup and delivery problems add complexity by requiring vehicles to collect items from certain locations and deliver them to others. Ride-sharing companies like Uber use integer programming for dynamic routing, continuously updating optimal routes as new ride requests arrive.

Time window constraints make routing problems even more realistic but computationally challenging. Many customers require deliveries within specific time windows (like restaurants needing fresh produce by 6 AM). The integer programming model includes additional constraints linking arrival times to route decisions.

The Traveling Salesman Problem (TSP), while simpler than VRP, demonstrates the power of integer programming for route optimization. Finding the shortest route visiting all cities exactly once seems simple but becomes computationally explosive as the number of cities increases - a 20-city problem has over 60 billion possible routes!

Conclusion

Integer programming is a powerful optimization tool that handles the discrete, yes-or-no decisions that dominate real-world industrial engineering problems. From the branch-and-bound algorithm that systematically explores solution spaces to applications in workforce scheduling, facility design, and vehicle routing, integer programming provides the mathematical foundation for solving complex operational challenges. Companies like Amazon, UPS, and Boeing rely on these techniques daily to make optimal decisions involving billions of dollars and millions of customers, proving that mastering integer programming concepts will serve you well in your industrial engineering career! 🎯

Study Notes

• Integer Programming (IP): Optimization problems where some or all variables must be whole numbers (integers)

• Three Types: Pure IP (all variables integer), Mixed IP (some integer, some continuous), Binary IP (variables only 0 or 1)

• Branch-and-Bound Algorithm: Systematic method using tree search with relaxation, branching, and pruning steps

• Linear Programming Relaxation: Temporarily ignore integer constraints to get upper/lower bounds on optimal solution

• Scheduling Applications: Workforce scheduling, production scheduling, project scheduling with discrete time periods and resource assignments

• Facility Location: P-median problem seeks optimal placement of $p$ facilities to minimize total customer-facility distances

• Quadratic Assignment Problem (QAP): Assigns $n$ facilities to $n$ locations minimizing flow×distance costs

• Vehicle Routing Problem (VRP): Determines optimal routes for vehicle fleet to serve all customers while minimizing total distance

• Time Window Constraints: Customers must be served within specific time intervals, adding complexity to routing models

• Binary Variables: $x_{ij} = 1$ if decision is "yes", 0 if "no" - essential for modeling discrete choices

• Computational Complexity: Integer programs are generally harder to solve than linear programs due to discrete nature

Practice Quiz

5 questions to test your understanding

Integer Programming — Industrial Engineering | A-Warded