Case 10 / Scheduling decision support
A workspace for comparing machine schedules.
A Streamlit application that lets users define a production scheduling problem, run different solvers, and inspect objectives, computation times, Gantt charts, and search convergence.
- Dispatching Rules
- Genetic Algorithm
- Simulated Annealing
- Tabu Search
- Ant Colony
- LP Relaxation
- Streamlit
- Plotly
- 01 / FRAMEChoose a shopSingle, parallel, flow, job, or open shop
- 02 / DEFINESet the objectiveJob data, constraints, and performance measure
- 03 / SOLVERun methodsDispatch rules, metaheuristics, and bounds
- 04 / COMPAREInspect schedulesTables, Gantt, convergence, and timing
- Shop environments
- 5from one machine to open shop
- Metaheuristics
- 4GA, SA, Tabu Search, and ACO
- Deterministic checks
- 7 / 7passed in the documented verification run
“Best schedule” depends on the question.
Scheduling choices change when the machine environment, job constraints, and objective change. A sequence that minimizes the completion time of all work may differ from one that minimizes lateness or gives greater weight to urgent jobs.
This project brings several formulations into one interface. The user can see the selected assumptions next to the resulting schedules rather than comparing algorithms without a shared problem definition.
One problem, multiple strategies.
The application covers single machines, parallel machines, flow shops, job shops, and open shops. Inputs include processing times, release dates, due dates, weights, and supported precedence or deadline constraints. The editable job table changes its columns to match the selected formulation.
Objectives
Users can compare makespan, total completion time, weighted completion time, maximum lateness, and total tardiness. The schedule core calculates metrics and validates constructed schedules.
Solution methods
Dispatching rules include SPT, LPT, EDD, ERD, WSPT, FIFO, Wrap-Around, and Johnson's rule for two-machine flow shops. The system also includes Genetic Algorithm, Simulated Annealing, Tabu Search, Ant Colony Optimization, and LP-relaxation lower bounds.
Outputs include a solver comparison table, computation times, the best schedule, Gantt charts, and convergence plots. The goal is to let a user inspect trade-offs rather than receive a single unexplained sequence.
Check small cases against known answers.
The repository reports seven passing deterministic solver checks. Several compare a method or lower bound with an exhaustive optimum on a deliberately small case.
| Check | Recorded result |
|---|---|
| Single machine · makespan | LP bound = exhaustive optimum = SPT = 15 |
| Single machine · total completion | LP bound = exhaustive optimum = SPT = 26 |
| Single machine · maximum lateness | EDD = exhaustive optimum = 2 |
| Single machine · weighted completion | LP bound = exhaustive optimum = WSPT = 40 |
| Two-machine flow shop · makespan | Exhaustive optimum = 12; LPT = 14; SPT = 15 |
| Two parallel machines · makespan | LP bound = LPT = 9 |
| Tabu Search · total completion | Reached exhaustive optimum = 34 |
A separate job-shop order check produces different makespans from different orders, confirming that sequence affects the result in that test setting.
A prototype for exploring choices.
The checks support the implementation on small, inspectable cases. A heuristic's solution quality on a new instance depends on the problem, its parameters, and the time allowed for search. LP outputs are lower bounds or formulation-specific approximations, while a reported heuristic schedule is a feasible candidate.