Node model
Unique identifier of the node
Required for pickup and dropoff nodes. Unique identifier of the booking this node belongs to (used to correlate pickup and dropoff nodes).
Transit stop corresponding to this node.
Latitude of the node
Longitude of the node
demand objectrequired
The number of ordinary passengers to be transferred or a dictionary where the key is the type of seat (ordinary passenger is "passenger") and the value is the number of seats required.
In Logistics this could be how many tons of goods the vehicle needs to pickup/dropoff from this node
Earliest date and time when the node processing can be started.
Latest date and time when the node processing can be started.
Time required for a vehicle to be serviced (loaded or unloaded) at this node
Sets type of the node
Possible values: [dropoff, point, pickup, vehicle_position, depot]
Latest date and time when the node processing can be started. Usually equals close_time_ts and is applied to the dynamic algorithm type.
Name of the location.
Code of the location if applicable.
Date and time when this node is supposed to be visited. NOTE: This should be omitted unless required explicitly by the use case.
Dropoff node's close_time_ts_dynamic minus pickup node's open_time_ts_dynamicif algorithm is dynamic
Dropoff node's close_time_ts minus pickup node's open_time_ts otherwise
Date and time when node service started. Is required for vehicle.completed_nodes, otherwise may be omitted.
Flag that enables LIFO order check for nodes of this booking. Used only if use_lifo_order_check is set for model.
Enables or disables the LIFO order logic for this node. LIFO logic is a soft constraint forcing the pickups and drop offs to happen in LIFO sequence related to the vehicles (last picked up order is prioritized for the drop off)
falsePenalty value that defines that LIFO constraint for this node is soft.
list of group names as strings for this node. Items in this list are used for processing of mutually-exclusive groups constraint.
maximum slack limitation for this node.
Transit stop weight. Weight of the node that is added to cost function if the stop is active.
Whether to allow the node to be re-assigned to another vehicle.
Rejection penalty for the node (large value added to overall cost function) for not performing this booking. If value is null penalty value is taken from model_parameters.booking_penalty settings.
This value should be large enough to justify cost of travelling to the node, or cost of violating soft constraints if any to have the node assigned to a vehicle. Values can vary from hundreds to millions depending on the usecase.
Timestamp for which transits from this node should be calculated.
Default value is node.open_time_ts
Geofence id for this node.
List of geofence ids for this node (if node is close to geofences border).
Price of trip time for this booking. Overall trip cost for booking is calculated as real travel time * trip_cost. Default value is defined in scheduler settings.
Defined options to get the final scheduled time of this node. If set to 'max', the algorithm is trying to "shift" a solution to schedule a node visit as late as possible within a given solution (thus minimizing slack); when set to 'min', it tries to schedule the node visit as early as possible. This is a post-processing step that does not impact the solution but tries to adjust the result.
Possible values: [min, max]
vehicle_characteristics object
Required vehicle characteristics to perform this node. Required vehicle characteristics for booking must be a dictionary mapping the required characteristic name to characteristic minimum value (as value convertible to integer) or value range (as dict, containing 'min' and 'max' keys).
Important note: all characteristics must be present in the list of characteristics for all vehicles.
property name* object
- number
- Ranged characteristic
Value of the characteristic, for example:
{
"manpower": 3
}
Minimum value of the characteristic
Maximum value of the characteristic
Vehicle labels contain constraints, represented as dicts, that may contain string labels or sub-constraints. A constraint is a dict, containing only one entry with keys: "and", "or" or "not". Keys "and" and "or" define the AND or OR logic functions. Values for these keys should be a list of either string labels or dicts, containing sub-constraints. The key "not" defines the NOT logic function. The value for this key can be a single string or a single sub-constraint. Example of vehicle labels constraints:
'1' AND ('2' OR '3') AND NOT ('4' AND '5') as
{"and": [{"or": ["2", "3"]}, {"not": {"and": ["4", "5"]}}]}
End of vehicle trip marker must be set for all nodes located at the depot(s). This allows scheduler to calculate number of vehicle trips and obey number_of_trips constraint.
List of additional time windows.
{
"uid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"booking_uid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stop_id": "string",
"lat": 0,
"lon": 0,
"demand": {},
"open_time_ts": "2024-07-29T15:51:28.071Z",
"close_time_ts": "2024-07-29T15:51:28.071Z",
"service_time": 0,
"node_type": "dropoff",
"close_time_ts_dynamic": "2024-07-29T15:51:28.071Z",
"location_name": "string",
"location_code": "string",
"scheduled_ts": "2024-07-29T15:51:28.071Z",
"max_trip_duration": 0,
"started_service_at_ts": "2024-07-29T15:51:28.071Z",
"lifo_order_check": false,
"lifo_order_penalty": 0,
"groups": [
"string"
],
"max_slack": 0,
"weight": 0,
"allow_jump": true,
"penalty": 0,
"matrix_timestamp": "2024-07-29T15:51:28.071Z",
"geofence_id": "string",
"geofence_ids": [
"string"
],
"trip_cost": 0,
"finalization_type": "min",
"vehicle_characteristics": {},
"vehicle_labels": "Unknown Type: object,null",
"end_of_trip": true,
"time_windows": [
"string"
]
}