From f8e645164f5827b3a18bcf07ba3f9c4c4e7c4ac4 Mon Sep 17 00:00:00 2001 From: Romain BERNARD <romain.bernard@uca.fr> Date: Thu, 19 Sep 2024 18:03:32 +0200 Subject: [PATCH] fix max condition application for entries and exits --- .../Multimodal/Heuristics/MultimodalModularHeuristic.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp b/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp index df97c77..588ca10 100644 --- a/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp +++ b/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp @@ -20,7 +20,7 @@ std::vector<TransitAccess> MultimodalModularHeuristic::getBestTransitEntriesList const auto& lineStop : bestStationNode.getPTLinesSet()) { //Find the next passage lower or equal to our max entry time constraint auto iterator = lineStop.findNextScheduledPassage(getMaxEntryConstraint(baseRequest, bestStationNodeIdx)); - if(iterator != lineStop.getSchedule().cbegin() && iterator != lineStop.getSchedule().cend()) { //Iterator is invalid if it points to schedule end (no result) or begin (no result lower than our constraint) + if(iterator != lineStop.getSchedule().cbegin()) { //Iterator is invalid if it points to schedule beginning (no result lower than our constraint) --iterator; //Move iterator to the value that's under our max entry constraint if(*iterator > maxDepartureTime //If we've found a valid time that's superior to our current max time && *iterator > getMinEntryConstraint(baseRequest, bestStationNodeIdx)) { //and respects min entry time, replace old value @@ -221,7 +221,7 @@ MultimodalModularHeuristic::getBestTransitExitsList(size_t baseRequestId, const for(const auto& shortestTransitPath : shortestTransitPaths) { //Check valid transit path + arrival node != starting point if(shortestTransitPath.getArrivalTime() >= 0 && shortestTransitPath.getArrivalNode() != entryNodeIdx - && shortestTransitPath.getArrivalTime() < getMaxExitConstraint(baseRequestId, entrySubRequestOriginKP, shortestTransitPath.getArrivalNode())) { + && shortestTransitPath.getArrivalTime() <= getMaxExitConstraint(baseRequestId, entrySubRequestOriginKP, shortestTransitPath.getArrivalNode())) { TransitAccess exit{shortestTransitPath.getArrivalNode(), (uint) shortestTransitPath.getArrivalTime()}; scoredTransitExits.emplace_back(exit, getTransitExitScore(baseRequest, exit)); } -- GitLab