Logistics API Settings
The simulation.data.logistics_api_settings object allows you to fine-tune the optimization process when running simulations using the Stateful API. These settings control various aspects of the solver, model constraints, and calculation behavior.
General Settings
These settings are applied directly to the logistics simulation configuration.
| Parameter | Type | Description | Default |
|---|---|---|---|
pipeline_type | string | Defines the calculation pipeline. simple_one_stage: Single stateless API call. two_stages: Estimation followed by precise calculation. | - |
first_solution_strategies | array | A list of first solution strategies (integers) to be used concurrently to execute the optimization run. | - |
only_pdp | boolean | If true, uses only Pickup and Delivery Problem (PDP) mode. If false, defaults to CVRPTW. | - |
trip_cost | number | Cost assigned to each trip. | - |
max_pickup_slack | integer | Maximum allowed slack time for pickup nodes (in seconds). | - |
max_dropoff_slack | integer | Maximum allowed slack time for dropoff nodes (in seconds). | - |
use_path_equalizer | boolean | Enables the Path Equalizer to distribute assignments more evenly across vehicles. | - |
path_equalizer_weight | integer | Weight for the path equalizer objective. | - |
average_travel_duration_to_node | integer | Estimated average travel duration to a node (in seconds). | - |
allow_upload_after_simulation_start_time | boolean | If true, allows booking updates (e.g., live insertions) after the simulation has started. | false |
should_set_max_slack_start_location_zero | boolean | Whether to set the maximum slack of the start location to zero. | - |
is_pickup_end_of_trip | boolean | If true, treats pickup nodes as the end of a trip (for trip counting constraints). | - |
is_dropoff_end_of_trip | boolean | If true, treats dropoff nodes as the end of a trip (for trip counting constraints). | - |
stateless_api_server | string | URL of a custom stateless API server to use for the simulation. | - |
should_lock_next_stop_if_vehicle_live | boolean | Locks the upcoming stop for live vehicles to prevent driver confusion during re-optimization. | true |
should_optimize_fail_to_board_bookings | boolean | If true, includes failed-to-pickup orders in the optimization attempt. | true |
truckban_enabled | boolean | Enables or disables truck ban constraints. | - |
truckban_buffer_time_windows | integer | Buffer time (in seconds) when adjusting time windows for truck bans. | - |
slack_cost | number | Cost applied to slack time for all nodes. | - |
logistics_optimize_slack | boolean | If true, the solver optimizes for slack in logistics mode. | - |
path_constraints_mode | string | Mode for path constraints. | - |
node_grouping_enabled | boolean | Activates node grouping logic. | - |
clear_cumulative_limitations | boolean | Clears cumulative limitations if set to true. | - |
manual_edit_api_minimize_slack | boolean | Tries to minimize slack during manual edit API operations. | - |
manual_edit_allow_vehicle_late | boolean | Allows vehicles to be late during manual edits. | true |
manual_edit_lateness_penalty_coefficient | integer | Penalty coefficient for lateness in manual edits. | 10 |
cvb_fleetmin_time_limit | integer | Time limit for CVB fleet minimization. | - |
cvb_fleetmin_solutions_limit | integer | Solution limit for CVB fleet minimization. | - |
cvb_fleetmin_iterations_limit | integer | Iteration limit for CVB fleet minimization. | - |
use_cvb_local_search_operator | boolean | Uses CVB local search operator. | - |
cvb_local_search_iterations_limit | integer | Iteration limit for CVB local search. | - |
geofence_definition_strategy | object | Strategy for defining geofences. | - |
geofence_vehicle_allocation_strategy | object | Strategy for allocating vehicles to geofences (STRICT or FLEXIBLE). | - |
stateless_api_login | string | Login for custom stateless API server. | - |
stateless_api_password | string | Password for custom stateless API server. | - |
truckban_strategy | object | Strategy for handling truck bans. | - |
booking_order_prioritization | object | Configuration for booking order prioritization. | - |
node_grouping_capacity_strategy | object | Strategy for node grouping capacity requirements. | - |
manual_edit_api_vehicle_logistics_optimize_slack | boolean | Whether manual edit API should optimize slack. | - |
manual_edit_api_use_vehicle_start_time | boolean | Uses vehicle start time for manual edits. | - |
manual_edit_api_solver_kind | string | Solver kind for manual edit API (default: LOCAL). | LOCAL |
manual_edit_finalization_type_pickups | string | Finalization type for pickup nodes in manual edits. | - |
manual_edit_finalization_type_dropoffs | string | Finalization type for dropoff nodes in manual edits. | - |
manual_edit_max_possible_lateness | integer | Maximum possible lateness for manual edits. | - |
manual_edit_optimize_quantity | string | Optimization quantity for manual edits. | - |
manual_edit_slack_cost_factor | number | Slack cost factor for manual edits. | - |
manual_edit_allow_cvrptw_conversion | boolean | Enables CVRPTW mode and order grouping during manual edits in the simulation. When active, manual planning actions trigger an optimization check for CVRPTW feasibility (same pickup locations and time windows). If feasible, multiple orders are converted into a single node. Similarly, drop-offs at the same location with overlapping time windows are consolidated into a single action (ignoring capacity constraints).This streamlines manual planning by ensuring trips have a single pickup and consolidated drop-offs, visiting each location only once per trip. | false |
manual_edit_try_strict_time_windows_request | boolean | Tries to strictly enforce time windows during manual edits before loosening timewindows constraints. SHould be used in a combination with manual_edit_allow_vehicle_late set to true | false |
route_cost_modification_primary | object | Route cost modification for primary routing engine. | - |
route_cost_modification_secondary | object | Route cost modification for secondary routing engine. | - |
finalization_type_pickups | string | Overrides default finalization type for pickups. Can be min or max | min |
finalization_type_dropoffs | string | Overrides default finalization type for dropoffs. Can be min or max | min |
Solver Parameters
These parameters control the underlying VRP solver's behavior. They are typically used by experts to tune performance.
| Parameter | Type | Description | Default |
|---|---|---|---|
algorithm | string | Solver algorithm: static (default) or dynamic (for real-time/on-demand). | static |
first_solution_strategy | integer | Strategy used to find the initial solution. | 0 |
solution_limit | number | Maximum number of solutions to generate during the search. | 10000000 |
time_limit_ms | number | Maximum time allowed for the search (in milliseconds). | 10000000 |
use_local_search_metaheuristic | boolean | Enables local search metaheuristics. | false |
guided_local_search_lambda_coefficient | number | Parameter for the guided local search procedure. | 0.1 |
use_tsp_opt | boolean | Enables Traveling Salesperson Problem (TSP) optimization. | false |
log_search | boolean | Enables search logging. | false |
lns_time_limit_ms | number | Time limit for Large Neighborhood Search (LNS) completion search. | 1000 |
savings_neighbors_ratio | number | Ratio for savings neighbors. | 0 |
waypoints_optimization_second_phase | boolean | Enables a second phase of waypoint optimization for prebook mode. | false |
optimization_step | number | Minimum improvement step for local search. | 1 |
use_all_local_search_operators | boolean | Uses all available local search operators. | false |
use_depth_first_search | boolean | Uses depth-first search instead of local search. | false |
auto_calculate_time_limit_enabled | boolean | Enable or disable auto calculation of solver time limit. | null |
auto_calculate_time_limit_params | object | Parameters for auto calculation of solver time limit. See Auto Calculation Solver Time for details. | null |
Model Parameters
These parameters define the general metadata and constraints of the simulation model.
| Parameter | Type | Description | Default |
|---|---|---|---|
vehicle_costs | number | Cost per vehicle. High costs can discourage using additional vehicles. | 0 |
booking_penalty | number | Penalty for dropping a visit (unserved booking). Added to the objective function. | 10000 |
mixed_fleet | boolean | Set to true if vehicles use different routing profiles. | false |
use_walking_time_to_reduce_time_windows | boolean | Uses walking time to adjust time windows. | false |
time_dependent_transit | boolean | If true, optimization goal is always total_distance. | false |
optimize_quantity | string | Optimization goal: total_time (default) or total_distance. | total_time |
max_slack | number | Maximum allowed slack in seconds. | null |
use_lifo_order_check | boolean | Enables LIFO (Last-In-First-Out) order constraints. | false |
lifo_order_check_on_all_vehicles | boolean | Applies LIFO check to all vehicles. | true |
group_crossing_penalty | number | Penalty for crossing non-strictly exclusive groups. | - |
strictly_exclusive_groups | array | List of groups that cannot be mixed on the same vehicle. | - |
mutually_exclusive_groups | array | List of group pairs that are mutually exclusive (soft or hard constraint). | - |
compound_zones | array | Definitions for zones with entry/exit time penalties. | - |
cumulative_limitations | array | Limits on the number of vehicles serviced simultaneously at a depot. | - |
route_compactness | object | Settings to enforce route compactness using a polylinear cost model. | - |
vehicle_amortized_linear_cost_factor | integer | Linear part of amortized default vehicle cost. | - |
vehicle_amortized_quadratic_cost_factor | integer | Quadratic part of amortized default vehicle cost. | - |
groups_order | object | Dictionary defining the order/priority of groups. | - |
Calculation Parameters
These parameters control how the calculation is executed and how constraints are handled.
| Parameter | Type | Description | Default |
|---|---|---|---|
scheduling_mode | string | prebook (PDP) or prebook_cvrptw (CVRPTW). CVRPTW is for single pickup/DC scenarios. | - |
calculations_mode | string | sync (return result immediately) or async (return job ID). | - |
use_vehicles_nodes | boolean | Enables or disables the use of nodes representing vehicles. | - |
allow_vehicle_late | boolean | Relaxes time constraints to allow late arrivals for better routes. | false |
vehicle_late_penalty_coefficient | integer | Penalty weight for lateness when allow_vehicle_late is true. | - |
max_possible_lateness | integer | Maximum allowed lateness in seconds. | null |
dropoff_earlier | boolean | If true, tries to schedule drop-offs earlier to avoid loops. | false |
pickup_later | boolean | If true, tries to schedule pickups later to avoid loops. | false |