Spaces:
Sleeping
Sleeping
Update solver.py
Browse files
solver.py
CHANGED
|
@@ -194,12 +194,12 @@ def build_route_by_insertion_tw(df: pd.DataFrame, idxs: List[int],
|
|
| 194 |
return tw_e / (dist + 1.0)"""
|
| 195 |
|
| 196 |
def urgency_score(i):
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
|
| 204 |
|
| 205 |
first = min(remaining, key=urgency_score)
|
|
|
|
| 194 |
return tw_e / (dist + 1.0)"""
|
| 195 |
|
| 196 |
def urgency_score(i):
|
| 197 |
+
dist = euclid(depot, (df.loc[i, "x"], df.loc[i, "y"]))
|
| 198 |
+
tw_s = float(df.loc[i, "tw_start"])
|
| 199 |
+
tw_e = float(df.loc[i, "tw_end"])
|
| 200 |
+
tw_window = max(1.0, tw_e - tw_s)
|
| 201 |
+
# Earlier deadlines and tighter windows → higher urgency (lower numeric score)
|
| 202 |
+
return (1.0 / (tw_e + 1.0)) * (1.0 + 1.0 / (tw_window + 1.0)) / (dist + 1.0)
|
| 203 |
|
| 204 |
|
| 205 |
first = min(remaining, key=urgency_score)
|