SupervisorQueueScenario
Robotics scenarios · Implementation: mlsysim/engine/scenario_definitions/robotics/supervision.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
One remote assistant serving machines, each asking for help at request_rate, each request holding the assistant for service_time; utilization_cap sizes the largest fleet.
Notes
Equation: SupervisorQueueModel composes machine arrival rates and service time; the fleet ceiling floors utilization_cap/(request_rate*service_time).
Assumptions: Arrivals are stationary and service time is a mean; a fleet ceiling requires a non-null utilization cap.
Excludes: Shift scheduling, vacations, correlated fleet incidents, and guaranteed tail response times.
References
Derivation: the scenario composes mlsysim.solvers.SupervisorQueueModel. Their contracts supply the underlying equations; property equations show the remaining unit conversions and accounting.
Examples
>>> from mlsysim import Scenarios
>>> scenario = Scenarios.WarehouseRemoteAssistantQueue
>>> value = scenario.result
>>> type(value).__name__
'SupervisorQueueResult'Attributes
| Name | Description |
|---|---|
| machines | |
| max_machines | Integer fleet ceiling obtained by dividing the utilization cap by per-machine service |
| request_rate | |
| result | Queue result from SupervisorQueueModel.solve with per-machine arrivals, service |
| service_time | |
| utilization_cap |
request_rate
Type: Quantity.
Declared default: required.
service_time
Type: Quantity.
Declared default: required.
machines
Type: int.
Declared default: required.
utilization_cap
Type: Optional[float].
Declared default: None.
result
engine.scenario_types.SupervisorQueueScenario.result
Queue result from SupervisorQueueModel.solve with per-machine arrivals, service duration, and fleet size.
Equation: SupervisorQueueModel().solve(request_rate, service_time, machines).
max_machines
engine.scenario_types.SupervisorQueueScenario.max_machines
Integer fleet ceiling obtained by dividing the utilization cap by per-machine service demand.
Equation: _math.floor(utilization_cap / (request_rate * service_time).to('').magnitude).