Skip to main content

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).

Back to top