---
title: "Integer Programming | Intro to Industrial Engineering"
description: "Integer programming is optimization with whole-number decision variables, used in Intro to Industrial Engineering for routing, scheduling, and allocation problems."
canonical: "https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming"
type: "key-term"
subject: "Intro to Industrial Engineering"
unit: "Unit 5"
---

# Integer Programming | Intro to Industrial Engineering

## Definition

Integer programming is an optimization method where some or all decision variables must be whole numbers. In Intro to Industrial Engineering, you use it for scheduling, routing, and allocation when fractions would not make sense.

## What It Is

Integer programming is the optimization tool you use in Intro to Industrial Engineering when the answer has to be a whole number, not a decimal. If you are deciding how many trucks to send, which jobs to assign, or whether a machine is on or off, the variables need to be integers because the real system is discrete.

The setup looks a lot like linear programming: you still define decision variables, a cost or profit function, and constraints. The difference is that at least one variable has an integer restriction, such as x being 0, 1, 2, 3, and so on. That single change makes the problem much harder, because the best fractional solution from a linear program may not be allowed anymore.

A common example is a worker assignment problem. Suppose you need to assign 5 workers to 5 jobs, and each worker can do only one job. You cannot assign 0.5 of a worker to a task, so the model has to force binary or integer decisions. In logistics, the same logic shows up when you decide how many containers, vehicles, or shipments to use.

Integer programming comes in two main forms. In pure integer programming, every decision variable must be an integer. In mixed-integer programming, some variables are integers and others can stay continuous, which is useful when a problem mixes yes or no decisions with quantities like cost, time, or flow.

Because the feasible choices are discrete, you cannot rely on the simple geometry that makes linear programming fast. Instead, solvers often use branch and bound, which splits the problem into smaller pieces, checks bounds on each piece, and rules out branches that cannot beat the best solution found so far. That is why integer programming is such a common modeling choice in industrial engineering, but also one that takes more computational work to solve.

## Why It Matters

Integer programming shows up anywhere Industrial Engineering asks for a real decision instead of a smooth mathematical approximation. Production planning, job shop scheduling, transportation routing, and facility location all force you to choose among countable options, not fractions of an option.

It also connects the math model to the actual system. If a warehouse can open only or not open, or a machine can be assigned to one job at a time, integer restrictions keep the model realistic. Without them, a solution might look optimal on paper but make no sense in practice.

This term also helps you see why some OR problems are easy to write down but hard to solve. The modeling step is similar to linear programming, but the integer requirement changes the solution process and often the answer itself. In class, that usually shows up when you compare a clean LP relaxation to the final integer solution and notice that rounding is not enough.

If you understand integer programming, you can read an industrial engineering problem and spot whether it is really asking for counts, assignments, or yes/no decisions. That makes it easier to choose the right method and to explain why the model matches the system.

## Connections

### Linear Programming

Integer programming starts with the same basic structure as linear programming, but adds integer restrictions to some or all variables. That difference matters because an LP can produce fractional values that are mathematically valid but operationally impossible. In class problems, you often build the LP first, then see how the integer version changes the solution.

### Mixed-Integer Programming

Mixed-integer programming is the version you use when only some decisions need to be whole numbers. That is common in industrial engineering models where one part of the system is discrete, like choosing whether to open a facility, while another part is continuous, like how much product flows through it. It is a flexible way to model real operations.

### [Branch and Bound](/introduction-industrial-engineering/key-terms/branch-and-bound)

Branch and bound is one of the main ways solvers handle integer programming. Instead of checking every possible integer combination directly, the method breaks the problem into branches, solves easier relaxations, and uses bounds to discard branches that cannot improve the answer. It is the algorithmic reason integer models are solvable in practice.

### Transportation and Assignment Problems

These problems often look like integer decisions, such as shipping whole units or assigning one worker to one task, but some special cases can be solved as linear programs and still give integer answers. That makes them a useful comparison point. When the structure is less tidy, integer programming becomes necessary to force whole-number results.

## On the AP Exam

A problem set question will usually ask you to build the model, not just name the term. You need to choose integer or binary variables when the situation involves counts, assignments, or yes/no decisions, then write the objective and constraints so the solution matches the real system. If the solution comes out fractional, that is a clue that the model is missing an integer restriction.

On quizzes and exams, you may also be asked to explain why a linear programming answer is not acceptable and how integer programming fixes that. In scheduling or logistics cases, the move is to identify the discrete decision first, then state which variables must be integers and why.

## Integer Programming vs Linear Programming

Linear programming and integer programming use the same style of objective function and constraints, but they do not allow the same kind of solution. LP allows fractional variable values, while integer programming requires whole numbers for some or all variables. That is why LP is often the starting point, but integer programming is the better fit when the decision is naturally discrete.

## Key Takeaways

- Integer programming is an optimization method that forces some or all decision variables to be whole numbers.
- It is the right model when the real decision is discrete, such as assigning workers, choosing routes, or deciding how many units to send.
- The problem is harder than ordinary linear programming because the solution space is no longer continuous.
- Branch and bound is a common method for finding the best integer solution by searching smarter, not just harder.
- Mixed-integer programming lets you combine integer decisions with continuous quantities in the same model.

## FAQs

### What is integer programming in Intro to Industrial Engineering?

It is an optimization method where some or all decision variables must be whole numbers. You use it for industrial engineering problems like scheduling, routing, and assignment when fractional answers would not make sense.

