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.

  • Availability templates OR patterns.

  • Ad-hoc availability / unavailability.

  • Shifts where the resource has working hours set to ‘shift’.

Account inclusions and exclusions (account resource scores)

Inclusions and exclusions are hard constraints:

  • When inclusions exist for an account, optimization will consider only resources on that list to be eligible for allocation.

  • When exclusions exist for an account, optimization will consider any resources on that list to be ineligible for allocation.

Location inclusions and exclusions (location resource scores)

Exclusions are hard constraints:

  • When inclusions exist for a location, optimization will consider only resources on that list to be eligible for allocation.

  • When exclusions exist for a location, optimization will consider any resources on that list to be ineligible for allocation

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.

  • AnyMap historical traffic data is predominantly sourced from TomTom, where the solver consumes the data in chunks of time (i.e. off-peak morning, peak morning, off-peak afternoon, etc) to estimate the travel time between locations.

  • It does not currently take into account real-time traffic, which is fine most of the time when the scheduling is being done in advance, real-time traffic information usually only becomes important when performing intra-day reactive scheduling, where they need to know the estimates based on the current traffic conditions to re-adjust a schedule at a point in time.

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.