Technology
Main Functions
Converter - for Data Processing
The easiest way to use NFleet optimization is through the Converter application. In the Converter, transportation and vehicle data can be copied or read as a file or sent via the API interface, and the data can be edited and supplemented. The data is displayed in tables, and basic functions are similar to traditional spreadsheet software.
If the data is straightforward, processing is done in a simpler table. If the data has more parameters, the Converter will display them in an expanded table. If there are formal errors in the data, they are highlighted.
Once the data is formally correct in the tables, it can be forwarded for optimization. After optimization, the results can be read back into the Converter, where they can be further edited before final submission.
Planner - for Optimization
The Planner, which includes the optimization core and its user interface, is the original part of NFleet. It also has functions for entering and editing data, but in practice, it’s easier to do this in the Converter.
The optimization is started in the Planner, and once the computing is completed, the results are displayed in a table and on a map.
The optimization computing is essentially controlled by the input data, i.e., the transportation orders and vehicle data. If the results are not satisfactory, the input data is modified accordingly and re-optimized. Small data adjustments can be made directly in the Planner, but larger data sets should be handled using the Converter.
Map Service and Road Network
In optimization computing, a so-called distance matrix is first created, which tabulates the driving times between all transportation locations. First, the address data is converted to map coordinates, and then the shortest distances are read from the map service. This takes vehicle types into account, selecting the shortest (fastest) routes along roads the vehicle is permitted to travel. Road-specific speed limits are also considered, and different types of vehicles have different average speed profiles.
The actual optimization computing is based on the information in the distance matrix. Once the computing is complete, the road segments for the resulting routes are drawn and listed, along with the exact distances and driving times.
Data
NFleet’s optimization service solves the Vehicle Routing Problem using metaheuristic global and local search algorithms. The input data for the computing includes several parameters:
- Locations of pickup and delivery points (both freely set for each transport, either as an address or coordinates)
- Time windows for both pickups and deliveries
- Stopping durations, which may include a fixed location-specific component and a component dependent on the transport's capacity
- The size of the transport, with multiple parallel capacities (e.g., weight, quantity, and volume at the same time)
- Compatibility between vehicles and transport tasks
- Vehicle costs
- Work and driving time limitations
- Road network features (e.g., one-way streets and turn restrictions at intersections) and speed limits from map data
The description of the data model can be found here.
Computing
In practice, the computing has been successfully tested with real plans involving up to 2000 tasks and 100 vehicles. The time required for computing varies depending on the complexity of the transportation problem (such as the number of compatibility constraints and tasks per route), but smaller optimization tasks typically resolve in just a few minutes.
In the computing service, users have full control over the tasks they upload, for deleting and editing. The computing tasks and their data are entirely the property of the user and are not stored or used elsewhere.
Road Maps
The base map is OpenStreetMap, and optimization computing is supported in several countries. New countries are added as needed.
Infrastructure
The computing is performed in a cloud service hosted on Microsoft Azure.
Users can manage and compute multiple tasks concurrently. The computing service automatically handles queue management and adjusts computing capacity as needed.