Help - Optimization: Assignment (optima_assignment)
Click here to open the calculator: Optimization: Assignment
Optimization: Assignment
Purpose
This calculator assigns tasks to agents at minimum total cost while honoring agent capacity limits.
It is designed for one-to-one task coverage: each task must be assigned exactly once. In practice, it answers a concrete question: given everyone's cost or effort profile, who should be paired with which task so total cost stays as low as possible while nobody is overloaded?
Background
Problem Domain
Assignment optimization is a binary integer program where each decision is
either assign (1) or do not assign (0). The classic one-to-one version of
this problem can be solved in polynomial time by the Hungarian algorithm; this
model generalizes it with per-agent capacity, so one agent can take on
several tasks.
Real-World Uses
- Staff-to-ticket assignment: Workload is uneven and handling cost differs by staff member. Use the model to assign one owner per ticket at minimum total cost.
- Machine-to-work-order assignment: Each machine has limited capacity and different processing efficiency by job. Use the model to find a feasible, low-cost machine-job mapping.
- Field engineer dispatch: Several engineers can handle each call, but travel/time cost differs. Use the model to assign calls at lowest cost while keeping engineer load within capacity.
- Reviewer/proctor allocation: Every task must be covered, but reviewer bandwidth is finite. Use the model to guarantee full coverage at minimum assignment cost.
Inputs
agents: Input table with columnsAgentandCapacity.Capacityis the maximum number of tasks that each agent can take.tasks: Input table with columnTask, listing all tasks to be assigned.assign_cost: Input table with columnsAgent,Task, andCost.Costis the assignment cost for that agent-task pair. This table must contain the complete Agent-Task pair grid.show_zero: Controls output display. Turn on to includeAssigned = 0rows; turn off to show only selected assignments.
Results
Summary: High-level optimization outcome withStatus, minimumObjective, andDecision Count. This is your quick feasibility and performance checkpoint before acting on detailed rows.Decision Table: Pair-level assignment output (Agent,Task,Assigned,Cost). This is the actionable allocation plan to execute.Resource Utilization: Per-agent workload view (Assigned Tasks,Capacity,Utilization %) showing where agents are underused or near saturation.Constraint Slack: Tightness of task-coverage and agent-capacity constraints. Helps identify whether cost is being driven by scarce capacity.
Understanding the Calculation
The model solves:
- Minimize:
- Task coverage: for each task
- Agent capacity:
- Binary: .
Example
With defaults, solution is Optimal with objective 10 and assignments:
A1 -> T2A2 -> T1A3 -> T3
Interpretation: all tasks are covered exactly once at minimum total cost. A single changed cost cell can flip an entire assignment pattern, which is why it's worth re-running this model whenever pricing or effort estimates shift.
Important Assumptions and Limitations
- Each task is assigned once, not fractionally.
- Agent capacities are upper bounds only.
- No skill/precedence/time-window constraints in this model.