Download - Global Optimization Optimization Pt. 3
Optimization Pt. 3Global OptimizationHaggai Gootwine, Simon Kuntz
Agenda
● The Optimization Challenge● A Scheduling Example - How grading works● The Process of Optimization● Tuning Optimization● Pitfalls
The Optimization Challenge
The Field Service Optimization Challenge
I schedule 100 Service Resources, each with 6 Service Appointments per day. So I need to route 600 jobs each day.
I want to do it:● Efficiently● To the satisfaction of my customers● Within the SLAs● While obeying regulations...
Diana
The Field Service Optimization Challenge
720 Combinations
Diana
1 Service Resource, 6 Service Appointments
The Field Service Optimization Challenge
2 Service Resources, 13 Service Appointments
6,227,020,800 Combinations
Diana
2 Service Resources, 13 Service Appointments
The Field Service Optimization Challenge5 Service Resources, 29 Service Appointments
Diana
8.84176e+30 Combinations!
600 Service Appointments per day.Efficiently, high CSAT, SLA compliance, regulations...
The Traveling Salesman Problem (TSP):
“Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?”
“The problem … is one of the most intensively studied problems in optimization”
The Field Service Optimization Challenge
The TSP and Field Service
Solve efficiently for hundreds of technicians
Consider more variables than just travel
Accomodate in-day changes
Work with contractors Provide coverage for remote areas Crews and multi day
Balance workload across territories Re-prioritize over time Various skills
How Field Service Lightning Optimization WorksLogic used for: Appointment Booking, Optimization, Smart Scheduling on Gantt
100s of Employees 5 Qualified Employees The Optimal Employee
Work Rules:Yes / No Qualifiers
Who can do the job?
Skill, Location, Availability, Required Resource, etc.
Service Objectives:Which employee is the best based on company KPIs?
Minimize Travel, Minimize Overtime, Prefer Contractors, Preferred Skill Set
A Scheduling Example - How grading works
Scheduling Examples
Basic scheduling example with Work Rules applied & Candidates explained
Work Rules:
Technician:
1. Skills2. Required Resources
Time:
3. Due Date4. Visiting Hours5. Travel
Service Objectives:
Technician:
1. Preferred Resource
Time:
2. ASAP3. Minimize Travel
+ How the different scheduling options are graded based on combination of weighted objectives
Scheduling Example - Equipment Callout
Scenario Description:
● Callout (Equipment malfunction) is created early in the morning on Tuesday, October 1st:
○ Requires a technician that is qualified to handle Callouts. ○ Customer SLA is 5 hours from the moment the Callout is received. ○ The customer site can only be serviced Mon-Fri, 8:00 AM - 11:00 AM.
● The following business goals are included in the Scheduling Policy:○ Callouts should be scheduled as soon as possible ○ Callouts should be assigned to the ‘Preferred Resource” when possible○ Travel costs should be minimized ○ When possible - avoid scheduling work in overtime slots
Work Rules - Who Can Do the Work?
● When an Equipment Callout comes in, it requires a technician that is qualified to handle Equipment Callouts. The Skill Requirement is listed on the Work Order:
● The “Match Skills” Work Rule ensures that only Resources that have the “Callout - Elevator” Skill are considered as candidates for the Work Order. For example;
Skilled Resources
Work Rules - Who Can Do the Job?
“Match Skills” Work Rule Skilled Resources
Available Resources Who has the “Callout” Skill? Candidate Resources
Work Rules - When Can the Work be Done?
● When an Equipment Callout comes in during the day, the latest time in which it can be scheduled (and completed) is based on the customer Service Level Agreement (SLA).
● On the Service Appointment, the “Due Date” field represents the calculated SLA of the Callout*
● The “Due Date” Work Rule ensures that only appointment times that allow the Callout to be scheduled before the Due Date are offered as candidate assignments.
○ “Due Date” is a mandatory Work Rule, therefore it is included in all Scheduling Policies.
Due Date
* Due Date is relevant for Appointment Booking, Arrival window is later relevant for optimization
Work Rules - When Can the Work be Done? Due Date
Due DateCandidate Assignments
Note: Travel to/from the appointment is calculated for each assignment and used as an additional factor to determine scheduling options
Work Rules - When Can the Work be Done?
● Certain customers should be serviced in specific hours of the day. For example, the following Operating Hours indicate that the customer can only be serviced Mon - Fri, between 8:00 AM - 11:00 AM:
● The “Visiting Hours” field on the Work Order links the Operating Hours of the customer to the Work Order.
● The “Service Appointment Visiting Hours” Work Rule ensures that only appointment times that fall within the customer Visiting Hours are offered as candidate assignments.
Visiting Hours
Work Rules - When Can the Work be Done? Visiting Hours
Visiting Hours
Candidate Assignments
Service Objectives - Who is the Best Candidate? Preferred Resources
● Ashley Sandoval is identified as the ‘Preferred Technician’ for the Location, and Preferred for Equipment Callouts.
Service Objectives - Who is the Best Candidate? Minimize Travel
● From a travel time perspective, assigning the Callout to Ashley Sandoval will add the least amount of travel time to the overall schedule.
Service Objectives - What is the Best Time? ASAP
● Scheduling the Callout to Dan Goldstone would mean the work can start as close as possible to 8:00 AM (Earliest Start Permitted).
Service Objectives - What is the Best Time? Minimize Overtime
● Overtime is not consumed in any of the scheduling options, therefore all candidates are graded equally for the “Minimize Overtime” Objective.
Scheduling Policies - What is the Best Assignment? Combination of Work Rules and Weighted Objectives
Scheduling Policies - What is the Best Assignment? Graded Assignments
Scheduling Policies - What is the Best Assignment? Graded Assignments
● Each assignment (technician / time) is graded for each Service Objective in the Scheduling Policy. That grade is then multiplied by the relative weight of that Service Objective.
● The result is the weighted grade of the assignment -
(ASAP Grade × ASAP Weight) + (Pref Res Grade × Pref Res Weight) + (Minimize Travel Grade × Minimize Travel Weight) + (Minimize Overtime Grade × Minimize Overtime Weight)
Scheduling Policies - What is the Best Assignment? Graded Assignments
How did we get to a grade of 99 for Dan Goldstone on Oct 1, 2019 8:00 AM?
Service Objective Weight (Percentage)
Assignment Grade
Weighted Grade
ASAP - Callouts 98.81 100 98.81
Preferred Resource 0.59 0 0
Minimize Travel 0.39 60 0.23
Minimize Overtime 0.19 100 0.19
Total = 99.23
The Process of Optimization
The Optimization Process:
Step 1: Initiate an Optimization request:
The Optimization Process:
Step 1: Fetching SAs relevant for Scheduling
(SchedStartTime = NULL Or SchedStartTime >=: start) And ( (SchedStartTime <=: finish and SchedEndTime >=: start) Or (ArrivalWindowStartTime <=: finish and ArrivalWindowEndTime >=: start) Or (EarliestStartTime <=: finish and DueDate >=: start and SchedStartTime = NULL) )
Meaning: - SAs scheduled prior to horizon aren’t considered- Scheduled Services that are Scheduled within the horizon (regardless of other properties)- SAs that have arrival window that fall within the horizon- Unscheduled SAs that can be scheduled within the horizon
The Optimization Process:
Step 2: Creation of Input JSON files - Optimization Data lookup field
The Optimization Process:
Step 2: Creation of Input JSON files - Related list on “Optimization Data”
The more SAs sent to optimization, the more JSON files created
Json Files = Clues to where the process breaks down
Tracing the movement of Data to and from the optimization engine, allows to determine where the process is interrupted, and can serve as guidance to where further investigation should focus.
Input&Output
The Optimization Process:
Step 3: Creation of output JSON files - Related list on “Optimization Data”
Tuning Optimization
● 145 Service
Appointments
across geographical
area
Data Overview
Data Overview
● 6 Technicians○ Chris: Francho St, Worongary QLD 4213
○ Darren: Durrant Ct, Tamborine QLD 4270
○ Greg: Aird St, Sandstone Point QLD 4511
○ Steve: Bacchus St, Burpengary QLD 4505
○ Matt: Boreen Ct, Helensvale QLD 4212
○ Shane: Hamel Rd, Holland Park West, QLD 4121
● 2 Homebase Relocations:○ Chris: 19.6, Mackay Airport
○ Steve: 17-18.6, Mornington
● Resource Absences:○ Greg: 19-21.6
● 2 weeks
○ Start - 10.6.2019 (Monday)
○ End - 21.6.2019 (Friday)
Data Overview
Assumptions
● Resources:
○ Working Hours: 8:00 -17:00
○ Overtime: 17:00- 20:00
○ Travel is at the expense of the Resource (first and last travel of every day)
○ No Lunch Breaks allocated during scheduling (same as data provided by BOC)
● Services:
○ All services can be scheduled within the 2 weeks:
■ Early Start Permitted: 10 June
■ Due Date: 21 June
○ No arrival windows configured
○ No visiting hours configured
● Utilization:
■ Calculated including Travel & Overtime
Baseline Schedule
Baseline Schedule
Baseline Schedule
Some Observations:
● Shane, 19.6 - problematic day
Baseline Schedule
Baseline Schedule
Measurement Baseline
Total Travel Time 5789 Min = 96.48 H
Avg Travel Per Service ~39 Min per Service
Total Overtime Consumed ~25 Hours of Overtime
Days over 100% (inc. overtime) 6 Days
Days working 57 Days
Avg SAs per day per resource 2.54 Services per day
Focus - Minimizing Travel
Minimize Travel Schedule
Optimised to Minimize Travel
Measurement Baseline Minimize Travel Improvement
Total Travel Time 5789 Min = 96.48 H 4809 Min = 80.15 H ~20%
Avg Travel Per Service ~39 Min per Service ~33 Min per service ~20%
Total Overtime Consumed
~25 Hours of Overtime ~12 Hours of Overtime ~52%
Days over 100% (inc. overtime)
6 Days 2 Days ~66%
Days working 57 Days 53 Days ~7%
Avg SAs per day per resource
2.54 Services per day 2.73 Services per day ~7%
Focus - Minimizing Overtime
Minimize Overtime Schedule
Metrics- Minimize Overtime
Measurement Baseline Minimize Overtime Improvement
Total Travel Time 5789 Min = 96.48 H 5595 Min = 93.25 H ~3%
Avg Travel Per Service ~39 Min per Service ~38.5 Min per Service ~3%
Total Overtime Consumed
~25 Hours of Overtime ~5.1 Hours of Overtime ~80%
Days over 100% (inc. overtime)
6 Days 1 Day ~83%
Days working 57 Days 56 Days ~2%
Avg SAs per day per resource
2.54 Services per day 2.58 Service per day ~2%
Focus - ASAP
ASAP Schedule
Metrics- ASAP
Measurement Baseline ASAP Improvement
Total Travel Time 5789 Min = 96.48 H 5646 Min = 94.1 H ~2.5%
Avg Travel Per Service ~39 Min per Service ~38.9 Min per Service ~2.5%
Total Overtime Consumed
~25 Hours of Overtime ~8.6 Hours of Overtime ~66%
Days over 100% (inc. overtime)
6 Days 1 Day ~83%
Days working 57 Days 55 Days ~3%
Avg SAs per day per resource
2.54 Services per day 2.6 Services per day ~3%
Summary
Metrics (next step is to assign a $ value to each KPI)
Measurement Baseline Minimize Travel Minimize Overtime
ASAP
Total Travel Time 5789 Min = 96.48 H 4809 Min = 80.15 H 5595 Min = 93.25 H 5646 Min = 94.1 H
Avg Travel Per Service ~39 Min per Service ~33 Min per service ~38.5 Min per Service ~38.9 Min per Service
Total Overtime Consumed
~25 Hours of Overtime
~12 Hours of Overtime
~5.1 Hours of Overtime
~8.6 Hours of Overtime
Days over 100% (inc. overtime)
6 Days 2 Days 1 Day 1 Day
Days working 57 Days 53 Days 56 Days 55 Days
Avg SAs per day per resource
2.54 Services per day 2.73 Services per day 2.58 Service per day 2.6 Services per day
Pitfalls, tips and tricks
Rule Violations
Work Rules and Rule Violations
Scheduling and Optimization services/ actions will never schedule work to resources while violating Work Rules.
Manual override is possible on the Gantt itself, in which case a Rule Violation notification will be shown, and an explanation highlighting which Work Rule is violated will be shown in the tooltip.
Rule Violations
Optimization will not attempt to optimize rule violating services
Should I exclude travel from home base?
Minimize Travel Objective: Exclude HB travel
Minimize Travel Objective: Exclude HB travel
VS
Flagging SAs for Tuning
Minimize Travel Objective: Exclude HB travel