Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better costs modelling at vehicle level #788

Merged
merged 46 commits into from
Nov 30, 2022
Merged

Conversation

jcoupey
Copy link
Collaborator

@jcoupey jcoupey commented Sep 21, 2022

Issue

This PR aims at improving the way costs can be fine-tuned at vehicle level, including:

Tasks

  • Parse fixed cost in input
  • Parse time cost factor in input
  • Update cost reporting in output
  • Adjust OrOpt operator to account for fixed costs changes
  • Adjust RouteExchange operator to account for fixed costs changes
  • Adjust PdShift operator to account for fixed costs changes
  • Adjust Relocate operator to account for fixed costs changes
  • Adjust ReverseTwoOpt operator to account for fixed costs changes
  • Tune vehicle ordering in heuristics
  • Benchmark
  • Update docs/API.md
  • Update CHANGELOG.md
  • review

@jcoupey jcoupey added this to the v1.13.0 milestone Sep 21, 2022
@jcoupey jcoupey mentioned this pull request Nov 23, 2022
6 tasks
@jcoupey
Copy link
Collaborator Author

jcoupey commented Nov 28, 2022

Here is a quick summary of the results I'm getting with the state of this PR on the HVRP benchmarks I gathered.

x Average gap (%) Median gap (%) Worst gap (%) Average computing time (ms)
0 7.41 6.35 44.14 72
1 5.66 4.73 44.14 168
2 4.81 4.14 44.14 362
3 4.35 3.85 43.6 603
4 3.96 3.45 43.6 1095
5 3.74 3.32 43.6 1730

Comments:

  1. The gaps are quite hard to get down, those results have involved quite a lot of testing and introducing a new operator. The HVRP is significantly harder than the CVRP since there is an additional affectation problem to decide which vehicles to use. I've tested many things around this in the scope of our solving framework but there is no simple rule that works across all instances to decide on vehicles to pick based on fixed/variable cost and capacities.
  2. I feel this is good enough for now because:
  • as usual the real-life instances are probably much simpler usually (especially with a more or less adjusted fleet, the hard part with the benchmarks being that they have an "open-bar" setup on a lot of different vehicle types);
  • computing times are still quite low (this is not even a release build) which leaves us with some room for further improvements later on.

@jcoupey jcoupey merged commit 9804497 into master Nov 30, 2022
@jcoupey jcoupey deleted the feature/fixed-vehicle-cost branch November 30, 2022 10:32
@jcoupey jcoupey mentioned this pull request Dec 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cost per hour in vehicle profile Fixed cost for a vehicle
1 participant