Play with the optimization

Repair Shop Project

How to optimize this list of car which should assign to different stations with several constraints?

🔍 View Full Screen

Smart Scheduling for Repair Shops

Cut idle & overtime costs, speed up turnaround, and keep stations working at the right pace.

1) Introduction — The Cost of Inefficient Scheduling

Every idle minute at a station is paid capacity you don’t use. Every overtime minute is the same work at a higher price. Manual, “best-guess” schedules often cause both.

  • Idle stations → wasted labor & equipment capacity.
  • Overtime → paying more for the same output.
  • Knock-on effects → cars wait longer, customers get frustrated.
Goal: use smart scheduling to keep stations busy at the right pace—minimizing idle + overtime while reducing car flow time.
Open-shop setting Daily plan Station eligibility

2) Scheduling Model — What the Optimizer Does

Task: assign and sequence repair procedures to minimize total idle + overtime costs (and optionally, car flow time).

Key constraints

  • Each repair is done only at an eligible station.
  • A station works on one task at a time.
  • A car can be at one station at a time.

Inputs needed

  • Repair durations per car–task.
  • Eligibility: which stations can do which tasks.
  • Shift length & max allowable overtime.
  • Cost per minute for idle and overtime.

This is an open-shop variant: task order isn’t fixed, fitting real workflows.

3) The Mathematical Model — A Simple View

Decision variables

\(x_{ij}=1\) if task \(i\) is assigned to station \(j\); else \(0\).
\(s_i\) = start time of task \(i\).
\(OT_j \ge 0\) = overtime; \(ID_j \ge 0\) = idle time.

Objective

\(\min \; \sum_{j} \big( c^{OT}_j \cdot OT_j \;+\; c^{ID}_j \cdot ID_j \big)\)

Key constraints

\(\sum_{j \in \mathcal{J}_i} x_{ij} = 1\) (eligibility & assignment)
No overlap on a station \(j\).
One station per car at a time.
\(ID_j + \sum_{i} p_i x_{ij} = W_j + OT_j\).
\(0 \le OT_j \le \text{MaxOT}_j,\; ID_j \ge 0,\; x_{ij} \in \{0,1\}\).

4) How We Solve It (Exact Approach)

Small–medium cases → solve MILP directly for optimal schedules.

  • Few cars/tasks/stations.
  • Single or weighted objectives.
  • Acceptable CPU time.

5) Metaheuristics for Larger Shops

For big shops → metaheuristics (e.g., NSGA-II) get near-optimal schedules fast.

Why

  • Scales to large size.
  • Fast, high-quality results.
  • Handles multiple objectives.

Objectives

  • Minimize idle + overtime.
  • Minimize flow time.
  • Balance both via Pareto front.

Try it & Learn More

Explore a demo or review code:

Open live demo GitHub Code

The Result of Default Parameter Value Schedule