VROOM-Project / vroom

Vehicle Routing Open-source Optimization Machine

Home Page:http://vroom-project.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seeking Advice: Implementing User-Defined Routes with Invisible Points to Guide Optimization Algorithm

mauroalexandre opened this issue · comments

Hello! I'm in a situation where, even after the route has been optimized, the user wants to "force" the vehicle to travel through certain pre-determined sections/roads.

I managed to solve it, but I would like your opinion on whether there is a more "elegant" way.

Currently, I've created a category of "invisible" points, so I create a job at that location, and consequently, I force the algorithm to pass through the road that the user would like.

After all, this "invisible" point is neither a Job nor a Shipment.

What do you suggest?

What about dividing the route into segments? This allows flexibility and optimization where possible. The point that I find negative in this way is, treating these points as "job" and they would end up being like passage points.

What about dividing the route into segments? This allows flexibility and optimization where possible. The point that I find negative in this way is, treating these points as "job" and they would end up being like passage points.

Unfortunately, using multiple segments would imply a major refactor, and indeed, the segments are from the same routes.

This is being used, for example, to prevent the vehicle from passing through highways considered "dangerous" or "inappropriate".

The only way I found was to place a job on the "street" that it should pass through to avoid the street that it should not.

the user wants to "force" the vehicle to travel through certain pre-determined sections/roads.

This looks more like a routing problem than an optimization one: you're not getting the "expected" route between two points. In that case the best approach would be to tune your routing engine.

Closing as answered, feel free to re-open with new input if that is not the case.