Git Product home page Git Product logo

Comments (9)

reinterpretcat avatar reinterpretcat commented on July 22, 2024 4

Released in 1.10.0

from vrp.

reinterpretcat avatar reinterpretcat commented on July 22, 2024 3

Thanks for the extra info!. From this point of view, I think it makes sense to add it too: in the end, matrices tend to be big, so it might help to save some resources (e.g. disk/memory space, deserialization size). I guess it won't take long time to add this as a new feature.

Just one question: this scale factor is only for traveling time between locations, but not for service time of a job?

from vrp.

leobudima avatar leobudima commented on July 22, 2024 1

Great, happy that it sounds useful!

In most cases where I've seen it, yes, it only gets applied to travel time, and that is probably least complicated implementation-wise. For use-cases like delivery (vs e.g. servicing equipment), travel times are probably a much bigger component of total job time and much more depend on driver "performance", than service time, which is also small comparatively.

from vrp.

reinterpretcat avatar reinterpretcat commented on July 22, 2024 1

Working on it in a branch: 4ccf7ff

only missing some tests so far

from vrp.

reinterpretcat avatar reinterpretcat commented on July 22, 2024

Hi,
thanks for feedback.

Regarding to a vehicle speed factor: I would say this can be modeled using different routing profiles with different matrices. See this example: https://reinterpretcat.github.io/vrp/examples/pragmatic/basics/profiles.html
So, you would need to prepare multiple matrices and use them accordingly, e.g. set to each vehicle the proper one and specify matrix paths using -m option in the order of profiles definition in the problem

from vrp.

andrewgy8 avatar andrewgy8 commented on July 22, 2024

I agree with what @reinterpretcat says. The speed of a vehicle is typically defined by the matrix generator and the profile used for for traversing the map.

You can see a bunch of provided profiles by OpenRouteService's api here. Just click on the profiles dropdown.

And here is a short list too.
Screen Shot 2021-03-31 at 3 07 29 PM

from vrp.

leobudima avatar leobudima commented on July 22, 2024

Thanks to both for your replies! I agree that the best way to do it for a certain type / group of vehicles is through using different matrix profiles - and vrp nicely supports providing multiple matrices as input, which is amazing. In the end, you can even apply a scaling factor to travel times in already calculated matrices and manage types / groups of vehicles that way.

This feature allows adjusting those values further on individual driver level - e.g. this driver in practice takes on average 20% more time than baseline, this one is faster and needs 10% less time etc...Basically, when calculating for this vehicle, instead of using the value directly from the matrix, the factor gets applied to it first.

To re-iterate, just hoping to give additional information if you guys consider it useful, the feature set you have is quite rich and broad already! :)

Based on our customers' experiences, this is crucial for them to take into account when time-windows are very tight and deliveries dense (e.g. food delivery), as individual driver "performance" can vary up to 20-30% above and below the baseline, so it changes the overall solution completely. It exists as an input in multiple commercial solutions (e.g. Maxoptra, WorkWave...), is being added to VROOM library etc...

from vrp.

reinterpretcat avatar reinterpretcat commented on July 22, 2024

I've refactored a bit a pragmatic format to have the setting consistent: it is part of vehicle profile via fleet.vehicles.profile scale property (available in master). Ideally, it should be moved to fleet.drivers, but drivers-vehicles match feature is not yet landed.

from vrp.

leobudima avatar leobudima commented on July 22, 2024

Amazing, thank you very much for your support and very quick response!

from vrp.

Related Issues (20)

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.