Skip to content
romain-montagnePublic

About

A python framework for solving the VRP and its variants with column generation.

Topics

Resources

Contributing

Stars

203 stars

Watchers

11 watching

Forks

Repository files navigation

CircleCI codecov Codacy Badge Python 3.8 Documentation Status status

VRPy

VRPy is a python framework for solving Vehicle Routing Problems (VRP) including:

  • the Capacitated VRP (CVRP),
  • the CVRP with resource constraints,
  • the CVRP with time windows (CVRPTW),
  • the CVRP with simultaneous distribution and collection (CVRPSDC),
  • the CVRP with heterogeneous fleet (HFCVRP).

Check out the docs to find more variants and options.

Simple example

from networkx import DiGraph
from vrpy import VehicleRoutingProblem

# Define the network
G = DiGraph()
G.add_edge("Source",1,cost=1,time=2)
G.add_edge("Source",2,cost=2,time=1)
G.add_edge(1,"Sink",cost=0,time=2)
G.add_edge(2,"Sink",cost=2,time=3)
G.add_edge(1,2,cost=1,time=1)
G.add_edge(2,1,cost=1,time=1)

# Define the customers demands
G.nodes[1]["demand"] = 5
G.nodes[2]["demand"] = 4

# Define the Vehicle Routing Problem
prob = VehicleRoutingProblem(G, load_capacity=10, duration=5)

# Solve and display solution value
prob.solve()
print(prob.best_value)
3
print(prob.best_routes)
{1: ["Source",2,1,"Sink"]}

Install

pip install vrpy

Requirements

cspy

NetworkX

numpy

PuLP

Documentation

Documentation is found here.

Running the tests

Unit Tests

python3 -m pytest tests/

Benchmarks

To run some non-regression tests on some benchmarks instances (Solomon and Augerat) do

python3 -m pytest benchmarks/

Note that running the benchmarks requires pandas and that it takes a while.

For more information and to run more instances, see the benchmarks.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Bugs

Please report any bugs that you find here. Or, even better, fork the repository on GitHub and create a pull request. Please read the Community Guidelines before contributing. Any contributions are welcome.

About

A python framework for solving the VRP and its variants with column generation.

Topics

Resources

Contributing

Stars

203 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages