jsprit is a java based, open source toolkit for solving rich traveling salesman (TSP) and vehicle routing problems (VRP). It is lightweight, flexible and easy-to-use, and based on a single all-purpose meta-heuristic currently solving
- Capacitated VRP
- Multiple Depot VRP
- VRP with Time Windows
- VRP with Backhauls
- VRP with Pickups and Deliveries
- VRP with Heterogeneous Fleet
- Time-dependent VRP
- Traveling Salesman Problem
- Dial-a-Ride Problem
- Various combination of these types
Setting up the problem, defining additional constraints, modifying the algorithms and visualising the discovered solutions is as easy and handy as reading classical VRP instances to benchmark your algorithm. It is fit for change and extension due to a modular design and a comprehensive set of unit and integration-tests. More features ...
Please visit docs to learn more. For older versions (<v1.7) use old-docs. The best way to get to know jsprit is by looking at code examples.
Please read Notice.md to get to know the direct dependencies of each module.
jsprit develops fast. Look here to get to know whats new.
This software is released under Apache License v2.
Any contribution is welcome. Feel free to improve jsprit and make pull requests. If you want to contribute to jsprit (which would be great), fork the project and build your fork, make changes, run your and jsprit's test cases and make a pull request (see help.github.contribute or stackoverflow.contribute for details).
See who has contributed here.
Developing this would be much more difficult without the help of these companies.
In the mailing list (old mailing list) you can discuss jsprit related issues and you will probably get answers to your questions.
You can also use stackoverflow to discuss your issues. Tag it with jsprit then it is easier to keep track of your topic.
For bugs, feature requests or similar use the issue tracker.
If you cannot get help in the mailing list or you just do not want to discuss your topic publicly, contact us via https://graphhopper.com/#contact
The jsprit-project has been created by Stefan Schröder and is maintained by GraphHopper. It is motivated by two issues.
First, you can find vehicle routing problems everywhere in the world of distributing and moving things and people. This probably explains why there is an almost endless list of papers and algorithms to tackle these problems. However, there are only very few open source implementations and even fewer projects that can deal with real world problems that usually have many side-constraints.
Second, it is motivated by my PhD-project at KIT where I apply vehicle routing algorithms to solve behavioural models of freight agents to assess (freight) transport policy measures.
It is mainly inspired by my research group at KIT-ECON, and by a great open-source project called MATSim and its developers.