VRPy

VRPy: A Python package for solving a range of vehicle routing problems with a column generation approach - Published in JOSS (2020)

https://github.com/kuifje02/vrpy

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

coinor column-generation cspy cvrp networkx optimization pulp python vrp vrptw

Scientific Fields

Sociology Social Sciences - 35% confidence
Last synced: 4 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: Kuifje02
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.91 MB
Statistics
  • Stars: 197
  • Watchers: 11
  • Forks: 43
  • Open Issues: 33
  • Releases: 6
Topics
coinor column-generation cspy cvrp networkx optimization pulp python vrp vrptw
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog Contributing License

README.md

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

```python from networkx import DiGraph from vrpy import VehicleRoutingProblem

Define the network

G = DiGraph() G.addedge("Source",1,cost=1,time=2) G.addedge("Source",2,cost=2,time=1) G.addedge(1,"Sink",cost=0,time=2) G.addedge(2,"Sink",cost=2,time=3) G.addedge(1,2,cost=1,time=1) G.addedge(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.bestvalue) 3 print(prob.bestroutes) {1: ["Source",2,1,"Sink"]} ```

Install

sh pip install vrpy

Requirements

cspy

NetworkX

numpy

PuLP

Documentation

Documentation is found here.

Running the tests

Unit Tests

sh python3 -m pytest tests/

Benchmarks

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

sh 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.

Owner

  • Name: RomainM
  • Login: Kuifje02
  • Kind: user
  • Location: Paris

JOSS Publication

VRPy: A Python package for solving a range of vehicle routing problems with a column generation approach
Published
November 09, 2020
Volume 5, Issue 55, Page 2408
Authors
Romain Montagné ORCID
EURODECISION
David Torres Sanchez ORCID
SINTEF Digital, Mathematics and Cybernetics
Halvard Olsen Storbugt ORCID
SINTEF Digital, Mathematics and Cybernetics
Editor
Kakia Chatsiou ORCID
Tags
Vehicle Routing Problems Networks Column generation

GitHub Events

Total
  • Watch event: 19
Last Year
  • Watch event: 19

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 577
  • Total Committers: 10
  • Avg Commits per committer: 57.7
  • Development Distribution Score (DDS): 0.26
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Romain MONTAGNÉ r****e@f****m 427
torressa 2****a 102
Halvaros h****7@l****o 24
Halvaros 3****s 8
kakiac k****c@g****m 5
Halvard Storbugt Olsen H****n@s****o 4
RomainM r****e@h****r 3
Sourcery AI 2
ecl996 9****6 1
The Codacy Badger b****r@c****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 91
  • Total pull requests: 12
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Total issue authors: 51
  • Total pull request authors: 5
  • Average comments per issue: 4.29
  • Average comments per pull request: 1.0
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Kuifje02 (11)
  • torressa (9)
  • piaulous (5)
  • tcokyasar44 (4)
  • mm04926412 (3)
  • sumi1234 (2)
  • shunana (2)
  • prince4249 (2)
  • rlacjfjin (2)
  • Ilham-Akbar (2)
  • ugirumurera (2)
  • tomatoes-prog (2)
  • mhdsyarif (2)
  • rioaurachman (2)
  • jignesh1010 (2)
Pull Request Authors
  • kakiac (5)
  • torressa (4)
  • samuelefiorini (1)
  • ecl996 (1)
  • Halvaros (1)
Top Labels
Issue Labels
enhancement (17) invalid (10) documentation (9) bug (8) help wanted (3) question (3) testing (2) duplicate (1) good first issue (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,535 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 6
  • Total maintainers: 2
pypi.org: vrpy

A python framework for solving vehicle routing problems

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 1,535 Last month
Rankings
Downloads: 4.6%
Stargazers count: 6.1%
Forks count: 6.3%
Average: 7.2%
Dependent repos count: 9.0%
Dependent packages count: 10.1%
Maintainers (2)
Last synced: 4 months ago

Dependencies

docs/requirements.txt pypi
  • cspy *
  • networkx *
  • pulp *
  • sphinx_copybutton *
  • sphinxcontrib-bibtex <2.0.0
requirements.txt pypi
  • cspy *
  • networkx *
  • numpy *
  • pandas *
  • pulp *
  • pytest *
setup.py pypi
  • cspy *