flatland.envs.agent_utils module#

class flatland.envs.agent_utils.Agent(initial_position, initial_direction, direction, target, moving, earliest_departure, latest_arrival, handle, position, arrival_time, old_direction, old_position, speed_counter, action_saver, state_machine, malfunction_handler, waypoints, waypoints_earliest_departure, waypoints_latest_arrival)[source]#

Bases: NamedTuple

action_saver: ActionSaver#

Alias for field number 13

arrival_time: int#

Alias for field number 9

direction: Grid4TransitionsEnum#

Alias for field number 2

earliest_departure: int#

Alias for field number 5

handle: int#

Alias for field number 7

initial_direction: Grid4TransitionsEnum#

Alias for field number 1

initial_position: Tuple[int, int]#

Alias for field number 0

latest_arrival: int#

Alias for field number 6

malfunction_handler: MalfunctionHandler#

Alias for field number 15

moving: bool#

Alias for field number 4

old_direction: Grid4TransitionsEnum#

Alias for field number 10

old_position: Tuple[int, int]#

Alias for field number 11

position: Tuple[int, int]#

Alias for field number 8

speed_counter: SpeedCounter#

Alias for field number 12

state_machine: TrainStateMachine#

Alias for field number 14

target: Tuple[int, int]#

Alias for field number 3

waypoints: List[Waypoint]#

Alias for field number 16

waypoints_earliest_departure: List[int]#

Alias for field number 17

waypoints_latest_arrival: List[int]#

Alias for field number 18

class flatland.envs.agent_utils.EnvAgent(initial_position: Tuple[int, int], initial_direction: Grid4TransitionsEnum, direction: Grid4TransitionsEnum, target: Tuple[int, int], moving: bool = False, earliest_departure: int | None = None, latest_arrival: int | None = None, waypoints: List[Waypoint] = NOTHING, waypoints_earliest_departure: List[int] = NOTHING, waypoints_latest_arrival: List[int] = NOTHING, handle=None, speed_counter: SpeedCounter = NOTHING, action_saver: ActionSaver = NOTHING, state_machine: TrainStateMachine = NOTHING, malfunction_handler: MalfunctionHandler = NOTHING, position: Tuple[int, int] | None = None, arrival_time: int | None = None, old_direction=None, old_position=None)[source]#

Bases: object

classmethod apply_timetable(agents: List[EnvAgent], timetable: Timetable)[source]#
classmethod from_line(line: Line)[source]#

Create a list of EnvAgent from lists of positions, directions and targets

get_current_delay(elapsed_steps: int, distance_map) int[source]#

+ve if arrival time is projected before latest arrival -ve if arrival time is projected after latest arrival

get_shortest_path(distance_map) List[Waypoint][source]#
get_time_remaining_until_latest_arrival(elapsed_steps: int) int[source]#
get_travel_time_on_shortest_path(distance_map) int[source]#
classmethod load_legacy_static_agent(static_agents_data: Tuple)[source]#
property malfunction_data#
reset()[source]#

Resets the agents to their initial values of the episode. Called after ScheduleTime generation.

property speed_data#
property state#
to_agent() Agent[source]#
flatland.envs.agent_utils.load_env_agent(agent_tuple: Agent)[source]#