Optimization engines

Learn more about how the Default (Base) and Advanced engine work.

Written by eLogii
Updated over a week ago

Default (Base) engine

The default engine in eLogii uses historical and current route information (traffic information, average speed of travel etc.) and based on those parameters it creates the best possible routes taking into account the imposed constraints (vehicle specifications, skills and capabilities, zones, teams etc.).

By default, the engine uses as little resources (Drivers) as possible to do as many Tasks as possible, or in other words it looks to minimize total time and cost, while still mapping to the most efficient Route. Because of this, sometimes Task delegation may not be equal, which means some Drivers may have significantly more Tasks than others. This can be combated to an extent by imposing a route stop limit, or delegating Tasks based on pre-assigned Teams, skills or capabilities.

If one constraint cannot be honored, then a Task would not be included in the optimization and it will be Unviable (check this article for more reasons why your Tasks might be unviable).. For example, the Drivers’ Schedules (driver work hours) play a huge part in the overall optimization, and if the system estimates that adding more Tasks would go over a Driver’s schedule, and if it cannot fit those Tasks into any other Driver’s schedule, they would not be assigned. This can be modified to an extent by adding Overtime tolerances which would allow a specified timeframe which allows eLogii to go over schedule to fit in more Tasks.

It is also important to note that reloads happen in the background automatically and are considered by the engine. This means that if the Vehicle has reached its maximum capacity in a single run, but there’s more time in the Driver’s schedule, the Driver will return to the assigned Depot for reloads. The Vehicle will not go over capacity (unless the Maximum vehicle utilization factor is set to allow over-capping the Vehicle), and the Vehicle capacity bar on the Driver card will display the largest capacity utilization value achieved (this means that, for example, if the Driver made 2 runs, one had the vehicle at 75% utilization, the other 98%, the 98% will be shown on the Driver card).

The biggest advantage of the default engine is that it is quite fast and is able to optimize 100 Tasks in under 10 seconds, while creating the most efficient routes with the constraints that it has..

You can adjust how the engine behaves and influence how Routes are created with these options (which act as constraints):

  • Route size limit - Limits the number of jobs/ stops your Drivers can handle for their entire route.

  • Skills and Capabilities - Attributes Drivers and Vehicles need to possess to be eligible to take on a specific Task.

  • Driver Schedules - your Drivers’ work hours.

  • Vehicle capacity - how much a Vehicle can carry in one run.

  • Zones - Areas of operation that you can set so that specific Drivers operate under specific Zones.

  • Task and Postcode rules - various rules which alter how eLogii sorts Tasks.

  • Task time windows - Time frame during which Pickups and Deliveries need to be completed.

The Base engine also comes with the Single segment optimization mode which works similarly to the legacy feature Simple Delivery Optimization mode. Enabling this mode means that if all Tasks are originating from Depots, there are no Pickup actions required, and there's no need to reload at the Depot. This mode optimizes Tasks as straightforward single-step deliveries (or Pickups from various locations brought to a designated Depot), as opposed to pairs of Pickup and Delivery. This results in a simplified user interface, clearer Route displays, and improved performance.

Selecting this optimization mode option significantly affects system experience, and the way Routes are created.

Base engine

Advanced engine

eLogii’s advanced engine follows a similar approach as the Default engine in terms of combining the historical and current route information. Similarly to the base engine, the advanced engine honors all imposed restrictions and looks to produce the best possible route with the given limitations.

The main difference is, however, that users can directly influence the behavior of the engine and how it handles Task delegation by utilizing various optimization modes and other advanced engine-specific features.

Please note that, because the Advanced engine has significantly more factors to take into account when optimizing and creating routes (since, you are free to fully customize how it prioritizes and distributes Tasks), and due to the complexity of how it operates, it is slower than then the Default engine, which works with fewer elements and doesn’t take into account all the factors that the advanced engine does. In most cases, the Advanced engine produces much better routes which very rarely require reoptimization attempts to get right.

Despite this. there are features which allow you to accelerate the Advanced engine:

  • Optimization time factor - Allows users to define how long an optimization can run for, as factor of number of Tasks, for the purpose of prioritizing solution efficiency or optimization speed. (e.g. 100 tasks x 0.5 factor, means that the optimization will be allowed to run for 50 seconds)

  • Optimization time limit allows you to limit the duration of optimization and override optimization time with a hard-plugged number, regardless of the number of Tasks you are optimizing for. This number overrides the number specified within the Optimization time factor.

Please keep in mind that these are Advanced engine-exclusive features, and are not available for the Base engine.

