From ee01f63e2d83dcd52df8b2e1235d2dc99ecfd900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6rl?= Date: Wed, 7 Feb 2024 22:55:20 +0100 Subject: [PATCH] fix route tracker --- .../alonso_mora/algorithm/function/RouteTracker.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/matsim/alonso_mora/algorithm/function/RouteTracker.java b/core/src/main/java/org/matsim/alonso_mora/algorithm/function/RouteTracker.java index 626bce3..62b1bb5 100644 --- a/core/src/main/java/org/matsim/alonso_mora/algorithm/function/RouteTracker.java +++ b/core/src/main/java/org/matsim/alonso_mora/algorithm/function/RouteTracker.java @@ -197,8 +197,8 @@ public int update(List stops) { AlonsoMoraStop stop = stops.get(i); final double vehicleDepartureTime = stopArrivalTime + vehicleStopDuration; - - final double stopDepartureTime; + double stopDepartureTime = Math.max(departureTimes.get(i - 1), vehicleDepartureTime); + if (stop.getType().equals(StopType.Pickup)) { double passengerDepartureTime = Math.max(stopArrivalTime, stop.getRequest().getEarliestPickupTime()); @@ -206,13 +206,13 @@ public int update(List stops) { .calcPickupDuration(dvrpVehicle(vehicle), stop.getRequest().getDrtRequest()); stop.setTime(passengerPickupTime); - stopDepartureTime = Math.max(passengerPickupTime, vehicleDepartureTime); + stopDepartureTime = Math.max(passengerPickupTime, stopDepartureTime); } else if (stop.getType().equals(StopType.Dropoff)) { double passengerDropoffTime = stopArrivalTime + stopDurationProvider .calcDropoffDuration(dvrpVehicle(vehicle), stop.getRequest().getDrtRequest()); stop.setTime(passengerDropoffTime); - stopDepartureTime = Math.max(passengerDropoffTime, vehicleDepartureTime); + stopDepartureTime = Math.max(passengerDropoffTime, stopDepartureTime); } else if (stop.getType().equals(StopType.Relocation)) { stopDepartureTime = stopArrivalTime; // relocation } else {