Crates.io | muto |
lib.rs | muto |
version | 0.1.0 |
source | src |
created_at | 2020-09-27 22:05:27.740832 |
updated_at | 2020-09-27 22:05:27.740832 |
description | An open-source vehicle routing optimization library that specializes on dynamic vehicle routing problems (DVRP) |
homepage | https://github.com/alistairwoodcock/muto |
repository | https://github.com/alistairwoodcock/muto |
max_upload_size | |
id | 293536 |
size | 15,025 |
Muto is an open-source vehicle routing optimization library written in rust that specializes on dynamic vehicle routing problems (DVRP) such as same day package delivery and on-demand passenger transportation.
Everything you need to get started.
TODO: Need APIs completed
TODO: Need http server completed
TODO: Wiki of language & package bindings
TODO
We love hearing about your use cases so we can get a better idea of how to make Muto as useful as possible.
If you're wanting detailed in ... email at TODO email
If you've got a question about how to implement a certain feature TODO detail how to make a question issue type
If you've got a feature request TODO
TODO
TODO
A static VRP is where you setup all the vehicles, jobs (e.g. package deliveries, pick-ups, drop-offs, breaks, etc.) and time windows and tell the optimizer to run for some number of iterations as it finds you a decent (sometimes optimal) solution. That solution will contain all the actions the vehicle has to take to service all those jobs.
However, if you need to update your solution as those vehicles are servicing jobs, for example you might get a new request to deliver a package during that day, your problem is a dynamic one. For every "key event" in your system you need to find the best new set of actions your vehicles need to take, while keeping track of which ones have already been completed.
In a dynamic problem, the more information the better. Common types of information you might need are: The locations of the vehicles, if a job has been created, if a job has been cancelled, what jobs have been fulfilled so far, what's currently onboard a vehicle (e.g. in package or passenger delivery).
We think you might prefer Muto to other packages many reasons, here are a few:
We don't know of many packages that specialize in Dynamic vehicle routing problems, but two packages that help with static VRPs that we can vouch for are: (Jsprit)[https://github.com/graphhopper/jsprit] and (VROOM)[https://github.com/VROOM-Project/vroom]. These packages are well maintained and have been around longer than Muto.
In the (literature)[TODO: Link to our literature guide] it's quite common to adapt static optimizers to handle dynamic vrps. We have experience doing exactly this in production systems. However there is quite a lot of work involved and we think Muto would be better choice as it's targeted towards dynamic problems.