メインコンテンツまでスキップ

Node data model in the context of VRP problem

uidstring<uuid>required

Unique identifier of the node

booking_uidstring<uuid>

Required for pickup and dropoff nodes. Unique identifier of the booking this node belongs to (used to correlate pickup and dropoff nodes).

stop_idstring

Transit stop corresponding to this node.

latnumberrequired

Latitude of the node

lonnumberrequired

Longtitude 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 need to pickup/dropoff from this node

property name*integer
open_time_tsstring<date-time>required

Earliest date and time when the node processing can be started.

close_time_tsstring<date-time>required

Latest date and time when the node processing can be started.

service_timenumberrequired

Time required for a vehicle to be serviced (loaded or unloaded) at this node

node_typeNode types enum (string)required

Sets type of the node

Possible values: [dropoff, point, pickup, vehicle_position, depot]

close_time_ts_dynamicstring<date-time>

Latest date and time when the node processing can be started. Usually equals close_time_ts and is applied to the dynamic algorithm type.

location_namestring

Name of the location.

location_codestring

Code of the location if applicable.

scheduled_tsstring<date-time>

Date and time when this node is supposed to be visited. NOTE: This should be omitted unless required explicitly by the use case.

max_trip_durationnumber

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

started_service_at_tsstring,null<date-time>nullable

Date and time when node service started. Is required for vehicle.completed_nodes, otherwise may be omitted.

lifo_order_checkboolean

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)

Default value: false
lifo_order_penaltynumber | nullnullable

Penalty value that defines that LIFO constraint for this node is soft.

groupsstring[]

A list of group names as strings for this node. Items in this list are used for processing the mutually-exclusive groups constraint.

max_slacknumber

maximum slack limitation for this node.

weightnumber | nullnullable

Transit stop weight. Weight of the node that is added to cost function if the stop is active.

allow_jumpboolean

Whether to allow the node to be re-assigned to another vehicle.

penaltynumber

Rejection penalty for the node (a large value added to the overall cost function) for not performing this booking. If the value is null, the penalty value is taken from model_parameters.booking_penalty settings. This value should be large enough to justify the cost of traveling to the node or the 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 use case.

matrix_timestampstring,null<date-time>nullable

Timestamp for which transits from this node should be calculated. Default value is node.open_time_ts

geofence_idstring | nullnullable

Geofence id for this node.

geofence_idsstring[]

List of geofence ids for this node (if node is close to geofences border).

trip_costnumber<float>

Price of trip time for this booking. The overall trip cost for a booking is calculated as real travel time * trip_cost. The default value is defined in the scheduler settings.

finalization_typestring

Defines options to get the final scheduled time of this node. If set to 'max', the algorithm tries to "shift" a solution to schedule the 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
anyOf
number

Value of the characteristic, for example:

{
"manpower": 3
}
vehicle_labelsobject | nullnullable

Vehicle labels contain constraints, represented as dictionaries, that may contain string labels or sub-constraints. A constraint is a dictionary containing only one entry with keys: "and", "or", or "not". The keys "and" and "or" define the AND or OR logic functions, and their values should be a list of either string labels or dictionaries containing sub-constraints. The key "not" defines the NOT logic function, and its value 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_tripboolean

The end-of-vehicle-trip marker must be set for all nodes located at the depot(s). This allows the scheduler to calculate the number of vehicle trips and obey the number_of_trips constraint.

time_windowsstring[]

List of additional time windows.

Node data model in the context of VRP problem
{
"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"
]
}