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

Method penalisedCost

pyvrp/cpp/CostEvaluator.h:240–259  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238
239template <CostEvaluatable T>
240Cost CostEvaluator::penalisedCost(T const &arg) const
241{
242 if (arg.empty())
243 {
244 if constexpr (PrizeCostEvaluatable<T>)
245 return arg.uncollectedPrizes();
246 return 0;
247 }
248
249 // Standard objective plus infeasibility-related penalty terms.
250 auto const cost
251 = arg.distanceCost() + arg.durationCost() + arg.fixedVehicleCost()
252 + excessLoadPenalties(arg.excessLoad()) + twPenalty(arg.timeWarp())
253 + distPenalty(arg.excessDistance(), 0);
254
255 if constexpr (PrizeCostEvaluatable<T>)
256 return cost + arg.uncollectedPrizes();
257
258 return cost;
259}
260
261template <CostEvaluatable T> Cost CostEvaluator::cost(T const &arg) const
262{

Callers 2

applyNodeOpsMethod · 0.80
applyRouteOpsMethod · 0.80

Calls 8

uncollectedPrizesMethod · 0.80
emptyMethod · 0.45
distanceCostMethod · 0.45
durationCostMethod · 0.45
fixedVehicleCostMethod · 0.45
excessLoadMethod · 0.45
timeWarpMethod · 0.45
excessDistanceMethod · 0.45

Tested by

no test coverage detected