Q1 2025

Job relation: First job

This means that all jobs with tag group1 should be scheduled before all tobs with tag group2. Then on the first topic: you could model this as a time window early in the day or as a job.plannedArrival also early in the day. But these constraints will not natively force it. That is why we would suggest this model:

    {
        "type": "SEQUENCE",
        "jobs": ["that_first_job_id"],
    }

The solver will check that that_first_job_id is a single element and will assign it first.

Job relation: Relation Group

The proposed change is:

{
    "type": "GROUP_SEQUENCE",
    "tags": ["group1", "group2"],
    "min": 0
}

TSP improvements

We have implemented several optimizations for handling large-scale TSP instances:

  • Enhanced initial solution construction using nearest neighbor heuristic
  • Implemented advanced local search with 2-opt and 3-opt moves
  • Added memory optimization for large distance matrices
  • Introduced parallel processing for route segments
  • Improved solution quality with real-world constraints consideration

These improvements have resulted in:

  • Faster processing times for instances with 100+ jobs
  • Better solution quality with average improvement of route efficiency
  • Reduced memory footprint for large-scale problems
Q4 2024

Improving for large instances

We can now handle requests that have a huge number of jobs (10000+) through:

  • Implemented chunking strategy and dynamic partitioning for better memory management
  • Added batch processing and parallel execution capabilities
  • Optimized caching mechanisms and data structures for large-scale operations
  • Achieved ~60% faster processing time while maintaining solution quality
  • Improved solution quality while maintaining performance
  • Better memory utilization for extended operations

These improvements ensure stable performance even with significantly larger datasets while maintaining solution quality.

Integrating TomTom Traffic

Set it through:

{
    "options": {
        "routingEngine": "TOMTOM"
    }
}

Solver Enhancements

  • Switched from static distance matrix to time-dependent distance cube
  • Routes now account for traffic patterns at specific times of day
  • Solver optimizes departure times to avoid peak traffic hours

Key Benefits

  • (up to) 15% reduction in actual travel times
  • Improved ETA accuracy
  • More reliable delivery windows
  • Better resource utilization through traffic-aware scheduling
Q3 2024

Multi day jobs

Multi-day jobs are supported through date windows and shifts that span multiple days. Define shifts with start and end dates across different days, and set job time windows accordingly.

For example, now you can define a 20-hour job that will be executed over 3 days of 8 hour shifts.

{
    "duration": 72000
}

New Synchronous Endpoints for Real-time Applications

Added /sync/ Endpoints

  • New synchronous API endpoints for immediate responses:
  • /sync/solve - Direct route optimization
  • /sync/evaluate - Instant solution evaluation
  • /sync/suggest - Real-time suggestions

Key Features

  • Response times under 2 seconds
  • Optimized for UI integration
  • Perfect for interactive applications
  • No webhook configuration needed
  • Automatic timeout handling

Use Cases

  • Interactive route planning tools
  • Real-time route modifications
  • Live what-if scenarios
  • Instant cost calculations
  • Dynamic UI updates

Technical Notes

  • Best suited for small to medium problem sizes
  • Automatic fallback to async for larger requests
  • Enhanced error handling for timeouts
  • Built-in request size validation
  • Consistent with async endpoint response format
Q1 2023

Launching VRP API v2

The v2 of our VRP API has been in the works for almost 2 years. It is a complete rewrite of the architecture going away from a Kubernetes cluster to a very simple and fully serverless approach on GCP using Cloud Run, PubSub and Cloud Storage. Additionally, we have implemented several performance improvements such as:

  • capable of handling higher volume of jobs
  • improved handling of very large list of time windows per job
  • optimized constraint checking

As well as following API improvements:

  • Enhanced request/response format
  • Better validation and error messages
  • Improved rate limiting
  • More detailed solution statistics
  • Extended configuration options