27: MTC Shared Ride - Private Auto Nested Mode Choice
27: MTC Shared Ride - Private Auto Nested Mode Choice¶
m = larch.example(17)
Model 27’s nesting structure groups private auto and shared ride alternatives. (pp. 182)
shared = m.graph.new_node(parameter='mu_shared', children=[2,3], name='Shared')
private_auto = m.graph.new_node(parameter='mu_auto', children=[1,shared], name='Private_Auto')
m.unmangle(True)
m.set_value('mu_auto',maximum=2.0)
m.ordering = (
("CostbyInc","costbyincome",),
("TravelTime",".*time.*",".*dist.*", ),
("Household","hhinc.*","vehbywrk.*",),
("Zonal","wkcbd.*","wkempden.*",),
("ASCs","ASC.*",),
)
>>> m.load_data()
>>> m.maximize_loglike(method='slsqp')
┣ ...Optimization terminated successfully...
>>> m.loglike()
-3433.909...
>>> print(m.pfo()[['value','initvalue','nullvalue','minimum','maximum','holdfast']])
value initvalue nullvalue minimum maximum holdfast
Category Parameter
CostbyInc costbyincome -0.0528 0.0 0.0 -inf inf 0
TravelTime motorized_time -0.0209 0.0 0.0 -inf inf 0
nonmotorized_time -0.0460 0.0 0.0 -inf inf 0
motorized_ovtbydist -0.1370 0.0 0.0 -inf inf 0
Household hhinc#4 -0.0046 0.0 0.0 -inf inf 0
hhinc#5 -0.0077 0.0 0.0 -inf inf 0
hhinc#6 -0.0053 0.0 0.0 -inf inf 0
vehbywrk_BIKE -0.6109 0.0 0.0 -inf inf 0
vehbywrk_SR -0.5145 0.0 0.0 -inf inf 0
vehbywrk_TRANSIT -0.8608 0.0 0.0 -inf inf 0
vehbywrk_WALK -0.6157 0.0 0.0 -inf inf 0
Zonal wkcbd_BIKE 0.5378 0.0 0.0 -inf inf 0
wkcbd_SR2 0.6186 0.0 0.0 -inf inf 0
wkcbd_SR3 0.8921 0.0 0.0 -inf inf 0
wkcbd_TRANSIT 1.3753 0.0 0.0 -inf inf 0
wkcbd_WALK 0.1327 0.0 0.0 -inf inf 0
wkempden_BIKE 0.0024 0.0 0.0 -inf inf 0
wkempden_SR2 0.0030 0.0 0.0 -inf inf 0
wkempden_SR3 0.0030 0.0 0.0 -inf inf 0
wkempden_TRANSIT 0.0036 0.0 0.0 -inf inf 0
wkempden_WALK 0.0034 0.0 0.0 -inf inf 0
ASCs ASC_BIKE -1.8147 0.0 0.0 -inf inf 0
ASC_SR2 -2.3805 0.0 0.0 -inf inf 0
ASC_SR3 -2.9696 0.0 0.0 -inf inf 0
ASC_TRANSIT -0.8359 0.0 0.0 -inf inf 0
ASC_WALK -0.1139 0.0 0.0 -inf inf 0
Other mu_auto 1.4750 1.0 1.0 0.001 2.0 0
mu_shared 0.3685 1.0 1.0 0.001 1.0 0