Simulation data model
A simulation represents a period of operations for route optimization, such as a day or a shift. This object contains settings that are applied at the simulation level. Please note that some settings are applied at the time of action execution for objects in the simulation, and therefore, changes to these settings at the simulation level will not affect settings derived by objects within it.
Overrides and restricts maximum value of the max_trip_duration
Parameter used to calculate maximum journey duration controlled by journey_duration_source parameter in JIT mode.
Maximum waiting time in seconds. Waiting time is defined as time from requested pickup to vehicle arrival time. This is mostly applicable for passenger on-demand and JIT service.
Allow driver break intervals adjustments
trueAlgorithm objective type for optimisation
Possible values: [total_time, total_distance]
Type of algorithm to be used for optimization:
STATIC: max_dropoff_time = min_pickup_time + max_trip_durationDYNAMIC: max_dropoff_time = exact_pickup_time + max_trip_durationDYNAMIC 2 STAGES: 1st stage - STATIC, 2nd stage - DYNAMICTIMELESS: without pickup and dropoff time constraints, optimizing only total trip mileageSTATIC_OR_DYNAMIC: first try static, then dynamic.
Possible values: [dynamic, dynamic_2_stages, static, static_or_dynamic, timeless]
Allow jump to other vehicle, applicable to passenger
falseLegacy service template UUID. It is used in people transport on-demand workflows.
Time when the simulation should end accepting bookings. Default is the end_time
Time when the simulation should start accepting bookings. Default is the start_time
Number of bookings in the simulation.
0data object
logistics_api_settings object
General metadata parameters describing the simulation, including predefined settings for groups, compound zones, cumulative limitations, etc., that will need to be configured for respective nodes (vehicles or bookings).
Use only pdp mode, if false, default cvrptw is used
Trip cost
Single calculation - simple approach: Just one stateless API call and assignment. Two stages: First, an estimation of timestamps; second, a precise calculation.
Possible values: [simple_one_stage, two_stages]
Max pickup nodes slack
Max dropoff nodes slack
Defines whether to use paths equalizer
falseDefines weight of the additional cost element produced by variance of path lengths.
100geofence_definition_strategy object
- By Dropoff
- By Pickup
- Independent
- Mixed
By dropoff location. Both pickup and dropoff nodes will be labeled with same geofence Defined by dropoff point
by_dropoffBy pickup location. Both pickup and dropoff nodes will be labeled with same geofence Defined by pickup point
by_pickupBoth pickup and dropoff nodes may be labeled with different geofences Defined by corresponding locations
independentWorks like independent but if geofences are different, then Nodes are labeled with both geofences.
mixedAverage travel duration to node
Possible values: >= 0
geofence_vehicle_allocation_strategy object
Geofence vehicle allocation strategy.I.e. how vehicles should be assigned to geofences. Mostly needed for cases when nodes are outside of all geofences. STRICT: Nodes with empty geofence tag can be picked up only by empty vehicle FLEXIBLE: Nodes with empty geofence tag can be picked up by any vehicle
- Geofence Vehicle Allocation Strategy
- null
Geofence vehicle allocation strategy.
Possible values: [strict, flexible]
Allow booking updates after the simulation started. Set it to true if new orders can be added after the simuatlation started (for example, for live insertions)
falseShould set max_slack of start-location to zero or not
Sets if pikcup node should be treated as the end of the trip. THis is required for number of trips vehicle constraint.
Sets if dropoff node should be treated as the end of the trip. THis is for number of trips vehicle constraint.
Allows selecting a custom solver that supports the stateless API contract for the simulation.
If custom stateless API is selected, can be used to overload login from the request context login
If custom stateless API is selected, can be used to overload password from the request context password
Locks the upcoming stop during optimization for the vehicles. This helps to avoid driver confusion when they may be required to change the stop they are already driving to as a result of a live order insertion.
trueEnables or disables default inclusion of failed to pickup orders into optimization
trueA switch to enable or disable truck ban
truckban_strategy object
Strategy on how to address truckban
- Truck Ban Strategy
- null
Strategy in handling truck ban
Possible values: [default, duplicate_nodes]
Buffer time when adjusting time windows due to truckban
booking_order_prioritization object
Activate booking order prioritization
- Booking Order Prioritization
- null
Strategy in executing booking order prioritization
Possible values: [disabled, strict, non_strict]
Slack cost for all the nodes
Optimize slacks in logistics mode.
Path constraints mode.
Activate node grouping logic
node_grouping_capacity_strategy object
Strategy of the node grouping capacity requirement
- Node Grouping Capacity Strategy
- null
Strategy in deciding how node grouping should be done with respect with the capacity requirement
Possible values: [min, max, median, mean, ignore]
Clearance of cumulative limitations, if needed
Try to minimize slack in manual edit api.
Whether manual edit api call should have vehicle.logistics_optimize_slack or no
Take into account vehicle start time when performing manual edit actions, where applicable.
Kind of the solver to be used with manual edit api.
Possible values: [local, remote]
LOCALFinalization type of pickup nodes.
Finalization type of dropoff nodes.
Allow vehicle late.
trueMaximum possible lateness.
Possible values: >= 1
Lateness penalty coefficient.
Possible values: >= 0
10Optimization quantity.
Slack cost factor (for manual edit api only)
route_cost_modification_primary object
Additional params for route cost modification for primary routing engine
- Route Cost Modification
- null
The type of travel cost matrix in which the route cost modification is applied to
Possible values: [time, distance]
Add penalty cost to nodes whose matrix type value is either greater or less than the specified threshold
Possible values: [greater, less]
Threshold value
Penalty cost
route_cost_modification_secondary object
Additional params for route cost modification for secondary routing engine
- Route Cost Modification
- null
The type of travel cost matrix in which the route cost modification is applied to
Possible values: [time, distance]
Add penalty cost to nodes whose matrix type value is either greater or less than the specified threshold
Possible values: [greater, less]
Threshold value
Penalty cost
Solver to be used for optimization. dynamic should be used for real time operations (on-demand)
Possible values: [static, dynamic]
staticThe first_solution_strategy value defines the first solution-finding strategy to be used during calculations. See the documentation for a detailed explanation of each strategy.
0Limit to the number of solutions generated during the search.
10000000Flag that enables the use of a local search metaheuristic.
falseParameter of the local search procedure.
0.1Flag that enables Traveling Salesperson Problem (TSP) optimization.
falseLimit in ms to the time spent in the search.
10000000Flag that enables log search.
falseLimit in ms to the time spent in the completion search for each local search neighbor.
1000Savings neighbors ratio.
0Enables second phase waypoints optimization for prebook.
falseWaypoints solution limit in the second phase.
1000Minimum step by which the solution must be improved in local search.
1Use all available local search operators.
falseIf true, the solver should use depth-first search rather than local search to solve the problem.
falseList of additional local search operator names. Currently supported: extended_swap_active that improves solutions when waypoints are used;
logistics_relocate_pair that improves performance when logistics problem is solved in prebook mode.
Possible values: [extended_swap_active, logistics_relocate_pair]
First solution strategies for second stage (Only one of them is used)
Maximum calculation time for second stage in milliseconds
cost of each vehicle. In scenarios where trips take much longer than 2.78 hours (10000 s) or 10 km (10000 m), vehicle cost of 10000 might lead to higher number of vehicles used (as the cost of initiating additional vehicle is cheaper than using the existing ones).
0Amortized default vehicle cost (linear part)
nullAmortized default vehicle cost (quadratic part)
nullThe penalty refers to a cost associated with dropping visits to certain locations. In vehicle routing problems, penalties are used to make a trade-off between visiting every location and minimizing overall costs (such as distance or time). If visiting a location is not feasible, a penalty is incurred instead. This allows the solver to skip visits to some locations, especially when visiting them would lead to excessive costs or infeasibility, while still returning a valid solution. This penalty is added to the total objective function and helps guide the solver in making decisions about which locations to skip.
10000Only set to true if vehicles are using different routing profile.
falseFlag that enables the use of walking time in time window reduction.
falseIf true then optimization goal is always total_distance regardless of the value passed in optimization_quantity.
falseDefines the optimization goal. Possible values: total_time - optimize the total time of all routes, and total_distance - optimize the total distance of all routes.
Possible values: [total_time, total_distance]
total_timeMaximum slack in seconds or null if no limitation required.
nullFlag that enables LIFO order check for the nodes of this booking. Used only if use_lifo_order_check is set for the model.
falseFlag that enables LIFO order checking on all vehicles in the model.
trueList of mutually-exclusive group relations. Group names are set in the group field for bookings and nodes. Each item in the list should be a list of string group names whose bookings (or nodes) cannot be on the same vehicle at the same time. For example, [["group1", "group2"], ["group2", "group3"]] prohibits bookings with groups group1 and group2, as well as group2 and group3, from being transferred in the same vehicle at the same time, but allows simultaneous transfer of bookings with groups group1 and group3.
If strictly_exclusive_groups are not set, then this constraint is soft, and its weight is based on the group_crossing_penalty value. To achieve a hard constraint, strictly_exclusive_groups should have a list of such groups.
Some groups can have a hard constraint while others have a soft constraint at the same time.
List of groups that cannot, under any circumstances, be crossed with other groups. Default: All groups are strictly-exclusive.
Penalty for crossing non-strictly exclusive groups.
compound_zones object[]
This list contains zones where entering or exiting may require additional time. Compound zone parameters will be applied to nodes belonging to the groups specified in this list, and the compound zone time will be added to the total travel time for those nodes. This allows for optimization against nodes with shorter enter/exit times and supports scenarios with fixed, required docking times.
A list of groups that belong to the zone.
Represents and validates UUID string
Time in seconds required to enter the zone
0Time in seconds required to exit the zone
0cumulative_limitations object[]
Contains a list describing limitations on the number of cumulative vehicles at the starting depot. This option is used to limit the number of vehicles that can be serviced simultaneously at the same depot, as well as to manage how vehicles are serviced at the depot.
For this option to work properly, every vehicle should have no more than one node of type vehicle_position, bound as a partial route. This node is a placeholder for the pickup event. If the partial_route contains other nodes, the vehicle_position node must be the last in the list. The list of nodes_uids should hold the UIDs of these pickup nodes. The scheduler will split pickup time intervals into service intervals, each with a duration of depot_service_time. After this, the scheduler will remove the initial pickup nodes and instead insert pickup nodes, one per vehicle, for every service interval.
Options group and node_uids can be used together in the same cumulative limitation instance.
Nodes belonging to this group will be included in the list identifying the pickup location.
List of node UIDs identifying the pickup location.
Time in seconds to service a vehicle in the nodes defined in this object.
Number of vehicles that can be served at these pickup nodes at the same time.
groups_order object
Order of groups. A dictionary that should contain group names mapped to an integer sequence number for this group.
Node ordering depends on their assigned groups and the groups_order configuration:
- Nodes with groups in
groups_order: These nodes are sorted by their priority values. Higher priority values appear earlier. - Nodes without groups in
groups_order: These nodes have the lowest priority and appear after all nodes in point 1. - Nodes with groups in
groups_orderbut withNonepriority: The order of these nodes is undefined, and they may appear anywhere in the sequence.
route_compactness object
Route compactness is achieved by employing a polylinear model that adds a cost (either time or distance, depending on the optimization goal) to vehicle travel to the nodes. This model penalizes longer travel, thereby promoting more compact routes. Integrated into the total cost function as a soft constraint, this mechanism automatically increases route compactness, balancing it against other optimization penalties.
Specifies whether to use distance or time. This value does not need to match the optimize_quantity in the payload.
Possible values: [distance, time]
If true, no penalty is applied to the trip from partial_route to the first subsequent node. Note that penalties are always ignored for internal trips within a multi-node partial_route.
trueIf true, no penalty is applied to the trip from the last node to partial_route_end. Note that penalties are always ignored for internal trips within a multi-node partial_route.
trueDefines the threshold for applying the penalty. Its units match those of the matrix_type matrix (typically meters for distance, seconds for time).
Determines if the penalty applies to values above or below the threshold.
Possible values: [greater, less]
penalty object
A number whose units match those of the matrix_type matrix.
0The penalty rate per unit from the matrix_type matrix.
0Choose between default - Pickup and Delivery Problem (PDP) and Capacitated Vehicle Routing Problem with Time Windows (CVRPTW). CVRPTW is only suitable for scenarios with only one pickup point/DC. In this CVRPTW mode, all the pickup nodes are combined together, significantly reducing the number of nodes, which significantly improve the result. Each vehicle is limit to the maximum of one trip (or one pickup), as pickup nodes are combined. Both modes support capacity constrains.
Possible values: [prebook, prebook_cvrptw]
In sync mode calculation results will be returned to the initial request, while in async_mode the consumer should retrieve the results by using anotehr request with job_id as a reference
Possible values: [sync, async]
Diables on enables used of nodes representing vehicles in optimization
Relaxes time constrains allowing for vehicles to arrive late to the nodes trading off more efficient routes.
falsePenalty coefficient for lateness, used when allow_vehicle_late is true. The higher the penalty, the more weight is given to arrival on time.
Time in seconds for max possible lateness. Max lateness is not limited if this is null. Used if allow_vehicle_late is true.
If true and the assignment contains loops the algorithm will try to schedule dropoffs earlier, so the passenger will not move through their stop twice. Breaks are not rescheduled.
If both dropoff_earlier and pickup_earlier are disabled (unspecified), loop detection is completely off, no analysis is performed, and no relevant actions are taken.
falseIf true and the assignment contains loops the algorithm will try to schedule pickups later, so the passenger will not move through their stop twice. Breaks are not rescheduled.
If both dropoff_earlier and pickup_earlier are disabled (unspecified), loop detection is completely off, no analysis is performed, and no relevant actions are taken.
If true then the Solver will take into account each node's possible departure time when query matrix (mixed time matrix mode).
If current_time then all nodes will use the current time (from API request) as departure time, if min_time or max_time then node's open or close time will be used.
Possible values: [current_time, min_time, max_time]
If true node weights are used in the cost calculation.
falseThis setting is for CVRPTW mode. If a positive value is present, then vehicle cost is added to the overall cost function if the number of nodes on the path is greater than the given value. A negative value disables additional costs.
-1Enables cumulative distance calculation. If set to true every node in 'vehicles' section in the result will contain 'scheduled_distance' field, which contain distance to this node.
falseIf enabled, optimization bookings that have unroutable nodes will result in no offer situation (so no vehicle assignemnt assignemnts will occur).
Defult is false in which case if a node is unroutable, the optimization engine will use air distance (straight line) approximation between the nodes.
Routability is determined by the underlying map, selected vehicle profile and any temporary or permanent restrictions in place.
falseEqualize paths during second stage of calculation. The system will first calculate the minimum number of vehicles required to meet the demand, and it will then balance the workload across the active vehicles based on the selected balancing method (e.g., number of bookings, total trip distance, or total trip time). The system will ensure that the number of vehicles is not increased during the balancing process.
falsecalculation_parameters object
dropoff_max_walking_distances_first_stage object
dropoff_max_walking_distances_for_waypoint_nodes_first_stage object
dropoff_max_walking_distances_second_stage object
engine_settings_params object
update_calculation_parameters object
update_model_parameters object
Overrides vehicle cost for a simulation. If zero, removes vehicle cost from the optimization cost function.
update_solver_parameters object
Node weight used with walking enabled for a simulation
pickup_max_walking_distances_first_stage object
pickup_max_walking_distances_for_artificial_nodes object
pickup_max_walking_distances_for_waypoint_nodes_first_stage object
pickup_max_walking_distances_second_stage object
If enabled, the algorythm is trying to assigned the number of bookings for all enabled vehicles. This setting is applicable with JIT operations.
falseAdds to cost function variance of number of nodes across all vehicles * path_equalizer_weight, applicable together with use_path_equalizer enabled.
departure_by_shifts_schedule object[]
batch_calculation object
Defines the maximum distance a passenger will walk to a waypoint for pickup
If walking is enabled for operations, this parameter controls maximum number of stops that the system will consider in proximity of the requested pickup location
Supported only for on demand operations. Sets cost for the waiting time for a passenger
Trip cost is a coefficient to the passenger trip duration. Default value is 0. By increasing trip cost, it adds the weightage of passenger trip duration onto overall cost function. If >0, ensures that trip duration is a part of the cost function. If zero, removes trip cost from the optimization cost function.
Allows the logistics pipelien to run multiple solutions at the same time with differnet first solution strategies. Then as a restult of optimization, the solution with the lowest cost is selected.
Possible values: [AUTOMATIC, GLOBAL_CHEAPEST_ARC, LOCAL_CHEAPEST_ARC, PATH_CHEAPEST_ARC, PATH_MOST_CONSTRAINED_ARC, EVALUATOR_STRATEGY, ALL_UNPERFORMED, BEST_INSERTION, PARALLEL_CHEAPEST_INSERTION, LOCAL_CHEAPEST_INSERTION, SAVINGS, SWEEP, FIRST_UNBOUND_MIN_VALUE, CHRISTOFIDES, SEQUENTIAL_CHEAPEST_INSERTION, ADJUSTABLE_PARALLEL_CHEAPEST_INSERTION, LOGISTICS_PARALLEL_CHEAPEST_INSERTION]
Dead mileage for the simulation in meters (number of miles driven without goods or passengers onboard)
Soft deletion flag
trueArbitrary description of the simulation.
End time of the simulation. The recommended time duration between start_time and end_time should represent real field operations (for example, one day or one shift).
Pickup/dropoff stops for which simulation will not try to look up for nearest ones in order to optimize routing
Extended list of geofences for complex scenarios of zone-based assignment.
Defines lifecycle of simulation and what kind of processing piepline it should use. For Logistics use cases has to be set to true
WARNING Please ensure that is_processor_based is explicitely set to true unless it is needed to create on demand real time operations for ride sharing optimizations.
falseSets the method to calculate the maximum trip duration. This parameter is applicable to JIT operations only and controls the vehicle's ability to attend interim stops en route from pickup to drop-off.
Possible values (DDT stands for direct driving time, representing the time it would take to drive directly from pickup to drop-off):
| Value | Maximum Journey Duration |
|---|---|
constant | max_additional_journey_time |
routing | DDT + max(max_additional_journey_time, DDT * max_additional_journey_time_percent) |
routing_max_cap | min(absolute_max_trip_duration, DDT + max(max_additional_journey_time, DDT * max_additional_journey_time_percent)) |
routing_min | DDT + min(max_additional_journey_time, DDT * max_additional_journey_time_percent) |
routing_min_cap | min(absolute_max_trip_duration, DDT + min(max_additional_journey_time, DDT * max_additional_journey_time_percent)) |
difference | max_dropoff_time - min_pickup_time |
Possible values: [constant, routing, routing_max_cap, routing_min, routing_man_cap, difference]
Parameter used to calculate maximum journey duration controlled by journey_duration_source parameter in JIT mode.
Parameter used to calculate the maximum journey duration, controlled by the journey_duration_source parameter in JIT mode.
Flag indicating whether the fast simulation should run a mixed or homogenous fleet. If set to false, vehicle characteristics will be ignored.
trueReference to a project model this simulation belongs to
Name of the project this simulation belongs to
URI of the object instance
result object
Simulation mode to run this simulation.
real_operationsis the main mode and is used for optimizing real operations in the fieldfast_simulationis testing mode for quick simulations wtugout accepting the bookingstemplateis a simulation that will be used for creation of all subsequent simulations in the project via callingPOST /simulation_templateAPI or through a regular simulation creation POST API. A project may have multipletemplatesimulations.
Possible values: [real_time, real_operations, template, fast_simulation, prebook]
Start time of the simulation. Usually, this is the earliest time when some activity is going to be performed in the field (for example, first goods pickup)
If the simulation was created from a template, this property will contain a URI reference to the source template.
If the solver cannot find a solution with all the vehicles, the system does not immediately return no-offers, as some solutions might still exist. This booking will be inserted by all vehicles one by one, and when the first solution is found, that offer is returned. This parameter defines the strategy for the order of insertion.
- If -1: fullest vehicle first.
- If 1: emptiest vehicle first.
If two vehicles have the same load, the nearer vehicle will be used first.
If the simulation has a type of template, multiple templates are available, and real_operations simulations are created based on this template, recurrence is used to choose a template that is active for that operations period.
For example, if the recurrence for a specific template is set as weekly each Monday and a real_operations simulation is created from a template, then for a simulation representing Monday, a template with repeat each Monday will be selected.
This feature is useful in situations where operations are regular but vary based on the day of the week, shifts, or holidays, so that settings can be preconfigured for those periods of operations.
The recurrence string should meet the iCalendar definition as set in RFC-5545.
If recurrence is used and there are multiple overlapping templates available for the requested operations window when creating a simulation from a template, the template with the higher priority will be selected.
Creation timestamp of an object
id object
Identifier of the object
- integer
- uuid
Can be integer
Can be UUID
Last modification timestampo of the object
{
"absolute_max_trip_duration": 0,
"acceptable_waiting_time": 0,
"adjust_driver_breaks_enabled": true,
"algo_optimize_quantity": "total_time",
"algo_type": "dynamic",
"allow_jump": false,
"analytics_export_completed": true,
"avg_journey_time_difference": "null",
"avg_planned_actual_journey_time_difference": "null",
"avg_waiting_time": "null",
"avg_waiting_time_difference": "null",
"bacchus_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"booking_end_time": "2024-07-29T15:51:28.071Z",
"booking_start_time": "2024-07-29T15:51:28.071Z",
"bookings_count": 0,
"completed_at": "null",
"completed_bookings_count": 0,
"completed_fixed_route_trips_count": "null",
"completed_odbs_trips_count": "null",
"conversion_rate": 0,
"data": {
"logistics_api_settings": {
"only_pdp": true,
"trip_cost": 0,
"pipeline_type": "simple_one_stage",
"max_pickup_slack": 0,
"max_dropoff_slack": 0,
"use_path_equalizer": false,
"cvb_fleetmin_time_limit": 0,
"cvb_fleetmin_solutions_limit": 0,
"cvb_fleetmin_iterations_limit": 0,
"use_cvb_local_search_operator": true,
"average_travel_duration_to_node": 0,
"cvb_local_search_iterations_limit": 0,
"geofence_vehicle_allocation_strategy": "strict",
"allow_upload_after_simulation_start_time": false,
"should_set_max_slack_start_location_zero": true,
"is_pickup_end_of_trip": true,
"is_dropoff_end_of_trip": true,
"stateless_api_server": "string",
"stateless_api_login": "string",
"stateless_api_password": "string",
"should_lock_next_stop_if_vehicle_live": true,
"should_optimize_fail_to_board_bookings": true,
"truckban_enabled": true,
"truckban_strategy": "default",
"truckban_buffer_time_windows": 0,
"booking_order_prioritization": "disabled",
"slack_cost": 0,
"logistics_optimize_slack": true,
"path_constraints_mode": "string",
"node_grouping_enabled": true,
"node_grouping_capacity_strategy": "min",
"clear_cumulative_limitations": true,
"manual_edit_api_minimize_slack": true,
"manual_edit_api_vehicle_logistics_optimize_slack": true,
"manual_edit_api_use_vehicle_start_time": true,
"manual_edit_api_solver_kind": "LOCAL",
"manual_edit_finalization_type_pickups": "string",
"manual_edit_finalization_type_dropoffs": "string",
"manual_edit_allow_vehicle_late": true,
"manual_edit_max_possible_lateness": 0,
"manual_edit_lateness_penalty_coefficient": 10,
"manual_edit_optimize_quantity": "string",
"manual_edit_slack_cost_factor": 0,
"route_cost_modification_primary": {
"matrix_type": "time",
"relation": "greater",
"threshold": 0,
"penalty": 0
},
"route_cost_modification_secondary": {
"matrix_type": "time",
"relation": "greater",
"threshold": 0,
"penalty": 0
},
"algorithm": "static",
"first_solution_strategy": 0,
"solution_limit": 10000000,
"use_local_search_metaheuristic": false,
"guided_local_search_lambda_coefficient": 0.1,
"use_tsp_opt": false,
"time_limit_ms": 10000000,
"log_search": false,
"lns_time_limit_ms": 1000,
"savings_neighbors_ratio": 0,
"waypoints_optimization_second_phase": false,
"waypoints_solution_limit": 1000,
"optimization_step": 1,
"use_all_local_search_operators": false,
"use_depth_first_search": false,
"use_local_search_operators": [
"extended_swap_active"
],
"first_solution_strategies_second_stage:": [
0
],
"time_limit_ms_second_stage": 0,
"vehicle_costs": 0,
"vehicle_amortized_linear_cost_factor": null,
"vehicle_amortized_quadratic_cost_factor": null,
"booking_penalty": 10000,
"mixed_fleet": false,
"use_walking_time_to_reduce_time_windows": false,
"time_dependent_transit": false,
"optimize_quantity": "total_time",
"max_slack": null,
"use_lifo_order_check": false,
"lifo_order_check_on_all_vehicles": true,
"mutually_exclusive_groups": [
"string"
],
"strictly_exclusive_groups": [
"string"
],
"group_crossing_penalty": 0,
"compound_zones": [
{
"groups": [
"string"
],
"node_uids": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"enter_time": 0,
"exit_time": 0
}
],
"cumulative_limitations": [
{
"group": [
null
],
"node_uids": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"depot_service_time": 0,
"max_cumulative_vehicles": 0
}
],
"groups_order": {},
"route_compactness": {
"matrix_type": "distance",
"ignore_first": true,
"ignore_last": true,
"threshold": 0,
"relation": "greater",
"penalty": {
"base": 0,
"rate": 0
}
},
"scheduling_mode": "prebook",
"calculations_mode": "sync",
"use_vehicles_nodes": true,
"allow_vehicle_late": false,
"vehicle_late_penalty_coefficient": 0,
"max_possible_lateness": 0,
"dropoff_earlier": false,
"pickup_later": true,
"use_mixed_time_matrix": true,
"matrix_timestamp_selection": "current_time",
"use_node_weights_cost": false,
"cvrptw_artificial_nodes_per_vehicle": -1,
"calculate_cumulative_distance": false,
"exclude_unroutable_booking": false,
"use_selective_path_equalizer": false
},
"allow_vehicle_late": true,
"calculation_parameters": {
"commute_offer_name_prefix": "string",
"dropoff_max_walking_distances_first_stage": {
"bus_stop": 0
},
"dropoff_max_walking_distances_for_waypoint_nodes_first_stage": {
"bus_stop": 0
},
"dropoff_max_walking_distances_second_stage": {
"bus_stop": 0
},
"engine_settings_params": {
"update_calculation_parameters": {
"cvrptw_artificial_nodes_per_vehicle": 0
},
"update_model_parameters": {
"vehicle_costs": 0
},
"update_solver_parameters": {
"guided_local_search_lambda_coefficient": 0
}
},
"first_solution_strategies": [
0
],
"geofence_vehicles_priority": true,
"log_search": true,
"max_pool_size": 0,
"node_weight_coeff": 0,
"pickup_max_walking_distances_first_stage": {
"virtual_stop": 0
},
"pickup_max_walking_distances_for_artificial_nodes": {
"virtual_stop": 0
},
"pickup_max_walking_distances_for_waypoint_nodes_first_stage": {
"virtual_stop": 0
},
"pickup_max_walking_distances_second_stage": {
"virtual_stop": 0
},
"shifts_solver_max_retries": 0,
"time_limit_ms_1st_phase": 0,
"time_limit_ms_2nd_phase": 0,
"waypoints_calculation_chunk_size": 0,
"use_path_equalizer": false,
"path_equalizer_weight": 0
},
"departure_by_shifts": true,
"departure_by_shifts_direction": "string",
"departure_by_shifts_schedule": [
{
"arrive_ts": "null",
"batch_calculation": {
"time_limit_ms": 0,
"ts": "string"
},
"departure_ts": "string",
"is_processed": true,
"shift_type": "string"
}
],
"dropoff_nearest_if_none_stop_types": [
{}
],
"enable_fleet_maximisation": true,
"make_depot_zero": true,
"max_distance_to_neighbor_stops": 0,
"max_possible_lateness": 0,
"mixed_fleet": true,
"offer_auto_cancellation_timeout": "null",
"one_by_one_calculation": true,
"reverse_shrink_time_delta": "null",
"send_vehicle_assignment_only_on_offer_acceptance": true,
"send_vehicle_cancellation_updates": true,
"shrink_time_delta": "null",
"start_time_end_time_limitations": true,
"use_local_search_metaheuristic": true,
"use_mixed_time_matrix": true,
"use_walking_time_to_reduce_time_windows": true,
"vehicle_driving_side": "string",
"vehicle_filter_zero_coordinates": true,
"vehicle_filter_zero_coordinates_only_after_booking_start_time": true,
"vehicle_filter_zero_coordinates_only_after_start_time": true,
"vehicle_gps_timeout": "null",
"vehicle_selection_arrive_earlier_seconds": 0,
"vehicle_selection_bearing_point": "null",
"vehicle_selection_by_distance_fallback_radius_m": "null",
"vehicle_selection_by_emptiness": true,
"vehicle_selection_by_remoteness": true,
"vehicle_selection_by_shifts": true,
"vehicle_selection_in_service": true,
"vehicle_selection_in_use": true,
"vehicle_shift_distance": 0,
"workload_distribution_strategies": [
{}
],
"workload_distribution_vehicle_cost_factor": "null",
"max_number_of_neighbor_stops": 0,
"waiting_time_cost_factor": 0,
"trip_cost": 0,
"first_solution_strategies": [
"AUTOMATIC"
]
},
"dataset": "string",
"dataset_csv_filename": "string",
"dataset_name": "string",
"dead_mileage": 0,
"deleted": true,
"deployment_label": "string",
"description": "string",
"driver_prep_time": 0,
"dropoff_transit_stops": "string",
"enable_offer_messages_generation": true,
"enable_waypoints_cache": true,
"end_time": "2024-07-29T15:51:28.071Z",
"explicit_stops": "null",
"fixed_route_filter_model": "null",
"fixed_route_schedule": "null",
"geofence_id": "string",
"geofence_name": "string",
"geofences_zones": [
"string"
],
"high_priority_stops": "null",
"in_service_mileage": "null",
"is_processor_based": false,
"journey_duration_source": "constant",
"max_additional_journey_time": 0,
"max_additional_journey_time_percent": 0,
"max_advance_booking_window": 0,
"max_journey_time_difference": "null",
"max_planned_actual_journey_time_difference": "null",
"max_waiting_time": "null",
"max_waiting_time_difference": "null",
"max_walking_distance": 0,
"min_advance_booking_window": 0,
"min_driver_rest_time": 0,
"min_journey_time_difference": "null",
"min_planned_actual_journey_time_difference": "null",
"min_waiting_time": "null",
"min_waiting_time_difference": "null",
"mixed_fleet": true,
"name": "string",
"no_offer_count": "null",
"number_of_vehicles": 0,
"odbs_trip_duration": 0,
"odbs_trips_per_vehicle_per_hour": "null",
"offer_generation_enabled": true,
"order_tracking_enabled": true,
"percentage_driver_rest_time": 0,
"performance_tracker_enabled": true,
"pickup_transit_stops": "string",
"pricing": "null",
"project": "string",
"project_name": "string",
"resource_uri": "string",
"result": {
"empty": true
},
"revenue": "null",
"road_network": "string",
"routing_profile": "string",
"routing_settings": {},
"simulation_mode": "real_time",
"start_time": "2024-07-29T15:51:28.071Z",
"state": "string",
"template": "string",
"total_cost": "null",
"transfer_rate": "null",
"used_vehicles_count": "null",
"utilization_rate": "null",
"vehicle_capacity": 0,
"vehicle_ordering_in_one_by_one_stage": 0,
"walking_profile": "string",
"walking_settings": {},
"write_events_log": true,
"recurrence": "string",
"recurrence_priority": 0,
"created_at": "2024-07-29T15:51:28.071Z",
"id": 0,
"modified_at": "2024-07-29T15:51:28.071Z"
}