Optimize schedules
Overview
Skedulo’s optimization engine enables organizations to optimize their workforce scheduling, taking into account multiple constraints such as skills matching, resource availability, location, and travel time.
Route Optimization is a Skedulo premium feature and incurs an additional licensing cost. Contact your Skedulo customer success representative for information about pricing.
Optimization concepts
Optimization
Within Skedulo, the term “optimization” is used to describe our AI planning and scheduling automation capabilities, using mathematical programming.
Construction heuristics is the methodology we use to determine feasible solutions to various scheduling problems.
Optimization compares often hundreds of thousands of possible solutions before determining which is the most optimal based on the scheduling objective and constraints. Results are guaranteed to be near-optimal but are often not replicated across multiple optimization runs with the same data. The end result for the given problem across multiple attempts may not always be the same, however, it is likely that there are multiple solutions that are, on average, the same quality.
Asynchronous runs
Route optimization runs asynchronously, meaning it can run at the same time as other operations and is no longer time-restricted, therefore, it can handle more challenging scheduling problems and produce better overall results.
You can see optimization runs that are in progress from the Background tasks panel, accessible from the navigation bar.
Objectives
Objective | Details |
---|---|
Balanced workload | Optimization will attempt to balance the workload across the resources within the region – where the ‘workload’ is considered the absolute job durations – taking into account all of the variables and constraints detailed in the supporting table below. |
Travel time | Optimization will attempt to minimize the travel time across the resources, whilst still taking into account all of the variables and constraints. |
Minimize schedule resources | Optimization will attempt to use as few resources as it can within the schedule period to deliver the work, whilst still taking into account all of the variables and constraints. |
Variables and constraints
Constraints are equations that place limits on how big or small some of the problem variables can get, allowing you to minimize or maximize specific objectives.
They are a set of business rules applied to both jobs and resources that the optimization solver must follow when finding a feasible solution.
These rules are based on the job settings and scheduling options that are configured when jobs are created.
Optimization relies on constraints to determine whether or not a solution is feasible and to score it against other solutions to evaluate which is better.
Feature / function | Details |
---|---|
Resource primary region | The primary region defined against the resource record will determine whether they are picked up in an optimization run for work to be scheduled against. |
Resource availability | Resource availability is defined via any of the following methods, and will determine whether and when they’re eligible to be allocated work within an optimization run period.
|
Account inclusions and exclusions (account resource scores) | Inclusions and exclusions are hard constraints:
|
Location inclusions and exclusions (location resource scores) | Exclusions are hard constraints:
|
Travel time | Historical traffic routing data, provided by our partner AnyMap, is used to source travel time estimates and factor those into the optimization solve.
|
Historical traffic data | Historical traffic routing data, provided by our partner AnyMap, is used to source travel time estimates and factor those into the optimization solve. |
Required tags | Required tags are a hard constraint, where only resources with the current tags (at the time of scheduling) are considered as eligible for allocation. |
Preferred tags | Preferred tags are considered as a soft constraint, where if a resource with the defined tags can be allocated it will consider that to be a preferred outcome, but if unable to will allocate a resource without the tags. |
Tag Expiry | If a tag assignment for a given resource has an expiry time, then the tag will only be considered valid up until that expiry time. After that the time, the resource will no longer match tag requirements for that tag. This is primarily used for cases where tags represent certification that requires ongoing training. |
Job time constraints | Job time constraints are treated as a hard constraint, optimization will respect those times as the only time window/s in which the work can be scheduled. |
Job status | Optimization will treat any work with a status of dispatched and beyond as immovable, and work will be scheduled around them. |
Respect schedule | When this option is selected optimization will treat any work already allocated to a resource as hard a constraint irrespective of the Job status of the work, so the work is considered immovable and optimization will be forced to schedule around it. |
Max travel duration between locations | When a max travel duration between locations has been defined in settings, optimization will respect this as a hard constraint when scheduling (with the exception of when the below ignore travel times are in effect). This is NOT a constraint on the accumulated travel time of a resource on a given day. For example, a resource can still travel an unrestricted distance with enough jobs in a day as long as each leg of travel time is below the max set by this constraint. |
Ignore travel time | Ignore travel time entirely; travel time will no longer be factored into the equation of whether a resource is eligible to be allocated work. Meaning work will be scheduled as if there is no travel time |
Resource requirements with job times defined | Work with resource requirements that has job times defined will have resources allocated by optimization where eligible resources are available. Job times are defined with either explicit start/end times, or a single job time constraint. |
Locked jobs | Locked jobs are treated as immovable by optimization and work will be scheduled around them. |
Job with no location (i.e. virtual meetings) | Jobs with no location are treated as jobs with no travel time to any other location, this will result in them being scheduled back to back against other jobs or resources unless padding or a snap unit is enabled that would space them out otherwise. |
Working hour limits | Optimization respects a resource’s working hour limits and will not allocate work that causes the resource’s working hour limits to be violated. Travel time is not calculated as part of the work allocation when considering working hour limits. |
Inclusion list rules
Account resource scores
Account resource scores respect inclusion and exclusion lists when determining whether or not a resource can be assigned to jobs associated with specific accounts.
Location resource scores
Account resource scores respect inclusion and exclusion lists when determining whether or not a resource can be assigned to work at specific locations.
Feasible solutions
A feasible solution is a valid scheduling solution that does not break any hard constraints.
Hard constraints are non-negotiable scheduling requirements that cannot be broken.
These include job tag requirements, exclusion lists, job time constraints, and maximum travel times. Scheduling solutions that break these constraints are not considered feasible solutions and are ruled out by the optimization engine.
There are usually multiple feasible solutions to a given scheduling problem, and the number of feasible solutions tends to be relative to the number of possible solutions, which may include schedules that break hard constraints and are therefore not always feasible or optimal.
Score calculation
Scoring is a weighting system that compares the impacts of constraints and any violation of them.
For the optimization engine to determine which feasible solution is better than another, not all score constraints can be considered equally important.
If breaking one constraint is equally as bad as breaking another constraint x times, then those two constraints must have a different weight assigned to them so that the optimization engine can systematically understand the importance and impact of them in the schedule.
Constraints can have two levels: hard or soft.
-
Hard constraints force the solution to be feasible if no constraints are broken.
-
Soft constraints are usually objectives that force the optimization in a certain direction, but the optimization algorithm understands they can be broken if need be.
Feedback
Was this page helpful?