Field Service
Field Service / Mobile Worker Scheduling with skills, time windows, and multi-day planning
Previewproblem type field_servicemanifest 2.0
Objectives#
What the solver optimizes. Enabled objectives are weighed together.
| Objective | What it means | Direction | On by default | Weight |
Maximize Jobs Completed
maximize_jobs_completed | Complete as many jobs as possible within constraints | maximize | Yes | 1.0 |
Minimize Travel Time
minimize_travel | Minimize total travel time across all technicians | minimize | Yes | 0.8 |
The setup values you send with a problem. The console renders them as form fields.
Problem Size#
| Input | Name | Type | Required | Default | Description |
n_jobs | Number of Jobs | number | Yes | 20 | Service jobs at different locations |
n_workers | Number of Workers | number | Yes | 5 | Mobile workers who travel to jobs |
n_locations | Number of Locations | number | No | | Unique job locations (default: number of jobs) |
Service Configuration#
| Input | Name | Type | Required | Default | Description |
service_duration_hours | Service Duration | number | No | 0.5 | Default time required to complete each job (in hours) |
Travel Settings#
| Input | Name | Type | Required | Default | Description |
travel_time_method | Travel Time Calculation Method | select | No | explicit_times | Choose how travel time between jobs is calculated |
travel_time_no_traffic | Travel Time (No Traffic) - minutes | number | No | 12 | Time to travel between jobs when there's no traffic |
travel_time_with_traffic | Travel Time (With Traffic) - minutes | number | No | 20 | Time to travel between jobs during peak traffic |
travel_speed_mph | Average Travel Speed | number | No | 25 | Average speed for travel time calculations |
Advanced Options#
| Input | Name | Type | Required | Default | Description |
find_minimum_workers | Find Minimum Workers | boolean | No | | Automatically determine the minimum number of workers needed to satisfy all constraints |
Constraints#
A hard constraint must hold or the problem is infeasible; a soft one adds a penalty when broken.
| Constraint | What it requires | Kind | On by default |
Maximum Working Hours
max_working_hours | Maximum hours each technician can work per day | hard | Yes |
Technician Availability Calendar
technician_availability | Respect technician availability calendars (multi-day) | hard | No |
Minimum Technicians Required
min_technicians | Ensure minimum technician count is maintained | hard | No |
Skills/Qualifications Matching
skill_matching | Match technician skills to job requirements | hard | Yes |
Certification Requirements
certification_requirements | Require valid certifications for specific job types | hard | No |
Job Time Windows
job_time_windows | Jobs must be started within customer-specified time windows | hard | No |
Job Dependencies
job_dependencies | Some jobs must be completed before others can start | hard | No |
Multi-Day Scheduling
multi_day_scheduling | Schedule jobs across multiple days | hard | No |
Travel Time
travel_time | Account for travel time between job locations | hard | No |
Maximum Travel Distance
max_travel_distance | Limit total travel distance per technician per day | soft | No |
Territory Assignment
territory_assignment | Assign technicians to specific geographic territories | soft | No |
Workload Balance
workload_balance | Balance work across technicians | soft | Yes |
Technician Job Preferences
technician_preferences | Consider technician preferences when assigning jobs | soft | No |
Customer-Technician Affinity
customer_technician_affinity | Prefer sending the same technician to repeat customers | soft | No |
Presets#
Named starting sets of constraints.
| Preset | Use it for | Constraints |
Basic Field Service
basic | Simple job assignment with skill matching | max_working_hours, skill_matching, travel_time, workload_balance |
Appointment-Based Service
appointment_based | Service with customer time windows | max_working_hours, technician_availability, skill_matching, job_time_windows, travel_time, workload_balance |
Multi-Day Scheduling
multi_day | Schedule across multiple days with calendars | max_working_hours, technician_availability, skill_matching, job_time_windows, multi_day_scheduling, travel_time, workload_balance, customer_technician_affinity |