Internal evaluation is currently based on cost values, which are usually derived from duration via vehicles costs.per_hour factors.
But think of a situation where a user is providing custom costs matrices to model the cost of "reaching out to a given zone", typically when taking subcontracting costs into account. Then all costs for locations from zone A to zone B will be identical, and all intra-zone costs will be zero. In this situation comparing based on cost only means all intra-zone orderings in routes have the same cost so we can provide an arbitrary (bad duration-wise) ordering for zones.
So we should compare Eval instances based first on cost, then on durations in case of draw, which makes sense anyway.
Internal evaluation is currently based on
costvalues, which are usually derived fromdurationvia vehiclescosts.per_hourfactors.But think of a situation where a user is providing custom costs matrices to model the cost of "reaching out to a given zone", typically when taking subcontracting costs into account. Then all costs for locations from zone A to zone B will be identical, and all intra-zone costs will be zero. In this situation comparing based on cost only means all intra-zone orderings in routes have the same cost so we can provide an arbitrary (bad duration-wise) ordering for zones.
So we should compare
Evalinstances based first on cost, then on durations in case of draw, which makes sense anyway.