Kuifje02 / vrpy

A python framework for solving the VRP and its variants with column generation.
MIT License
173 stars 42 forks source link

VRP with reload facility #123

Open mertbakir opened 2 years ago

mertbakir commented 2 years ago

Hello, I was considering to start a similar project that has essential algorithms for VRP from the literature such as Solomon's I1, Clarke-Wright etc. Then improve over those using metaheuristics. Then I found this project yesterday. I've read the published paper, and had a chance to use the library on some toy examples.

I have 3 questions if you don't mind:

  1. Is a way to model cvrp with reloads a.k.a intermediary facilities, example in or-tools

Basically, I have k vehicles, single depot, n customers that requests different amounts of goods. Vehicle capacities is not sufficient to handle all the requests in a single trip. So, they need to go to the reload station to refill goods and serve the remaining customers. Refill station doesn't have to be at the depot.

  1. Have you considered to implement the algorithms in different language C, C++ for performance reasons?
  2. Do you know any similar work, heuristic algorithm implementations for VRP?
Kuifje02 commented 2 years ago

Hi there !

  1. CVRP with reloads is currently not available. But it would be a great enhancement. We would have to introduce new optional nodes (this is already possible); the hard part would be to reset the load resource to 0 if such nodes are visited. This is probably doable with cspy, but probably some dev is required.
  2. Actually, cspy (on which vrpy relies) is implemented in C++. It would be great to have everything in C or C++ (or Julia ?), but I believe it is important to have a Python API, to ensure a very user friendly interface.
  3. On our TO DO list, we would like to merge algorithms from VeRyPy (https://github.com/yorak/VeRyPy).

Please feel free to contribute to this project. We do not have much time nor resources to maintain it, although we have received a lot of positive feedback.

mertbakir commented 2 years ago

@Kuifje02 Thank you for the response! I'll try to dive deeper into the project in my free time.