Source code for passengersim.rm.specialty_systems.fcfs
from passengersim.rm.standard_forecasting import StandardLegForecast
from passengersim.rm.systems import RmSys, register_rm_system
from passengersim.rm.untruncation import LegUntruncation
[docs]
@register_rm_system
class FirstComeFirstServed(RmSys):
"""A first come, first served RM system.
First come first served (FCFS) is a simple method for allocating capacity to
customers, and it operates pretty much as you would expect: customers whom
arrive first are offered products, no attempt is made to optimize for anything.
This process of capacity allocation will also occur if no RM optimization
algorithm is applied, but the explicit system allow the user to be intentional
about selecting this algorithm. This intentionality is enforced by PassengerSim,
as actually having no RM system is an error. This RM system allows the user to
explicitly select a no-optimization RM system.
This RM system does implement leg-level untruncation and forecasting, but does
not *do* any with the resulting forecasts.
"""
_name = "FCFS"
"""This RM system is registered under the name "FCFS"."""
availability_control = "leg"
"""This RM system uses leg-level class allocation availability controls."""
actions = [
LegUntruncation,
StandardLegForecast.configure(
fixed=dict(
algorithm="additive_pickup",
),
),
]