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

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.

absolute_max_trip_durationnumber,null<float>nullable

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.

acceptable_waiting_timeinteger | nullnullable

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.

adjust_driver_breaks_enabledboolean

Allow driver break intervals adjustments

Default value: true
algo_optimize_quantityOptimization goals (string)

Algorithm objective type for optimisation

Possible values: [total_time, total_distance]

algo_typestring

Type of algorithm to be used for optimization:

  • STATIC: max_dropoff_time = min_pickup_time + max_trip_duration
  • DYNAMIC: max_dropoff_time = exact_pickup_time + max_trip_duration
  • DYNAMIC 2 STAGES: 1st stage - STATIC, 2nd stage - DYNAMIC
  • TIMELESS: without pickup and dropoff time constraints, optimizing only total trip mileage
  • STATIC_OR_DYNAMIC: first try static, then dynamic.

Possible values: [dynamic, dynamic_2_stages, static, static_or_dynamic, timeless]

allow_jumpboolean

Allow jump to other vehicle, applicable to passenger

Default value: false
analytics_export_completedboolean
avg_journey_time_differencenull
avg_planned_actual_journey_time_differencenull
avg_waiting_timenull
avg_waiting_time_differencenull
bacchus_idstring<uuid>

Legacy service template UUID. It is used in people transport on-demand workflows.

booking_end_timestring,null<date-time>nullable

Time when the simulation should end accepting bookings. Default is the end_time

booking_start_timestring,null<date-time>nullable

Time when the simulation should start accepting bookings. Default is the start_time

bookings_countinteger

Number of bookings in the simulation.

Default value: 0
completed_atnull
completed_bookings_countinteger
completed_fixed_route_trips_countnull
completed_odbs_trips_countnull
conversion_rateinteger
data 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).

only_pdpboolean

Use only pdp mode, if false, default cvrptw is used

trip_costnumber | nullnullable

Trip cost

pipeline_typestring

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_slackinteger | nullnullable

Max pickup nodes slack

max_dropoff_slackinteger | nullnullable

Max dropoff nodes slack

use_path_equalizerboolean

Defines whether to use paths equalizer

Default value: false
path_equalizer_weight

Defines weight of the additional cost element produced by variance of path lengths.

Default value: 100
cvb_fleetmin_time_limitinteger
cvb_fleetmin_solutions_limitinteger
geofence_definition_strategy object
oneOf

By dropoff location. Both pickup and dropoff nodes will be labeled with same geofence Defined by dropoff point

Constant value: by_dropoff
cvb_fleetmin_iterations_limitinteger
use_cvb_local_search_operatorboolean
average_travel_duration_to_nodeinteger | nullnullable

Average travel duration to node

Possible values: >= 0

cvb_local_search_iterations_limitinteger
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

oneOf
string

Geofence vehicle allocation strategy.

Possible values: [strict, flexible]

allow_upload_after_simulation_start_timeboolean | nullnullable

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)

Default value: false
should_set_max_slack_start_location_zeroboolean | nullnullable

Should set max_slack of start-location to zero or not

is_pickup_end_of_tripboolean

Sets if pikcup node should be treated as the end of the trip. THis is required for number of trips vehicle constraint.

is_dropoff_end_of_tripboolean

Sets if dropoff node should be treated as the end of the trip. THis is for number of trips vehicle constraint.

stateless_api_serverstring | nullnullable

Allows selecting a custom solver that supports the stateless API contract for the simulation.

stateless_api_loginstring | nullnullable

If custom stateless API is selected, can be used to overload login from the request context login

stateless_api_passwordstring | nullnullable

If custom stateless API is selected, can be used to overload password from the request context password

should_lock_next_stop_if_vehicle_liveboolean

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.

Default value: true
should_optimize_fail_to_board_bookingsboolean

Enables or disables default inclusion of failed to pickup orders into optimization

Default value: true
truckban_enabledboolean | nullnullable

A switch to enable or disable truck ban

truckban_strategy object

Strategy on how to address truckban

oneOf
string

Strategy in handling truck ban

Possible values: [default, duplicate_nodes]

truckban_buffer_time_windowsinteger | nullnullable

Buffer time when adjusting time windows due to truckban

booking_order_prioritization object

Activate booking order prioritization

oneOf
string

Strategy in executing booking order prioritization

Possible values: [disabled, strict, non_strict]

slack_costnumber | nullnullable

Slack cost for all the nodes

