Adjust to PR comments
This commit is contained in:
parent
77a740c0fb
commit
1c0d951f5e
@ -109,6 +109,9 @@ double getLongerByFactorBasedOnDuration(const EdgeWeight duration)
|
|||||||
// ys_interp = np.interp(xs_interp, xs, ys)
|
// ys_interp = np.interp(xs_interp, xs, ys)
|
||||||
//
|
//
|
||||||
// params, _ = scipy.optimize.curve_fit(func, xs_interp, ys_interp)
|
// params, _ = scipy.optimize.curve_fit(func, xs_interp, ys_interp)
|
||||||
|
//
|
||||||
|
// The hyperbolic shape was chosen because it interpolated well between
|
||||||
|
// the given datapoints and drops off for large durations.
|
||||||
const constexpr auto a = 9.49571282e-02;
|
const constexpr auto a = 9.49571282e-02;
|
||||||
const constexpr auto b = 1.25440191e+03;
|
const constexpr auto b = 1.25440191e+03;
|
||||||
const constexpr auto c = 2.06152165e+09;
|
const constexpr auto c = 2.06152165e+09;
|
||||||
@ -124,7 +127,7 @@ double getLongerByFactorBasedOnDuration(const EdgeWeight duration)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Bigger than 10 minutes but smaller than 10 hours
|
// Bigger than 10 minutes but smaller than 10 hours
|
||||||
BOOST_ASSERT(duration > 5 * 60 && duration < 10 * 60 * 60);
|
BOOST_ASSERT(duration >= 5 * 60 && duration <= 10 * 60 * 60);
|
||||||
|
|
||||||
return a + b / (duration - d) + c / std::pow(duration - d, 3);
|
return a + b / (duration - d) + c / std::pow(duration - d, 3);
|
||||||
}
|
}
|
||||||
@ -133,7 +136,7 @@ Parameters parametersFromRequest(const PhantomNodes &phantom_node_pair)
|
|||||||
{
|
{
|
||||||
Parameters parameters;
|
Parameters parameters;
|
||||||
|
|
||||||
auto distance = util::coordinate_calculation::haversineDistance(
|
const auto distance = util::coordinate_calculation::haversineDistance(
|
||||||
phantom_node_pair.source_phantom.location, phantom_node_pair.target_phantom.location);
|
phantom_node_pair.source_phantom.location, phantom_node_pair.target_phantom.location);
|
||||||
|
|
||||||
// 10km
|
// 10km
|
||||||
@ -288,7 +291,7 @@ RandIt filterPackedPathsByCellSharing(RandIt first,
|
|||||||
return last;
|
return last;
|
||||||
|
|
||||||
std::unordered_set<CellID> cells;
|
std::unordered_set<CellID> cells;
|
||||||
cells.reserve(size * (shortest_path.path.size() + 1) * (1.25));
|
cells.reserve(size * (shortest_path.path.size() + 1) * (1 + parameters.kAtMostLongerBy));
|
||||||
|
|
||||||
cells.insert(get_cell(std::get<0>(shortest_path.path.front())));
|
cells.insert(get_cell(std::get<0>(shortest_path.path.front())));
|
||||||
for (const auto &edge : shortest_path.path)
|
for (const auto &edge : shortest_path.path)
|
||||||
@ -488,7 +491,7 @@ RandIt filterUnpackedPathsBySharing(RandIt first,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const auto shared_weight =
|
const auto shared_weight =
|
||||||
std::accumulate(begin(unpacked.edges), end(unpacked.edges), 0, add_if_seen);
|
std::accumulate(begin(unpacked.edges), end(unpacked.edges), EdgeWeight{0}, add_if_seen);
|
||||||
|
|
||||||
const auto sharing = shared_weight / static_cast<double>(total_duration);
|
const auto sharing = shared_weight / static_cast<double>(total_duration);
|
||||||
BOOST_ASSERT(sharing >= 0.);
|
BOOST_ASSERT(sharing >= 0.);
|
||||||
|
Loading…
Reference in New Issue
Block a user