All Projects → Kuifje02 → vrpy

Kuifje02 / vrpy

Licence: MIT license
A python framework for solving the VRP and its variants with column generation.

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
TeX
3793 projects

Projects that are alternatives of or similar to vrpy

cplex-vrptw-implementation
An implementation of VRPTW in CPLEX
Stars: ✭ 22 (-76.6%)
Mutual labels:  vrp, vrptw
optimizer-api
Unified API for multiple optimizer engines
Stars: ✭ 26 (-72.34%)
Mutual labels:  optimization, vrp
Coluna.jl
Branch-and-Price-and-Cut in Julia
Stars: ✭ 128 (+36.17%)
Mutual labels:  optimization, column-generation
tsplib95
Library for working with TSPLIB files.
Stars: ✭ 48 (-48.94%)
Mutual labels:  networkx
FEATHER
The reference implementation of FEATHER from the CIKM '20 paper "Characteristic Functions on Graphs: Birds of a Feather, from Statistical Descriptors to Parametric Models".
Stars: ✭ 34 (-63.83%)
Mutual labels:  networkx
CSDP.jl
Julia Wrapper for CSDP (https://projects.coin-or.org/Csdp/)
Stars: ✭ 18 (-80.85%)
Mutual labels:  optimization
StochasticOptimization.jl
Implementations of stochastic optimization algorithms and solvers
Stars: ✭ 26 (-72.34%)
Mutual labels:  optimization
monolith
A C++ monorepo for discrete and continuous optimization. Batteries included!
Stars: ✭ 84 (-10.64%)
Mutual labels:  column-generation
decrypticon
Java-layer Android Malware Simplifier
Stars: ✭ 17 (-81.91%)
Mutual labels:  optimization
genx
Genx provides modular building blocks to run simulations of optimization and search problems using Genetic Algorithms
Stars: ✭ 31 (-67.02%)
Mutual labels:  optimization
Optimization
A set of lightweight header-only template functions implementing commonly-used optimization methods on Riemannian manifolds and convex spaces.
Stars: ✭ 66 (-29.79%)
Mutual labels:  optimization
Final Project
Using Twitter Ego Network Analysis to Detect Sources of Fake News
Stars: ✭ 44 (-53.19%)
Mutual labels:  networkx
IterativeLQR.jl
A Julia package for constrained iterative LQR (iLQR)
Stars: ✭ 15 (-84.04%)
Mutual labels:  optimization
pulp soc
pulp_soc is the core building component of PULP based SoCs
Stars: ✭ 43 (-54.26%)
Mutual labels:  pulp
LBFGS-Lite
LBFGS-Lite: A header-only L-BFGS unconstrained optimizer.
Stars: ✭ 98 (+4.26%)
Mutual labels:  optimization
fa2l
Force Atlas 2 graph layout
Stars: ✭ 33 (-64.89%)
Mutual labels:  networkx
geneal
A genetic algorithm implementation in python
Stars: ✭ 47 (-50%)
Mutual labels:  optimization
LaplacianOpt.jl
A Julia/JuMP Package for Maximizing Algebraic Connectivity of Undirected Weighted Graphs
Stars: ✭ 16 (-82.98%)
Mutual labels:  optimization
napalm-huawei-vrp
NAPALM Driver for Huawei VRP5/VRP8 Routers and Switches
Stars: ✭ 50 (-46.81%)
Mutual labels:  vrp
hopperOptimizations
A mod that optimizes hoppers and their interactions with entities and inventories. It drastically reduces hopper lag without changing any behavior.
Stars: ✭ 65 (-30.85%)
Mutual labels:  optimization

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].