Description
The Network Analyst Route service finds the best route for a single vehicle to visit many stops, whereas the Last Mile Delivery service and the Vehicle Routing Problem service both find the best routes for a fleet of vehicles to service many orders. The Vehicle Routing Problem service has lots of flexibility and can model many different constraints, but the algorithm is also limited by this flexibility. The Last Mile Delivery service supports a subset of the constraints, but for the ones it does support is able to provide a better quality and performant algorithm.
Last mile delivery capabilities
The Last Mile Delivery analysis is a use case-specific Vehicle Routing Problem (VRP) algorithm designed for a fleet of vehicles that are delivering packages to the final customers. For example, this can be used for a single distribution center or store delivering to the final customer location and can be quite dense delivering to a few customers on most streets, but is not intended to visit every house on every street.
Delivery companies need to determine which orders (package delivery location) should be serviced by each route (delivery vehicle and driver) and in what sequence the orders should be visited. The primary goal is to best service the orders by producing geographically clustered routes so the drivers can easily deliver to everyone and minimize the overall operating cost for the fleet of vehicles. The features below are supported to run the analysis:
- Orders —Supports larger order counts with a single time window and either pickup or delivery quantities in the analysis but not both.
- Depots —All routes must have the same starting depot and the same ending depot. The starting depot and the ending depot can be different. The starting depot, ending depot, or both can also be virtual, meaning the route starts or ends at the order instead of a centralized location.
- Routes —Supports heterogeneous routes for all fields except start depot, end depot, and arrive depart delay. It can model things such as costs, capacities, and constraints based on time or distance. This is recommended for routes of fewer than 300 orders.
- Zones —Designates an area where a route should be servicing orders. These zones can be either hard zones or soft zones. One zone can be used by multiple routes.
- Specialties —Indicates the qualifications required by orders and supported by routes. These are designated using both Order Specialties and Route Specialties. Both orders and routes can support multiple specialties.
- Barriers —Support point, line, and polygon.
What does last mile delivery not support
The last mile delivery does not support the following features:
- Breaks
- Seed points
- Route renewals
- Order pairs
- Time windows on depots
- Second time window on orders
- Pickup and delivery quantities in the analysis
- Revenue on orders
- Different start depots for each route
- Different end depots for each route
- Different arrive-depart delays for each route
Convert from vehicle routing problem to last mile delivery
The attributes and capabilities between the Vehicle Routing Problem service and the Last Mile Delivery service are very similar. Therefore, it is relatively straightforward to use old vehicle routing problem input for a last mile delivery problem. Below are the areas of the attributes that would need to be converted.
Barriers have the same schema as in the Vehicle Routing Problem. The below tables list the differences between the attributes of the Vehicle Routing Problem service and the Last Mile Delivery service.
Orders
Vehicle routing problem attributes | Last mile delivery attributes |
---|---|
TimeWindowStart2, TimeWindowEnd2, MaxViolationTime2 | A second time window is not supported |
Revenue | Not supported |
AssignmentRule: Exclude (0) | Order—AssignmentRule: Null Route—AssignmentRule: Exclude (2) |
AssignmentRule: PreserveRouteAndRelativeSequence (1) | AssignmentRule: PreserveRouteAndRelativeSequence (1) |
AssignmentRule: PreserveRoute (2) | AssignmentRule: PreserveRoute (2) |
AssignmentRule: Override (3) | AssignmentRule: Null |
AssignmentRule: AnchorFirst (4) | AnchorRule: First (1) and AssignmentRule: Null |
AssignmentRule: AnchorLast (5) | AnchorRule: Last (2) and AssignmentRule: Null |
Depots
Vehicle routing problem attributes | Last mile delivery attributes |
---|---|
TimeWindowStart, TimeWindowEnd, TimeWindowStart2, TimeWindowEnd2 | Time windows are not supported for Depots. |
Routes
Vehicle routing problem attributes | Last mile delivery attributes |
---|---|
EarliestStartTime | EarliestStartDate and EarliestStartTime |
LatestStartTime | StartTimeFlexibility = (VRP's LatestStartTime - VRP's EarliestStartTime) |
AssignmentRule: Include (1) | AssignmentRule: Null |
AssignmentRule: Exclude (2) | AssignmentRule: Exclude (2) |
Zones
For Last Mile Delivery, route zones are specified in the Zones class and given a name. Those names are then used in the Routes with the ZoneName and IsHardZone fields. This allows one zone to be used by multiple routes.
Vehicle routing problem attributes | Last mile delivery attributes |
---|---|
Route Zones: RouteName | Zones: Name and Routes: ZoneName |
Route Zone: IsHardZone | Routes: IsHardZone |
Route Specialties and Order Specialties
Vehicle routing problem attributes | Last mile delivery attributes |
---|---|
Orders: SpecialtyName | OrderSpecialties: OrderName OrderSpecialties: SpecialtyName |
Routes: SpecialtyName | RouteSpecialties: RouteName RouteSpecialties: SpecialtyName |
Parameters
The table below lists the difference between the parameters available for the Vehicle Routing Problem and the Last Mile Delivery solvers
Vehicle routing problem | Last mile delivery |
---|---|
default_date | earliest_route_start_date |
impedance, uturn_policy, use_hierarchy_in_analysis, restrictions, attribute_parameter_values, time_impedance, distance_impedance, route_line_simplification_tolerance | travel_mode |
time_window_factor | N/A |
spatially_cluster_routes | N/A |
excess_transit_factor | N/A |
populate_route_lines | route_shape |
directions_style_name | N/A |
save_output_layer | save_output_network_analysis_layer |
populate_stop_shapes | output_orders, output_depots and output_depot_visits are always populated with shapes in the output when the request is successful |
N/A | max_route_total_time |
N/A | sequence_gap |
N/A | earliest_route_start_time |