diff --git a/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp b/src/algorithm/Multimodal/Heuristics/MultimodalModularHeuristic.cpp index df97c7751a5b180c6d9b504b4ff01cad483ac57a..588ca109902ae1de7700bf74ee50cc6cba5967c0 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)); }