← Back to Handbooks

Job Assignment (Assignment Problem) - Handbook

Type: BIP (Binary Integer Programming)

This handbook explains the Job Assignment sample problem in the LP Black Box platform.

This is the classic "Assignment Problem" - optimally assign workers to jobs.


The Problem

Scenario

Assign 4 workers to 4 jobs. Each worker has different skills, so their productivity varies per job. We want to maximize total productivity.

WorkerJob AJob BJob CJob D
Worker 185709065
Worker 275807085
Worker 390758070
Worker 460857580

Each worker can do exactly one job, and each job needs exactly one worker.

Your Goal

Maximize total productivity by assigning the best worker to each job.

The Key: Binary Variables

Each assignment is either:

Each row and column must have exactly one "1".

The Variables

VariableTypeMeaning
w1_jobABinary (0 or 1)Worker 1 → Job A
w1_jobBBinary (0 or 1)Worker 1 → Job B
w1_jobCBinary (0 or 1)Worker 1 → Job C
w1_jobDBinary (0 or 1)Worker 1 → Job D
w2_jobABinary (0 or 1)Worker 2 → Job A
.........

The Constraints

  1. Each worker does one job:

    • w1_jobA + w1_jobB + w1_jobC + w1_jobD = 1
    • w2_jobA + w2_jobB + w2_jobC + w2_jobD = 1
    • w3_jobA + w3_jobB + w3_jobC + w3_jobD = 1
    • w4_jobA + w4_jobB + w4_jobC + w4_jobD = 1
  2. Each job has one worker:

    • w1_jobA + w2_jobA + w3_jobA + w4_jobA = 1
    • w1_jobB + w2_jobB + w3_jobB + w4_jobB = 1
    • w1_jobC + w2_jobC + w3_jobC + w4_jobC = 1
    • w1_jobD + w2_jobD + w3_jobD + w4_jobD = 1

The Objective

Maximize: Sum of productivity scores for all assignments


How to Use

Step 1: Load the Sample

Select Job Assignment from the dropdown.

Step 2: Solve

The solver finds the optimal assignment (which worker goes to which job).

Step 3: Interpret Results


Try It Yourself


Real-World Applications


This demonstrates the classic Assignment Problem - finding the best one-to-one matching between two sets.