logistics_optimize_slackboolean | nullnullable

Optimize slacks in logistics mode.

path_constraints_modestring | nullnullable

Path constraints mode.

node_grouping_enabledboolean | nullnullable

Activate node grouping logic

node_grouping_capacity_strategy object

Strategy of the node grouping capacity requirement

oneOf
string

Strategy in deciding how node grouping should be done with respect with the capacity requirement

Possible values: [min, max, median, mean, ignore]

clear_cumulative_limitationsboolean | nullnullable

Clearance of cumulative limitations, if needed

manual_edit_api_minimize_slackboolean | nullnullable

Try to minimize slack in manual edit api.

manual_edit_api_vehicle_logistics_optimize_slackboolean | nullnullable

Whether manual edit api call should have vehicle.logistics_optimize_slack or no

manual_edit_api_use_vehicle_start_timeboolean | nullnullable

Take into account vehicle start time when performing manual edit actions, where applicable.

manual_edit_api_solver_kindManual Edit Api Solver Kind (string)

Kind of the solver to be used with manual edit api.

Possible values: [local, remote]

Default value: LOCAL
manual_edit_finalization_type_pickupsstring | nullnullable

Finalization type of pickup nodes.

manual_edit_finalization_type_dropoffsstring | nullnullable

Finalization type of dropoff nodes.

manual_edit_allow_vehicle_lateboolean

Allow vehicle late.

Default value: true
manual_edit_max_possible_latenessinteger | nullnullable

Maximum possible lateness.

Possible values: >= 1

manual_edit_lateness_penalty_coefficientinteger

Lateness penalty coefficient.

Possible values: >= 0

Default value: 10
manual_edit_optimize_quantitystring | nullnullable

Optimization quantity.

manual_edit_slack_cost_factornumber | nullnullable

Slack cost factor (for manual edit api only)

route_cost_modification_primary object

Additional params for route cost modification for primary routing engine

oneOf
matrix_typeRoute Cost Modification Matrix Type (string)

The type of travel cost matrix in which the route cost modification is applied to

Possible values: [time, distance]

relationRoute Cost Modification Relation (string)

Add penalty cost to nodes whose matrix type value is either greater or less than the specified threshold

Possible values: [greater, less]

thresholdnumber

Threshold value

penaltynumber

Penalty cost

route_cost_modification_secondary object

Additional params for route cost modification for secondary routing engine

oneOf
matrix_typeRoute Cost Modification Matrix Type (string)

The type of travel cost matrix in which the route cost modification is applied to

Possible values: [time, distance]

relationRoute Cost Modification Relation (string)

Add penalty cost to nodes whose matrix type value is either greater or less than the specified threshold

Possible values: [greater, less]

thresholdnumber

Threshold value

penaltynumber

Penalty cost

algorithmstring

Solver to be used for optimization. dynamic should be used for real time operations (on-demand)

Possible values: [static, dynamic]

Default value: static
first_solution_strategyinteger

The 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.

Default value: 0
solution_limitnumber

Limit to the number of solutions generated during the search.

Default value: 10000000
use_local_search_metaheuristicboolean

Flag that enables the use of a local search metaheuristic.

Default value: false
guided_local_search_lambda_coefficientnumber

Parameter of the local search procedure.

Default value: 0.1
use_tsp_optboolean

Flag that enables Traveling Salesperson Problem (TSP) optimization.

Default value: false
time_limit_msnumber

Limit in ms to the time spent in the search.

Default value: 10000000
log_searchboolean

Flag that enables log search.

Default value: false
lns_time_limit_msnumber

Limit in ms to the time spent in the completion search for each local search neighbor.

Default value: 1000
savings_neighbors_rationumber

Savings neighbors ratio.

Default value: 0
waypoints_optimization_second_phaseboolean

Enables second phase waypoints optimization for prebook.

Default value: false
waypoints_solution_limitnumber

Waypoints solution limit in the second phase.

Default value: 1000
optimization_stepnumber

Minimum step by which the solution must be improved in local search.

Default value: 1
use_all_local_search_operatorsboolean

Use all available local search operators.

Default value: false
use_depth_first_searchboolean

If true, the solver should use depth-first search rather than local search to solve the problem.

Default value: false
use_local_search_operatorsstring[]

List 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_second_stage:integer[]

First solution strategies for second stage (Only one of them is used)

time_limit_ms_second_stageinteger

