fix T-ALNS-RRD reproduction fidelity
This commit is contained in:
@@ -50,6 +50,7 @@ class CostCalculator:
|
||||
departures = [0.0] * n
|
||||
delays = [0.0] * n
|
||||
waits = [0.0] * n
|
||||
arc_travel_time = 0.0
|
||||
congestion_exposure = 0.0
|
||||
|
||||
# First node (depot)
|
||||
@@ -61,10 +62,12 @@ class CostCalculator:
|
||||
i = route_nodes[idx - 1]
|
||||
j = route_nodes[idx]
|
||||
|
||||
# Arrival at j (Eq.5)
|
||||
arrivals[idx] = departures[idx - 1] + problem_ctx.get_travel_time(
|
||||
i, j, departures[idx - 1]
|
||||
)
|
||||
# Arrival at j (Eq.5). Eq.1's travel term is the sum of arc
|
||||
# traversal times only; waiting and service duration are temporal
|
||||
# propagation state, not travel cost.
|
||||
travel_time = problem_ctx.get_travel_time(i, j, departures[idx - 1])
|
||||
arc_travel_time += travel_time
|
||||
arrivals[idx] = departures[idx - 1] + travel_time
|
||||
|
||||
# Accumulate congestion exposure
|
||||
congestion_exposure += problem_ctx.get_congestion_penalty(
|
||||
@@ -103,7 +106,8 @@ class CostCalculator:
|
||||
"departures": departures,
|
||||
"delays": delays,
|
||||
"waits": waits,
|
||||
"total_travel_time": arrivals[-1] - depot_start_time,
|
||||
"total_travel_time": arc_travel_time,
|
||||
"route_duration": departures[-1] - depot_start_time,
|
||||
"total_delay": sum(delays),
|
||||
"total_wait": sum(waits),
|
||||
"congestion_exposure": congestion_exposure,
|
||||
@@ -381,9 +385,7 @@ class CostCalculator:
|
||||
total_travel += result["total_travel_time"]
|
||||
total_delay += result["total_delay"]
|
||||
total_congestion += result["congestion_exposure"]
|
||||
avg_route_duration += (
|
||||
result["departures"][-1] - result["departures"][0]
|
||||
)
|
||||
avg_route_duration += result["route_duration"]
|
||||
|
||||
# Count on-time deliveries
|
||||
for idx, node in enumerate(route.nodes):
|
||||
|
||||
Reference in New Issue
Block a user