Skip to content

Commit db5659d

Browse files
authored
Merge pull request #237 from toruseo/develop
fix route specification bug at origin node
2 parents 5aa9828 + 6df9b3d commit db5659d

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

uxsim/uxsim.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,10 +189,16 @@ def generate(s):
189189

190190
#consider the link preferences
191191
outlinks = list(s.outlinks.values())
192-
if set(outlinks) & set(veh.links_prefer):
193-
outlinks = sorted(set(outlinks) & set(veh.links_prefer), key=lambda l:l.name)
194-
if set(outlinks) & set(veh.links_avoid):
195-
outlinks = sorted(set(outlinks) - set(veh.links_avoid), key=lambda l:l.name)
192+
if veh.specified_route == None:
193+
if set(outlinks) & set(veh.links_prefer):
194+
outlinks = sorted(set(outlinks) & set(veh.links_prefer), key=lambda l:l.name)
195+
if set(outlinks) & set(veh.links_avoid):
196+
outlinks = sorted(set(outlinks) - set(veh.links_avoid), key=lambda l:l.name)
197+
else:
198+
if veh.specified_route[0] in outlinks:
199+
outlinks = [veh.specified_route[0]]
200+
else:
201+
raise ValueError(f"Vehicle {veh.name}: specified route {s.specified_route} is inconsistent at the origin node {s.name}. Debug info: {outlinks=}")
196202

197203
preference = np.array([veh.route_pref[l.id] for l in outlinks], dtype=float)
198204
if s.W.hard_deterministic_mode == False:
@@ -1191,7 +1197,6 @@ def route_next_link_choice(s):
11911197
"""
11921198
Select a next link from the current link.
11931199
"""
1194-
#print("aaa", end="")
11951200
if s.specified_route == None:
11961201
if s.dest != s.link.end_node:
11971202
outlinks = list(s.link.end_node.outlinks.values())

0 commit comments

Comments
 (0)