Maximum calculation time for second stage in milliseconds

vehicle_costsnumber

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).

Default value: 0
vehicle_amortized_linear_cost_factorinteger | nullnullable

Amortized default vehicle cost (linear part)

Default value: null
vehicle_amortized_quadratic_cost_factorinteger | nullnullable

Amortized default vehicle cost (quadratic part)

Default value: null
booking_penaltynumber

The 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.

Default value: 10000
mixed_fleetboolean

Only set to true if vehicles are using different routing profile.

Default value: false
use_walking_time_to_reduce_time_windowsboolean

Flag that enables the use of walking time in time window reduction.

Default value: false
time_dependent_transitboolean

If true then optimization goal is always total_distance regardless of the value passed in optimization_quantity.

Default value: false
optimize_quantitystring

Defines 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]

Default value: total_time
max_slacknumber | nullnullable

Maximum slack in seconds or null if no limitation required.

Default value: null
use_lifo_order_checkboolean

Flag that enables LIFO order check for the nodes of this booking. Used only if use_lifo_order_check is set for the model.

Default value: false
lifo_order_check_on_all_vehiclesboolean

Flag that enables LIFO order checking on all vehicles in the model.

Default value: true
mutually_exclusive_groupsarray[]

List 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.

strictly_exclusive_groupsstring[]

List of groups that cannot, under any circumstances, be crossed with other groups. Default: All groups are strictly-exclusive.

