GithubHelp home page GithubHelp logo

graphhopper / jsprit Goto Github PK

View Code? Open in Web Editor NEW
1.6K 113.0 603.0 10.48 MB

jsprit is a java based, open source toolkit for solving rich vehicle routing problems

Home Page: https://www.graphhopper.com/open-source/

License: Apache License 2.0

Java 100.00%
vrp algorithm java traveling-salesman vehicle-routing-problem

jsprit's Introduction

jsprit

jsprit is a java based, open source toolkit for solving rich Traveling Salesman Problems(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 ...

The jsprit-project is maintained by GraphHopper.

Getting Started with Documentation

Please visit docs to learn more.

Modules and Dependencies

Please read Notice.md to get to know the direct dependencies of each module.

Whats New

jsprit develops fast. Look here to get to know whats new.

License

This software is released under Apache License v2.

Contribution

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.

Contact

Mailing List:

In the Graphhopper Forum you can discuss jsprit related issues and you will probably get answers to your questions.

Stackoverflow:

You can also use stackoverflow to discuss your issues. Tag it with jsprit then it is easier to keep track of your topic.

Issue Tracker:

For bugs, feature requests or similar use the issue tracker.

Email:

If you cannot get help in the mailing list or you just do not want to discuss your topic publicly, contact us via mail

jsprit's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jsprit's Issues

Add pickup and delivery

this does not mean enroute pickup and delivery. Either the pickup or the delivery must take place in a depot

Delivery-Points dependant on specific depot

Hi,

congrats for the awesome project, it looks really great!

I've got a feature request where there's a dependency between deliverys and depots, i.e. a multi-depot problem where a delivery can only be delivered from a specific depot.

Example:
Two depots, Depot A hosts Apples, B hosts Books.
Five Deliverys: 1 (gets Apples), 2 (Apples), 3 (Books), 4 (Apples + Books), 5 (Books)

Currently it's possible to solve the problem only if it doesn't matter from which depot the customers get their product, but if there are different products like in this example, it's more complicated. It would be great if something like the following would be possible:

Service.Builder.newInstance("1", 1).setCoord(Coordinate.newInstance(5, 7)).setDepot(...)

or

Service.Builder.newInstance("1", 1).setCoord(Coordinate.newInstance(5, 7)).setDepotCoord(...)

i.e. if one could link the service and the depot it gets deliverd from.

relax/code rapi

code additional builders and factories to decouple/hide implementation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.