Outages¶
In real-world manufacturing environments, machines and transport units experience downtime due to failures, maintenance, or recharging. JobShopLab provides a flexible system to model different types of outages.
Outage Types¶
JobShopLab supports three primary outage types:
FAIL: Unexpected breakdowns that require repair
MAINTENANCE: Scheduled maintenance activities
RECHARGE: common for transport units
Hint
The system can be extended to include other outage types as needed. The outage types DONOT have an effect on the behavior. They are only used for visualization and logging purposes.
Each outage type can be configured with:
Frequency: How often the outage occurs
Duration: How long the outage lasts
Both frequency and duration can be defined as fixed values or using stochastic models.
Configuration¶
Outages are defined in the DSL using the outages
section:
outages:
# Machine outages (applies to all machines)
- component: "m"
type: "maintenance"
duration: 5 # Fixed duration
frequency: 20 # Fixed frequency
# Specific machine outage
- component: "m-0"
type: "fail"
duration: # Stochastic duration
type: "gaussian"
mean: 10
std: 2
frequency: 30
# Transport unit outages
- component: "t"
type: "recharge"
duration: 8
frequency: # Stochastic frequency
type: "gamma"
shape: 2
scale: 5
base: 10
Component Specification¶
Use
component: "m"
to apply to all machinesUse
component: "m-0"
to apply to a specific machineUse
component: "t"
to apply to all transport unitsUse
component: "t-0"
to apply to a specific transport unit
Note
When multiple outage definitions apply to the same component, they will all be active simultaneously.
Implementing Outages¶
When an outage occurs:
The component transitions to a non-operational state
All operations on that component are paused and not released
After the outage duration elapses, the component returns to operational state
Stochastic Outages¶
Both the frequency and duration of outages can follow stochastic patterns:
outages:
- component: "m"
type: "maintenance"
duration:
type: "gaussian" # Normal distribution
mean: 5
std: 1
frequency:
type: "gamma" # Gamma distribution
shape: 2
scale: 5
base: 10
Hint
read more about stochastic time behavior in the Stochastic Time Behavior section.
Example: Full Implementation¶
Here’s a complete example with multiple outage types:
instance_config:
# Standard job and machine definitions...
outages:
# Regular maintenance for all machines
- component: "m"
type: "maintenance"
duration: 5
frequency: 100
# Random failures for machine 0
- component: "m-0"
type: "fail"
duration:
type: "gaussian"
mean: 8
std: 2
frequency:
type: "gamma"
shape: 3
scale: 10
# Recharging for AGVs
- component: "t"
type: "recharge"
duration: 10
frequency: 50