### How is integer programming different from linear programming?

Linear programming allows fractional values as long as the constraints are satisfied. Integer programming adds whole-number restrictions, which makes the model more realistic for discrete decisions but also harder to solve.

### What is a simple example of integer programming?

A worker assignment problem is a classic example. If each worker can take one job and each job needs one worker, the model must use integer or binary variables so you do not end up assigning 0.5 of a worker.

### Why can’t I just round a linear programming solution?

Rounding can break the constraints or give a worse answer than necessary. In integer programming, the whole-number restriction is part of the model from the start, so the solution is checked against both the math and the real-world decision.

## Related Study Guides

- [5.3 Job Shop Scheduling and Sequencing](/introduction-industrial-engineering/unit-5/job-shop-scheduling-sequencing/study-guide/1ekTW5OExW6cVNhM)
- [2.1 Introduction to Operations Research](/introduction-industrial-engineering/unit-2/introduction-operations-research/study-guide/IER3uAtwilXm4tVR)
- [2.4 Transportation and Assignment Problems](/introduction-industrial-engineering/unit-2/transportation-assignment-problems/study-guide/XGQoYDG7Ol0rwtUQ)
- [1.3 Optimization Techniques and Applications](/introduction-industrial-engineering/unit-1/optimization-techniques-applications/study-guide/kPsFsCWW9ul1zAh4)
- [9.3 Logistics Network Optimization](/introduction-industrial-engineering/unit-9/logistics-network-optimization/study-guide/skClWAfKkYM7nIdu)

## About This Document

Canonical Fiveable pages are available as Markdown at the same path plus `.md`.

- [llms.txt](https://fiveable.me/llms.txt): index of Fiveable's sections and URL patterns
- [llms-full.txt](https://fiveable.me/llms-full.txt): complete subject and unit listing
- [MCP server](https://fiveable.me/mcp): call Fiveable as tools instead of fetching pages (`https://fiveable.me/api/mcp`)
- [MCP server for AP teachers](https://fiveable.me/mcp/teachers): a teacher's classes, assignments and AP-rubric grading (`https://fiveable.me/api/mcp/teacher`)

## Structured Data

```json
{"@context":"https://schema.org","@graph":[{"@type":"LearningResource","@id":"https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming#resource","name":"Integer Programming | Intro to Industrial Engineering","url":"https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming","learningResourceType":"Concept explainer","educationalLevel":"AP® / High School","about":{"@id":"https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming#term"},"audience":{"@type":"EducationalAudience","educationalRole":"student"},"dateModified":"2026-07-03T02:23:09.379Z","isPartOf":{"@type":"Collection","name":"Intro to Industrial Engineering Key Terms","url":"https://fiveable.me/introduction-industrial-engineering/key-terms"},"author":{"@type":"Organization","@id":"https://fiveable.me/editorial#content-team","name":"Fiveable Content Team","url":"https://fiveable.me/editorial","parentOrganization":{"@id":"https://fiveable.me/#organization"},"member":[{"@type":"Person","name":"Amanda DoAmaral","sameAs":["https://www.linkedin.com/in/adoamaral"]},{"@type":"Person","name":"Becky Bahr","sameAs":["https://www.linkedin.com/in/becky-bahr-b52743132"]}]},"publisher":{"@type":"Organization","name":"Fiveable","url":"https://fiveable.me"}},{"@type":"DefinedTerm","@id":"https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming#term","name":"Integer Programming","description":"Integer programming is an optimization method where some or all decision variables must be whole numbers. In Intro to Industrial Engineering, you use it for scheduling, routing, and allocation when fractions would not make sense.","url":"https://fiveable.me/introduction-industrial-engineering/key-terms/integer-programming","inDefinedTermSet":{"@type":"DefinedTermSet","name":"Intro to Industrial Engineering Key Terms","url":"https://fiveable.me/introduction-industrial-engineering/key-terms"}},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is integer programming in Intro to Industrial Engineering?","acceptedAnswer":{"@type":"Answer","text":"It is an optimization method where some or all decision variables must be whole numbers. You use it for industrial engineering problems like scheduling, routing, and assignment when fractional answers would not make sense."}},{"@type":"Question","name":"How is integer programming different from linear programming?","acceptedAnswer":{"@type":"Answer","text":"Linear programming allows fractional values as long as the constraints are satisfied. Integer programming adds whole-number restrictions, which makes the model more realistic for discrete decisions but also harder to solve."}},{"@type":"Question","name":"What is a simple example of integer programming?","acceptedAnswer":{"@type":"Answer","text":"A worker assignment problem is a classic example. If each worker can take one job and each job needs one worker, the model must use integer or binary variables so you do not end up assigning 0.5 of a worker."}},{"@type":"Question","name":"Why can’t I just round a linear programming solution?","acceptedAnswer":{"@type":"Answer","text":"Rounding can break the constraints or give a worse answer than necessary. In integer programming, the whole-number restriction is part of the model from the start, so the solution is checked against both the math and the real-world decision."}}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Intro to Industrial Engineering","item":"https://fiveable.me/introduction-industrial-engineering"},{"@type":"ListItem","position":2,"name":"Key Terms","item":"https://fiveable.me/introduction-industrial-engineering/key-terms"},{"@type":"ListItem","position":3,"name":"Unit 5","item":"https://fiveable.me/introduction-industrial-engineering/unit-5"},{"@type":"ListItem","position":4,"name":"Integer Programming"}]}]}
```
