Operations 4 min read

How 0‑1 Integer Programming Solves Assignment Problems: A Relay Team Example

This article explains 0‑1 integer programming, its advantages, common solution methods, and demonstrates its application to an assignment problem using a relay‑team case study solved with Python's PuLP library, yielding the optimal swimmer‑stroke allocation.

Model Perspective
Model Perspective
Model Perspective
How 0‑1 Integer Programming Solves Assignment Problems: A Relay Team Example

0‑1 Planning

When the integer decision variables in an integer programming problem are restricted to 0 or 1, the problem is called 0‑1 integer programming, or 0‑1 planning.

Because the solution space of 0‑1 problems is smaller than that of general integer programs, they are easier to solve, and any integer program can be transformed into a 0‑1 program; therefore, when building mixed‑integer models, 0‑1 variables should be used whenever possible.

Example: If ten factories are under consideration, ten 0‑1 variables can indicate whether each factory is used (1) or not (0).

Common solution methods for 0‑1 planning include branch‑and‑bound, cutting‑plane, and implicit enumeration.

Assignment Problem

The assignment problem seeks to allocate each person to exactly one task so that the total cost (or time) is minimized.

Solution: Introduce binary variables x_{ij} that equal 1 if person i is assigned to task j, otherwise 0. The mathematical model includes constraints ensuring each person is assigned to one task and each task receives exactly one person.

Case Study: Relay Team Division

Four relay swimmers A, B, C, D have the following best times (lower is better) for four strokes.
Stroke1 Stroke2 Stroke3 Stroke4
A       56      74      61      63
B       63      69      65      71
C       57      77      63      67
D       55      76      62      62

Solution: Formulate the problem as an assignment model with binary variables indicating which swimmer performs which stroke, then solve using Python’s PuLP library.

Optimal assignment:
A -> Stroke3
B -> Stroke2
C -> Stroke1
D -> Stroke4
Total time = 249.0
Optimizationinteger programming0-1 programmingassignment problemPuLP
Model Perspective
Written by

Model Perspective

Insights, knowledge, and enjoyment from a mathematical modeling researcher and educator. Hosted by Haihua Wang, a modeling instructor and author of "Clever Use of Chat for Mathematical Modeling", "Modeling: The Mathematics of Thinking", "Mathematical Modeling Practice: A Hands‑On Guide to Competitions", and co‑author of "Mathematical Modeling: Teaching Design and Cases".

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.