Skip to content

Commit c6aa6d7

Browse files
jpn--i-am-sijia
andauthored
Bugfix for trip scheduling choice (#884)
* remove problem code for sharrow tracing * do not allow zero probs in trip schedule choice * remove problem code for sharrow load --------- Co-authored-by: Sijia Wang <[email protected]>
1 parent 9181390 commit c6aa6d7

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

activitysim/abm/models/trip_scheduling_choice.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ def run_trip_scheduling_choice(
291291
alternatives=schedules,
292292
spec=spec,
293293
choice_column=SCHEDULE_ID,
294-
allow_zero_probs=True,
294+
allow_zero_probs=False,
295295
zero_prob_choice_val=-999,
296296
log_alt_losers=False,
297297
want_logsums=False,

activitysim/core/simulate.py

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -722,19 +722,22 @@ def eval_utilities(
722722
offsets = np.nonzero(list(trace_targets))[0]
723723

724724
# trace sharrow
725-
if sh_flow is not None:
726-
try:
727-
data_sh = sh_flow.load(
728-
sh_tree.replace_datasets(
729-
df=choosers.iloc[offsets],
730-
),
731-
dtype=np.float32,
732-
)
733-
expression_values_sh = pd.DataFrame(data=data_sh.T, index=spec.index)
734-
except ValueError:
735-
expression_values_sh = None
736-
else:
737-
expression_values_sh = None
725+
# TODO: This block of code is sometimes extremely slow or hangs for no apparent
726+
# reason. It is temporarily disabled until the cause can be identified, so
727+
# that most tracing can be still be done with sharrow enabled.
728+
# if sh_flow is not None:
729+
# try:
730+
# data_sh = sh_flow.load(
731+
# sh_tree.replace_datasets(
732+
# df=choosers.iloc[offsets],
733+
# ),
734+
# dtype=np.float32,
735+
# )
736+
# expression_values_sh = pd.DataFrame(data=data_sh.T, index=spec.index)
737+
# except ValueError:
738+
# expression_values_sh = None
739+
# else:
740+
expression_values_sh = None
738741

739742
# get array of expression_values
740743
# expression_values.shape = (len(spec), len(choosers))
@@ -806,16 +809,20 @@ def eval_utilities(
806809
)
807810
print(f"{sh_util.shape=}")
808811
print(misses)
809-
_sh_flow_load = sh_flow.load(sh_tree)
810-
print("possible problematic expressions:")
811-
for expr_n, expr in enumerate(exprs):
812-
closeness = np.isclose(
813-
_sh_flow_load[:, expr_n], expression_values[expr_n, :]
814-
)
815-
if not closeness.all():
816-
print(
817-
f" {closeness.sum()/closeness.size:05.1%} [{expr_n:03d}] {expr}"
818-
)
812+
# load sharrow flow
813+
# TODO: This block of code is sometimes extremely slow or hangs for no apparent
814+
# reason. It is temporarily disabled until the cause can be identified, so
815+
# that model does not hang with sharrow enabled.
816+
# _sh_flow_load = sh_flow.load(sh_tree)
817+
# print("possible problematic expressions:")
818+
# for expr_n, expr in enumerate(exprs):
819+
# closeness = np.isclose(
820+
# _sh_flow_load[:, expr_n], expression_values[expr_n, :]
821+
# )
822+
# if not closeness.all():
823+
# print(
824+
# f" {closeness.sum()/closeness.size:05.1%} [{expr_n:03d}] {expr}"
825+
# )
819826
raise
820827
except TypeError as err:
821828
print(err)

0 commit comments

Comments
 (0)