CARL Optim is an optimization engine designed to solve complex planning and routing problems by applying specific constraints to best meet your needs.
The selection of constraints as well as the choice of constraint level and weighting help guide the optimization result.
By applying these different parameters, a score per constraint level (strong, medium, flexible) is calculated for each tested solution. The best proposed solution is the one closest to a score of 0/0/0.
However, a solution with a negative score corresponding to strong-type constraints will not result in a proposed solution.
The Optimized Participant attribute in the participant detail allows you to count the number of participants authorized during an optimization run.
Optimization execution scenario
An optimization via CARL Source includes several steps:
- Configure an optimization model,
- Select the interventions to optimize in the [Interventions] feature,
- Select the [Optimization of interventions] action available under the
icon in the intervention list.
→ The optimization launch popup is displayed.
- Fill in the requested information and validate:
→ If OK, then the optimization is launched and a tracking memo is generated.
→ If KO, then the optimization is not launched and a tracking memo is generated.
- At the end of the allotted execution time, the application displays a tracking memo:
→ If a result is found: the optimization launch popup is displayed.
→ If no result is found: the optimization launch popup is displayed.
- View an optimization
→ Display of the optimization in graphical form, see [Optimization detail]
- Perform the action on the optimization
→ Accept an optimization and save the information in CARL Source.
→ Reject an optimization.
At least one intervention must be entered in order to launch an optimization.
The module parameter BLOPTIM_FST_CALL defines the percentage of processing time in addition to the initial processing time for initialization steps.
The module parameter BLOPTIM_NEXT_CALL defines the percentage of processing time before re-querying the optimization engine when the initial time was not sufficient to solve the optimization problem.
To ensure the optimization engine is aware of the existing schedule of participants to avoid double planning, CARL Source additionally sends all interventions linked to participants whose planning dates fall within the planning horizon. This way, the engine considers them as already planned interventions that must be taken into account when searching for the best optimization solution.
At each step, a tracking memo is sent.
Optimization launch settings
The following fields are mandatory for launching an optimization:
- Optimization start date: Desired start date of the optimization. Initialized to Today + 1,
- Optimization model: Optimization model to apply. Infozone containing active optimization models,
- Participants concerned: List of participants to assign. Initialized with the value configured in the optimization model. Infozone containing public filters as well as personal filters of the logged-in user on the "TECHNICIAN" entity.
Optimization mode
TASP
The TASP mode distributes tasks among available resources, without considering travel.
VRP
The VRP mode organizes optimized routes taking into account intervention locations and travel paths.
The distance between 2 points is calculated using a cost matrix based on the open-source ORS (Open Route Service) solution. The cost matrix is updated as optimizations and new addresses are added. All distances (old address - new address) are calculated and stored in the cost matrix for future use.
Two addresses 120 meters apart are considered as the same address.
It is advisable to periodically purge the cost matrix so that recalculations account for route changes (roadworks, new roads, one-way streets).
Pre-checks before launching an optimization
Before launching an optimization, different checks are performed.
- Interventions must be in a state other than COMPLETED / CLOSED / ARCHIVED / CANCELED,
- The participant filter must contain at least one participant,
- The time zone of the interventions must be the same as the user context time zone,
- A standard week must be defined if the OPENNING_HOURS constraint is enabled in the optimization model,
- Workload on each labor line must be defined if the SPLIT_ACTIVITY constraint is enabled in the optimization model,
- Addresses (Intervention, Participant, or optimization model) as well as the TRAVEL_OCCTYPE module parameter must be defined if the VRP optimization mode is enabled in the optimization model.
Updating interventions
Accepting a solution updates the interventions.
The data that can be updated are:
- General tab: Intervention start date - end date,
- Labor tab: Team, Specialty, Participant, Labor type, Date, Time.
Depending on the constraints applied in the model, it is possible to complete a labor line or replace it.
This is a full save of the optimization solution. If an error occurs during saving, no information is saved and an information memo is sent.
Travel management
When using the VRP optimization mode, the optimization engine calculates the travel times needed to carry out an intervention.
This information will be added to the intervention as a labor line with the labor type field filled in.
The labor type automatically associated is the one defined in the TRAVEL_OCCTYPE module parameter.
Travel times are included in the total intervention workload.
The last travel of a day (without a subsequent intervention) is not saved in CARL Source.