Overview

Explainable AI provides transparency into how Solvice’s optimization solvers make decisions. This feature enables you to understand not just what solution the solver produced, but why specific assignments were made and what alternatives were considered.
Currently available for the FILL API and VRP API in beta.

Key Benefits

Transparency

Understand the reasoning behind every optimization decision, from resource assignments to route planning. The solver reveals which constraints influenced each choice and how different factors were weighted.

Debugging

Quickly identify issues with solution parameters by examining constraint violations and their impact. This insight helps you fine-tune your optimization requests for better results.

Trust

Build confidence in automated decisions by seeing the full evaluation of alternatives. Users can verify that the solver considered their operational constraints appropriately.

How It Works

The explainable AI feature extends the optimization process with a Hyper-local Discovery phase after finding the best solution. During this phase, the solver:
  1. Evaluates all possible alternative assignments for each decision
  2. Calculates scores for each alternative based on constraint violations
  3. Ranks alternatives to show why the chosen solution performs best
  4. Provides detailed constraint analysis for each option
The explanation phase evaluates n^n alternatives (where n is the number of possible assignments), making it computationally intensive. Only enable this feature when you need detailed explanations.

API Implementation

FILL API

Enable explanations in your shift scheduling requests to understand employee assignments.
{
  "shifts": [...],
  "employees": [...],
  "options": {
    "explanation": {
      "enabled": true
    }
  }
}
Interactive visualization showing alternative employee assignments for shifts with constraint violations

VRP API

Analyze routing decisions to understand job assignments and sequencing choices.
{
  "jobs": [...],
  "resources": [...],
  "options": {
    "explanation": {
      "enabled": true
    }
  }
}

Common Use Cases

Why wasn’t my preferred assignment used?

The explanation reveals all constraint violations that would occur with your preferred assignment, ranked by severity:
{
  "preferredAssignment": {
    "violations": [
      {
        "constraint": "MAX_HOURS_EXCEEDED",
        "severity": "HARD",
        "detail": "Would result in 45 hours, maximum is 40"
      },
      {
        "constraint": "SKILL_REQUIREMENT",
        "severity": "HARD", 
        "detail": "Employee lacks required certification"
      }
    ],
    "totalPenalty": 1000
  }
}

Why is a task unassigned?

For unassigned items, the explanation shows why no feasible assignment exists:
{
  "unassignedReason": {
    "job": "job-999",
    "attempts": [
      {
        "resource": "vehicle-1",
        "violation": "CAPACITY_EXCEEDED"
      },
      {
        "resource": "vehicle-2", 
        "violation": "TIME_WINDOW_CONFLICT"
      }
    ]
  }
}

Performance Considerations

  • Enable explanations only when needed
  • Limit explanation requests to specific problematic solutions
  • Use smaller problem instances when debugging
  • Cache explanation results for repeated queries

API References

Next Steps

1

Enable explanations

Add explanation.enabled: true to your API request options
2

Analyze results

Review the constraint violations and alternative scores in the response
3

Refine constraints

Adjust your request parameters based on the insights gained
The explainable AI feature continues to evolve. Contact support for access to advanced explanation capabilities or to provide feedback on your use cases.