Vroom - green-ecolution/backend GitHub Wiki

Route Optimization for Vehicle Routing Problems

Vroom is an open-source software designed for solving vehicle routing problems (VRP) efficiently. It provides fast and scalable solutions for optimizing delivery routes, ride-sharing logistics, and other transportation-related challenges.

Key Features

  • Multi-vehicle routing: Supports optimization for multiple vehicles with different capacities.
  • Time windows: Allows scheduling constraints for pickup and delivery tasks.
  • Skill matching: Assigns tasks to vehicles based on skill or type constraints.
  • Priority handling: Prioritizes certain jobs for more efficient route planning.
  • Flexible objective functions: Supports minimizing travel distance, duration, or balancing workloads.
  • Integration with OpenStreetMap and OSRM/Valhalla: Uses external routing engines for accurate distance and time calculations.
  • Scalability: Capable of handling thousands of jobs efficiently.

Local Deployment

To set up a local environment to work with our system, spin up a container as described here: docker-vroom

Let's assume that we set up Vroom in a Docker Compose file like this:

#! .docker/docker-compose.infra.yaml

services:
  # [...]
  vroom:
    image: ghcr.io/vroom-project/vroom-docker:v1.14.0
    ports:
      - 2525:3000
    volumes:
      - ./infra/vroom:/conf
    environment:
      VROOM_ROUTER: <CHOOSE_YOUR_VROOM_ROUTER> # ors, orsm, valhalla 
    networks:
      - app-network
    deploy:
      resources:
        reservations:
          cpus: "1"
          memory: 50m
        limits:
          cpus: "1"
          memory: 50m
networks:
  app-network:
    driver: bridge

Then the Green Ecolution configuration would look like this:

#! config/config.<env>.yaml
routing:
    start_point:
        - 9.434764259345679
        - 54.768731253913806
    end_point:
        - 9.434764259345679
        - 54.768731253913806
    watering_point:
        - 9.434764259345679
        - 54.768731253913806
    valhalla:
        host: http://localhost:8002
        optimization:
            vroom:
                host: http://localhost:2525

start_point, end_point and watering_point are needed to optimize the route with Vroom. Here, valhalla is used. Each routing provider in the Green Ecolution system receives an optimization parameter, which refers to the Vroom instance.

For more details, visit the official repository

⚠️ **GitHub.com Fallback** ⚠️