Features
Unassigned Reasons
Understand why jobs could not be assigned to resources
Overview
When the VRP solver cannot assign certain jobs to any resource, it can now provide detailed reasons explaining why each job remains unassigned. This feature helps identify scheduling conflicts and constraints preventing job assignments.
Enabling Unassigned Reasons
To receive unassigned reasons in your response, enable the explanation feature with the onlyUnassigned
option:
Example Request
Here’s an example where jobs cannot be assigned due to time window conflicts:
Example Response
The response includes an unservedReasons
map that explains why each unassigned job could not be scheduled:
Common Unassigned Reasons
Reason | Description |
---|---|
DATE_TIME_WINDOW_CONFLICT | Job’s time window doesn’t overlap with any available resource shift |
SHIFT_TIME_CONFLICT | Resource shift cannot accommodate the job duration |
TRIP_CAPACITY | Vehicle capacity exceeded |
TAGS | Resource lacks required tags for the job |
Use Cases
- Capacity Planning: Identify when you need more resources or extended shifts
- Schedule Optimization: Understand which constraints are most restrictive
- Customer Communication: Provide clear explanations for service limitations
- System Debugging: Quickly identify configuration issues preventing assignments
Performance Considerations
- Setting
onlyUnassigned: true
improves performance by only analyzing unassigned jobs - For large problems, consider using this feature selectively during debugging
- The explanation process runs after the main optimization, so it doesn’t impact solution quality. It impacts latency however.