group_crossing_penaltynumber

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.

  • Array [
  • groupsstring[]

    A list of groups that belong to the zone.

    node_uidsstring<uuid>

    Represents and validates UUID string

    enter_timeinteger

    Time in seconds required to enter the zone

    Default value: 0
    exit_timeinteger

    Time in seconds required to exit the zone

    Default value: 0
  • ]
  • cumulative_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.

  • Array [
  • groupstring,null[]

    Nodes belonging to this group will be included in the list identifying the pickup location.

    node_uidsstring<uuid>[]

    List of node UIDs identifying the pickup location.

    depot_service_timenumber

    Time in seconds to service a vehicle in the nodes defined in this object.

    max_cumulative_vehiclesinteger

    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:

    1. Nodes with groups in groups_order: These nodes are sorted by their priority values. Higher priority values appear earlier.
    2. Nodes without groups in groups_order: These nodes have the lowest priority and appear after all nodes in point 1.
    3. Nodes with groups in groups_order but with None priority: The order of these nodes is undefined, and they may appear anywhere in the sequence.
    property name*integer
    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.

    matrix_typestring

    Specifies whether to use distance or time. This value does not need to match the optimize_quantity in the payload.

    Possible values: [distance, time]

    ignore_firstboolean

    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.

    Default value: true
    ignore_lastboolean

    If 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.

    Default value: true
    thresholdnumber

    Defines the threshold for applying the penalty. Its units match those of the matrix_type matrix (typically meters for distance, seconds for time).

    relationstring

    Determines if the penalty applies to values above or below the threshold.

    Possible values: [greater, less]

    penalty object
    basenumber

    A number whose units match those of the matrix_type matrix.

    Default value: 0
    ratenumber

    The penalty rate per unit from the matrix_type matrix.

    Default value: 0
    scheduling_modestring

    Choose 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]

    calculations_modestring

    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]

    use_vehicles_nodesboolean

    Diables on enables used of nodes representing vehicles in optimization

    allow_vehicle_lateboolean

    Relaxes time constrains allowing for vehicles to arrive late to the nodes trading off more efficient routes.

    Default value: false
    vehicle_late_penalty_coefficientinteger

    Penalty coefficient for lateness, used when allow_vehicle_late is true. The higher the penalty, the more weight is given to arrival on time.

    max_possible_latenessinteger | nullnullable

    Time in seconds for max possible lateness. Max lateness is not limited if this is null. Used if allow_vehicle_late is true.

    dropoff_earlierboolean

    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.

    Default value: false
    pickup_laterboolean

    If 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.

    use_mixed_time_matrixboolean

    If true then the Solver will take into account each node's possible departure time when query matrix (mixed time matrix mode).

    matrix_timestamp_selectionstring

    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]

    use_node_weights_costboolean

    If true node weights are used in the cost calculation.

    Default value: false
    cvrptw_artificial_nodes_per_vehicleinteger

    This 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.

    Default value: -1
    calculate_cumulative_distanceboolean

    Enables 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.

    Default value: false
    exclude_unroutable_bookingboolean

    If 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.

    Default value: false
    use_selective_path_equalizerboolean

    Equalize 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.

    Default value: false
    allow_vehicle_lateboolean
    calculation_parameters object
    commute_offer_name_prefixstring
    dropoff_max_walking_distances_first_stage object
    bus_stopinteger
    dropoff_max_walking_distances_for_waypoint_nodes_first_stage object
    bus_stopinteger
    dropoff_max_walking_distances_second_stage object
    bus_stopinteger
    engine_settings_params object
    update_calculation_parameters object
    cvrptw_artificial_nodes_per_vehicleinteger
    update_model_parameters object
    vehicle_costsinteger

    Overrides vehicle cost for a simulation. If zero, removes vehicle cost from the optimization cost function.

    update_solver_parameters object
    guided_local_search_lambda_coefficientnumber
    first_solution_strategiesinteger[]
    geofence_vehicles_priorityboolean
    log_searchboolean
    max_pool_sizeinteger
    node_weight_coeffnumber

    Node weight used with walking enabled for a simulation

    pickup_max_walking_distances_first_stage object
    virtual_stopinteger
    pickup_max_walking_distances_for_artificial_nodes object
    virtual_stopinteger
    pickup_max_walking_distances_for_waypoint_nodes_first_stage object
    virtual_stopinteger
    pickup_max_walking_distances_second_stage object
    virtual_stopinteger
    shifts_solver_max_retriesinteger
    time_limit_ms_1st_phaseinteger
    time_limit_ms_2nd_phaseinteger
    waypoints_calculation_chunk_sizeinteger
    use_path_equalizerboolean

    If enabled, the algorythm is trying to assigned the number of bookings for all enabled vehicles. This setting is applicable with JIT operations.

    Default value: false
    path_equalizer_weightinteger

    Adds to cost function variance of number of nodes across all vehicles * path_equalizer_weight, applicable together with use_path_equalizer enabled.

    departure_by_shiftsboolean
    departure_by_shifts_directionstring
    departure_by_shifts_schedule object[]
  • Array [
  • arrive_tsnull
    batch_calculation object
    time_limit_msinteger
    tsstring
    departure_tsstring
    is_processedboolean
    shift_typestring
  • ]
  • dropoff_nearest_if_none_stop_typesobject[]
    enable_fleet_maximisationboolean
    make_depot_zeroboolean
    max_distance_to_neighbor_stopsinteger

    Defines the maximum distance a passenger will walk to a waypoint for pickup

    max_possible_latenessinteger
    mixed_fleetboolean
    offer_auto_cancellation_timeoutnull
    one_by_one_calculationboolean
    reverse_shrink_time_deltanull
    send_vehicle_assignment_only_on_offer_acceptanceboolean
    send_vehicle_cancellation_updatesboolean
    shrink_time_deltanull
    start_time_end_time_limitationsboolean
    use_local_search_metaheuristicboolean
    use_mixed_time_matrixboolean
    use_walking_time_to_reduce_time_windowsboolean
    vehicle_driving_sidestring
    vehicle_filter_zero_coordinatesboolean
    vehicle_filter_zero_coordinates_only_after_booking_start_timeboolean
    vehicle_filter_zero_coordinates_only_after_start_timeboolean
    vehicle_gps_timeoutnull
    vehicle_selection_arrive_earlier_secondsinteger
    vehicle_selection_bearing_pointnull
    vehicle_selection_by_distance_fallback_radius_mnull
    vehicle_selection_by_emptinessboolean
    vehicle_selection_by_remotenessboolean
    vehicle_selection_by_shiftsboolean
    vehicle_selection_in_serviceboolean
    vehicle_selection_in_useboolean
    vehicle_shift_distanceinteger
    workload_distribution_strategiesobject[]
    workload_distribution_vehicle_cost_factornull
    max_number_of_neighbor_stopsinteger

    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

    waiting_time_cost_factornumber

    Supported only for on demand operations. Sets cost for the waiting time for a passenger

    trip_costnumber

    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.

    first_solution_strategiesFirst solutions strategies (string)[]

    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]

    datasetstring
    dataset_csv_filenamestring | nullnullable
    dataset_namestring | nullnullable
    dead_mileageinteger | nullnullable

    Dead mileage for the simulation in meters (number of miles driven without goods or passengers onboard)

    deletedboolean

    Soft deletion flag

    Default value: true
    deployment_labelstring | nullnullable
    descriptionstring | nullnullable

    Arbitrary description of the simulation.

    driver_prep_timeinteger
    dropoff_transit_stopsstring
    enable_offer_messages_generationboolean
    enable_waypoints_cacheboolean
    end_timestring<date-time>

    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).

    explicit_stopsnull

    Pickup/dropoff stops for which simulation will not try to look up for nearest ones in order to optimize routing

    fixed_route_filter_modelnull
    fixed_route_schedulenull
    geofence_idstring
    geofence_namestring | nullnullable
    geofences_zonesstring<uri-reference>[]

    Extended list of geofences for complex scenarios of zone-based assignment.

    high_priority_stopsnull
    in_service_mileagenull
    is_processor_basedboolean

    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.

    Default value: false
    journey_duration_sourcestring

    Sets 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):

    ValueMaximum Journey Duration
    constantmax_additional_journey_time
    routingDDT + max(max_additional_journey_time, DDT * max_additional_journey_time_percent)
    routing_max_capmin(absolute_max_trip_duration, DDT + max(max_additional_journey_time, DDT * max_additional_journey_time_percent))
    routing_minDDT + min(max_additional_journey_time, DDT * max_additional_journey_time_percent)
    routing_min_capmin(absolute_max_trip_duration, DDT + min(max_additional_journey_time, DDT * max_additional_journey_time_percent))
    differencemax_dropoff_time - min_pickup_time

    Possible values: [constant, routing, routing_max_cap, routing_min, routing_man_cap, difference]

    max_additional_journey_timeinteger

    Parameter used to calculate maximum journey duration controlled by journey_duration_source parameter in JIT mode.

    max_additional_journey_time_percentinteger

    Parameter used to calculate the maximum journey duration, controlled by the journey_duration_source parameter in JIT mode.

    max_advance_booking_windowinteger
    max_journey_time_differencenull
    max_planned_actual_journey_time_differencenull
    max_waiting_timenull
    max_waiting_time_differencenull
    max_walking_distanceinteger
    min_advance_booking_windowinteger
    min_driver_rest_timeinteger
    min_journey_time_differencenull
    min_planned_actual_journey_time_differencenull
    min_waiting_timenull
    min_waiting_time_differencenull
    mixed_fleetboolean

    Flag indicating whether the fast simulation should run a mixed or homogenous fleet. If set to false, vehicle characteristics will be ignored.

    Default value: true
    namestring | nullnullable
    no_offer_countnull
    number_of_vehiclesinteger
    odbs_trip_durationinteger
    odbs_trips_per_vehicle_per_hournull
    offer_generation_enabledboolean
    order_tracking_enabledboolean
    percentage_driver_rest_timenumber<float>
    performance_tracker_enabledboolean
    pickup_transit_stopsstring
    pricingnull
    projectstring<uri-reference>

    Reference to a project model this simulation belongs to

    project_namestring | nullnullable

    Name of the project this simulation belongs to

    resource_uristring<uri-reference>

    URI of the object instance

    result object
    emptyboolean
    revenuenull
    road_networkstring
    routing_profilestring,null<uri-reference>nullable
    routing_settingsobject
    simulation_modestring

    Simulation mode to run this simulation.

    • real_operations is the main mode and is used for optimizing real operations in the field
    • fast_simulation is testing mode for quick simulations wtugout accepting the bookings
    • template is a simulation that will be used for creation of all subsequent simulations in the project via calling POST /simulation_template API or through a regular simulation creation POST API. A project may have multiple template simulations.

    Possible values: [real_time, real_operations, template, fast_simulation, prebook]

    start_timestring<date-time>

    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)

    statestring
    templatestring,null<uri-reference>nullable

    If the simulation was created from a template, this property will contain a URI reference to the source template.

    total_costnull
    transfer_ratenull
    used_vehicles_countnull
    utilization_ratenull
    vehicle_capacityinteger
    vehicle_ordering_in_one_by_one_stageinteger

    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.

    walking_profilestring,null<uri-reference>nullable
    walking_settingsobject
    write_events_logboolean
    recurrencestring

    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.

    recurrence_priorityinteger

    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.

    created_atstring<date-time>

    Creation timestamp of an object

    id object

    Identifier of the object

    anyOf
    integer

    Can be integer

    modified_atstring<date-time>

    Last modification timestampo of the object

    Simulation data model
    {
    "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"
    }