Optimization modes:

The main optimization modes are as follows:

Single segment optimization mode - The Advanced engine also has this mode. It works the same way as on the Base engine, but it’s adapted to work well with the adjustments and features that are available on the Advanced engine. The following Load Balancing modes can be used in tandem with the Single segment optimization mode.

Load Balancing modes - Users can influence the approach the engine takes when optimizing Routes. You may get different results depending on the load balancing mode you select. There are 3 load balancing modes to choose from:

  • Most efficient Route - This mode is similar to how the Default engine works, which means it uses as little resources as possible to produce the most efficient routes. It may produce unbalanced routes, in that some Drivers may receive more tasks than others, and their schedules and vehicles may be more utilized than others’. This mode is particularly useful when seeking to enhance overall efficiency and resource utilization in Task delegation.

  • Balance minimum number of Routes - This mode, at its core, employs the same approach to Route creation as the Most efficient Route one. However, what sets this mode apart is the option to choose a parameter that the engine will try to make as equal as possible when creating Routes.

    The parameters are Load ( equal Vehicle capacity utilization), Time (equal Driver schedule utilization), Distance (equal Route travel distance) and Number of jobs (equal distribution of Tasks)

    For example,. If you’re not too concerned with the number of Tasks your Drivers have, but you’re more interested in utilizing their schedules as equally as possible, you would choose to balance the minimum number of routes by Time. The engine will take this into account and produce Routes where Driver’s worktime will be utilized similarly and you will avoid situations where one Driver’s schedule is utilized 98%, and the other one’s 52%, and in a sense it will try to find a middle ground with as little variation as possible.

  • Use all resources/ finish as soon as possible - Contrary to the previous modes, this one tries to utilize all resources (Drivers) to complete Tasks. Essentially, all Drivers will be allocated Tasks based on one of the selected parameters you want to have equal among them. Those parameters are identical to the ones listed in the Balance minimum number of Routes and the same logic would apply. For example, if you want all your Drivers to be distributed an equal number of Tasks, but you’re not too concerned about their schedule or vehicle utilization, if you select to optimize by an equal Number of jobs, all your Drivers will be assigned an equal number of Tasks with minimal variation.

    In case you select None, then eLogii will use all Drivers without balancing their routes based on any given parameters.

Advanced engine-exclusive features

The Advanced engine comes with a few new features that allow you to further customize how your optimization works. These features can be used in tandem with any of the Load balancing modes.

Route duration limit - Lets users limit how long the Drive should be on the Route. The values are entered in minutes, and this setting in particular from Configuration is applied globally to all Drivers. However, this can be overridden on a Driver level for each Driver individually by navigating to Drivers > Selecting a Driver > Profile > Route duration limit.

Route distance limit - Limits the length of the route i.e. how long you want your Routes to be. The values are inserted in meters (or miles, depending on the distance unit metric of choice) and much like the Route duration limit option, they can be set on an individual Driver level on each Driver’s profile.

Maximum vehicle capacity utilization factor - Imposes a limit on your overall vehicle utilization. You can enter any value up to 100%, and the engine will take that into account while optimizing. For example, if you enter 90% for the maximum vehicle capacity utilization, the vehicle capacity will not exceed 90%, as it will be capped at that value.

You can read more about these features in this article.

Optimization Objectives - This feature allows you to adjust your priorities when it comes to optimization. You can select as few or as many objectives as you want to include in your optimizations. The default ones can be removed and replaced with any objectives relevant to your operations.

Available optimization objectives

Custom Optimization Adjustment

Users can fully customize their future optimization in terms of how long in the future they want to optimize their routes and how they want the engine to handle the Tasks.

This can be done directly from the Planning screen by clicking the arrow next to the Reoptimization button

Once the Custom Optimization option has been selected a pop-up will appear with the same options from Configuration regarding Advanced engine behavior and parameters it considers when optimizing. Those Custom Optimization parameters will temporarily override the ones from Configuration only for the designated optimization.

Available modes:

Base engine vs Advanced engine and switching between them

The Advanced and Base engines support different operational approaches. The Base Engine is ideal for quick and straightforward optimizations where the main goal is to save time and resources above everything. In case of more complex and strict optimization requirements, the Advanced engine is the better choice, as it allows users to customize the way optimizations are run to the smallest detail..

Switching between the Base and the Advanced engine is possible for customers who have the Advanced engine as a part of their subscription package. This option can be found in Configuration > Optimization > Optimization Parameters.

Did this answer your question?