1.5 * PT - 0.5 * SL + 0.8 * DD
| ID | Resource Name | Utilization | Busy | Setup | Maint. | Queue Time | Idle | Ops Count |
|---|
| Job ID | Job Type Name | Batches Processed | Value Added Time (PT) | Non-Value Added Time (ST) | Queue Wait Time | Total Flow Time | Tardiness (Lateness) | Tardy Batches | Efficiency (VA / Flow %) |
|---|
| Sim Duration | Hours Per Shift | Shifts Per Day | Worker Productivity | Wastage / Scrap Rate | Prioritisation Rule | Routing Rule |
|---|
| Machine ID | Resource Name | Scheduled Downtime Windows (Day, Shift, Hour, Length) |
|---|
| Job ID | Job Name | Demand (Units) | Batch Size | Due Date | Priority | Process Sequence & Feasible Machine Speeds (Process / Setup) |
|---|
A Standard Job Shop Scheduling Problem (JSP) is characterized by a set of discrete jobs that must be processed on a set of unique machines. Each job has a strictly defined, linear sequence of operations (a routing matrix). Each operation in a standard Job Shop must be processed on one specific pre-allocated machine, resulting in strict machine routing constraints and localized bottlenecks.
A Flexible Job Shop Scheduling Problem (FJSS/FJSSP) generalizes the standard model by introducing machine routing flexibility. In an FJSS, a single operation of a job can be processed on any machine selected from a set of feasible candidate machines (resources), often with different processing and setup durations. This creates two distinct decision-making dimensions:
Every input field within this application maps directly into the discrete-event scheduling algorithms. The system variables are defined below:
| Input Field Label | Technical Purpose | Underlying Mathematical Model / Behavior |
|---|---|---|
| Total Days to Run | Sets the execution time horizon for the discrete event simulator. | Sim_Horizon_Mins = Days * Shifts_Per_Day * Hours_Per_Shift * 60. Simulation halts automatically once this limit is reached. |
| Base Time Unit | The visual base of measure next to each input field and in dashboard KPIs. | Allows entering times in minutes or hours individually, dynamically scaling all values to minutes inside the engine. |
| Hours Per Shift / Shifts Per Day | Establishes the shop floor labor shift and operational day calendar. | Determines simulation calendar bounds to map maintenance schedules accurately onto absolute timelines. |
| Worker Productivity Coefficient | Accounts for labor efficiency, learning curves, or experience levels. | Scales raw process times: PT_actual = (PT_per_unit * BatchSize) / WorkerProductivity. Values > 1.0 accelerate completion speeds. |
| Wastage / Scrap Defect Rate | Simulates typical manufacturing scrap, defects, and yields. | Applies a scrap safety multiplier: Required_Starts = Demand / (1 - ScrapRate) (rounded up), dynamically scaling batch workloads. |
| Scheduled Maintenance | Allows planning machine downtime slots (Day, Hour, Duration). | Downtime blocks the target machine entirely. Counts as non-value-add downtime in resource utilization metrics. |
| Batch Size (Per Job) | The size of the physical production batch transferred together. | Processes times and setup times are multiplied by active batch size in simulation: PT_actual = PT_per_unit * BatchSize. |
| Setup Time (Per Route) | The duration required to clean, retool, or re-program a machine. | Applied as a transition overhead if the machine is switching from a different job type. Scaled to: ST_actual = ST_per_unit * BatchSize. |
When a job finishes an operation and needs to route to its next step, the Machine Assignment Rule resolves which feasible resource to route to:
When a machine finishes its current operation and has a queue of multiple waiting jobs, the dispatching engine ranks the jobs. The job returning the lowest priority score is dispatched first:
| Rule Tag | Rule Name | Mathematical Dispatch Score Definition |
|---|---|---|
| SPT | Shortest Processing Time | Score = PT_actual (Minimizes average work-in-progress and flow time). |
| LPT | Longest Processing Time | Score = -PT_actual (Gives priority to large, resource-heavy jobs). |
| EDD | Earliest Due Date | Score = DueDate (Minimizes maximum job lateness). |
| MST | Minimum Slack Time | Score = DueDate - CurrentTime - RemainingWorkContent. |
| FCFS | First Come First Served | Score = QueueArrivalTime (Simple sequence queue order). |
| CR | Critical Ratio | Score = (DueDate - CurrentTime) / RemainingWorkContent. |
| C1 | Composite Rule 1 | Score = 2 * PT + LWKR + FDD |
| C2 | Composite Rule 2 | Score = 2 * PT + LWKR + Slack |
| C5 | Academic Composite | Score = 7 * TotalWorkContent + 11 * PT + 12 * (RemainingOps + CurrentTime) |
To master custom priority equations, coordinators must understand the exact formulation and manufacturing importance of each variable token:
RW = Sum(Average Feasible Process Time of all remaining operations)
Slack = DueDate - CurrentTime - RemainingWorkContent
RO = TotalOperations - CurrentOperationIndex
Flow_DueDate = ArrivalTime + (Alpha * PT)
LTWC = Sum(Average Feasible Process Time of all operation steps from start to finish)
0 and the best becomes 1.1.00, ensuring mathematical consistency.1.5 * PT - 0.5 * SL.Once the discrete-event simulator compiles the timeline, it populates the Output Dashboard:
FlowTime = CompletionTime - ReleaseTime.Tardiness = Max(0, CompletionTime - DueDate).