EarliestArrivalSolver
extends AbstractPathSolver
in package
implements
ScheduleSolverInterface
FinalYes
Plans the earliest-arriving schedule that satisfies a requested quantity.
Table of Contents
Interfaces
- ScheduleSolverInterface
- Computes one planned movement schedule from a planning request.
Methods
- schedule() : MovementSchedule
- Build one earliest-arrival movement schedule from a schedule request.
- candidateSourceSlots() : array<int, Slot, quantity: int|float}>
- Return source slots from the first step that currently have positive available quantity.
- earliestPath() : TimedMovementEdge}>, quantity: int|float}|null
- Find the earliest complete timed path from one source through the ordered flow steps.
Methods
schedule()
Build one earliest-arrival movement schedule from a schedule request.
public
schedule(ScheduleRequest $request) : MovementSchedule
Parameters
- $request : ScheduleRequest
Attributes
- #[Override]
Return values
MovementSchedulecandidateSourceSlots()
Return source slots from the first step that currently have positive available quantity.
private
candidateSourceSlots(array<int, MovementEdge> $edges, QuantityState $state, int|float $requestedQuantity) : array<int, Slot, quantity: int|float}>
Parameters
- $edges : array<int, MovementEdge>
- $state : QuantityState
- $requestedQuantity : int|float
Return values
array<int, Slot, quantity: int|float}>earliestPath()
Find the earliest complete timed path from one source through the ordered flow steps.
private
earliestPath(TimedSlotSpace $timedSpace, TimedSlot $start, int|float $startingQuantity, QuantityState $startingState, array<int, MovementEdge>}> $stepEdges, Slot $target, array<string, string> $params) : TimedMovementEdge}>, quantity: int|float}|null
Parameters
- $timedSpace : TimedSlotSpace
- $start : TimedSlot
- $startingQuantity : int|float
- $startingState : QuantityState
- $stepEdges : array<int, MovementEdge>}>
- $target : Slot
- $params : array<string, string>