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.
Assign 4 workers to 4 jobs. Each worker has different skills, so their productivity varies per job. We want to maximize total productivity.
| Worker | Job A | Job B | Job C | Job D |
|---|---|---|---|---|
| Worker 1 | 85 | 70 | 90 | 65 |
| Worker 2 | 75 | 80 | 70 | 85 |
| Worker 3 | 90 | 75 | 80 | 70 |
| Worker 4 | 60 | 85 | 75 | 80 |
Each worker can do exactly one job, and each job needs exactly one worker.
Maximize total productivity by assigning the best worker to each job.
Each assignment is either:
Each row and column must have exactly one "1".
| Variable | Type | Meaning |
|---|---|---|
| w1_jobA | Binary (0 or 1) | Worker 1 → Job A |
| w1_jobB | Binary (0 or 1) | Worker 1 → Job B |
| w1_jobC | Binary (0 or 1) | Worker 1 → Job C |
| w1_jobD | Binary (0 or 1) | Worker 1 → Job D |
| w2_jobA | Binary (0 or 1) | Worker 2 → Job A |
| ... | ... | ... |
Each worker does one job:
w1_jobA + w1_jobB + w1_jobC + w1_jobD = 1w2_jobA + w2_jobB + w2_jobC + w2_jobD = 1w3_jobA + w3_jobB + w3_jobC + w3_jobD = 1w4_jobA + w4_jobB + w4_jobC + w4_jobD = 1Each job has one worker:
w1_jobA + w2_jobA + w3_jobA + w4_jobA = 1w1_jobB + w2_jobB + w3_jobB + w4_jobB = 1w1_jobC + w2_jobC + w3_jobC + w4_jobC = 1w1_jobD + w2_jobD + w3_jobD + w4_jobD = 1Maximize: Sum of productivity scores for all assignments
Select Job Assignment from the dropdown.
The solver finds the optimal assignment (which worker goes to which job).
This demonstrates the classic Assignment Problem - finding the best one-to-one matching between two sets.