MCPcopy Create free account
hub / github.com/PyVRP/PyVRP / ReloadDepotSegment

Class ReloadDepotSegment

pyvrp/cpp/search/RelocateWithDepot.cpp:15–51  ·  view source on GitHub ↗

* Simple wrapper class that implements the required evaluation interface for * a single reload depot. */

Source from the content-addressed store, hash-verified

13 * a single reload depot.
14 */
15class ReloadDepotSegment
16{
17 pyvrp::ProblemData const &data_;
18 size_t depot_;
19
20public:
21 ReloadDepotSegment(pyvrp::ProblemData const &data, size_t depot)
22 : data_(data), depot_(depot)
23 {
24 assert(depot < data.numDepots()); // must be an actual depot
25 }
26
27 pyvrp::search::Route const *route() const { return nullptr; }
28
29 size_t first() const { return depot_; }
30 size_t last() const { return depot_; }
31 size_t size() const { return 1; }
32
33 bool startsAtReloadDepot() const { return true; }
34 bool endsAtReloadDepot() const { return true; }
35
36 pyvrp::Distance distance([[maybe_unused]] size_t profile) const
37 {
38 return 0;
39 }
40
41 pyvrp::DurationSegment duration([[maybe_unused]] size_t profile) const
42 {
43 pyvrp::ProblemData::Depot const &depot = data_.location(depot_);
44 return {depot, 0}; // service is handled while evaluating proposal
45 }
46
47 pyvrp::LoadSegment load([[maybe_unused]] size_t dimension) const
48 {
49 return {};
50 }
51};
52} // namespace
53
54void RelocateWithDepot::evalDepotBefore(Cost fixedCost,

Callers 2

evalDepotBeforeMethod · 0.85
evalDepotAfterMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected