(1) I followed the syntax provided in the appendix to the paper by Thai et al., and all seems to be working ok. But could you please take a look at this and see if this code makes sense?
- First and Last Mile attributes are now split into two: mode & cost (there's no time attr.) - both are alternative-specific
(2) In your paper, everything was alternative-specific and every attribute appeared in every alternative. In my case, only FM, LM, and transfers are alt.-spec. And they only appear for RAIL and BUS main modes. This makes me a little confused about how many of these new dummy variables are supposed to be in relation to the old ones (from what I understand from your article, it should be n-1), and how that relates to the base levels in these old dummy variables.
(3) Design in this form is a bit unnatural, with all these new dummies for each level of FM, LM, and transfers. I understand that I can/should now bring it down manually to a more compact state, where I will have e.g. a single column for FM_COST, which will take values 1-8 depending on whether FM_COST_1-7 == 0/1, right?
(4) I am still also a bit confused about the dominance/repetition checking (asterisks) - should I use it in this case or not, and what does it have to do with introducing close-to-zero sign priors afterwards?
Code: Select all
Design
;alts = alt1*, alt2*, none
;rows = 60 ? 54 parms; number of alternatives = 2 (without none); minimum S = 54 / (2-1) = 54/1 = 54 ; practical S = 3*S_min = 162
?;block = 6
;eff = (mnl,d)
;alg = swap
?;store = 1
;cond:
? Step 1&2: Introduce MODE (LABEL) attribute and INDICATOR
if(alt1.MODE = 1, alt1.RAIL = 1), if(alt1.MODE <> 1, alt1.RAIL = 0),
if(alt1.MODE = 3, alt1.BUS = 1), if(alt1.MODE <> 3, alt1.BUS = 0),
if(alt2.MODE = 1, alt2.RAIL = 1), if(alt2.MODE <> 1, alt2.RAIL = 0),
if(alt2.MODE = 3, alt2.BUS = 1), if(alt2.MODE <> 3, alt2.BUS = 0),
? Step 3: Introduce conditions for categorical variables with more than two levels
if(alt1.FM_MODE_BUS = 1, alt1.FM_MODE_TAXI = 0), if(alt1.FM_MODE_TAXI = 1, alt1.FM_MODE_BUS = 0),
if(alt2.FM_MODE_BUS = 1, alt2.FM_MODE_TAXI = 0), if(alt2.FM_MODE_TAXI = 1, alt2.FM_MODE_BUS = 0),
if(alt1.FM_COST_1 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_1 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_1 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_1 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_1 = 1, alt1.FM_COST_6 = 0), if(alt1.FM_COST_1 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_2 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_2 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_2 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_2 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_2 = 1, alt1.FM_COST_6 = 0), if(alt1.FM_COST_2 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_3 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_3 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_3 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_3 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_3 = 1, alt1.FM_COST_6 = 0), if(alt1.FM_COST_3 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_4 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_4 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_4 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_4 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_4 = 1, alt1.FM_COST_6 = 0), if(alt1.FM_COST_4 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_5 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_5 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_5 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_5 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_5 = 1, alt1.FM_COST_6 = 0), if(alt1.FM_COST_5 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_6 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_6 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_6 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_6 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_6 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_6 = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_COST_7 = 1, alt1.FM_COST_1 = 0), if(alt1.FM_COST_7 = 1, alt1.FM_COST_2 = 0), if(alt1.FM_COST_7 = 1, alt1.FM_COST_3 = 0), if(alt1.FM_COST_7 = 1, alt1.FM_COST_4 = 0), if(alt1.FM_COST_7 = 1, alt1.FM_COST_5 = 0), if(alt1.FM_COST_7 = 1, alt1.FM_COST_6 = 0),
if(alt2.FM_COST_1 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_1 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_1 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_1 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_1 = 1, alt2.FM_COST_6 = 0), if(alt2.FM_COST_1 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_2 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_2 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_2 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_2 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_2 = 1, alt2.FM_COST_6 = 0), if(alt2.FM_COST_2 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_3 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_3 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_3 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_3 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_3 = 1, alt2.FM_COST_6 = 0), if(alt2.FM_COST_3 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_4 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_4 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_4 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_4 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_4 = 1, alt2.FM_COST_6 = 0), if(alt2.FM_COST_4 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_5 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_5 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_5 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_5 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_5 = 1, alt2.FM_COST_6 = 0), if(alt2.FM_COST_5 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_6 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_6 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_6 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_6 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_6 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_6 = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_COST_7 = 1, alt2.FM_COST_1 = 0), if(alt2.FM_COST_7 = 1, alt2.FM_COST_2 = 0), if(alt2.FM_COST_7 = 1, alt2.FM_COST_3 = 0), if(alt2.FM_COST_7 = 1, alt2.FM_COST_4 = 0), if(alt2.FM_COST_7 = 1, alt2.FM_COST_5 = 0), if(alt2.FM_COST_7 = 1, alt2.FM_COST_6 = 0),
if(alt1.TRANSFERS_1 = 1, alt1.TRANSFERS_2 = 0), if(alt1.TRANSFERS_2 = 1, alt1.TRANSFERS_1 = 0),
if(alt2.TRANSFERS_1 = 1, alt2.TRANSFERS_2 = 0), if(alt2.TRANSFERS_2 = 1, alt2.TRANSFERS_1 = 0),
if(alt1.LM_MODE_BUS = 1, alt1.LM_MODE_TAXI = 0), if(alt1.LM_MODE_TAXI = 1, alt1.LM_MODE_BUS = 0),
if(alt2.LM_MODE_BUS = 1, alt2.LM_MODE_TAXI = 0), if(alt2.LM_MODE_TAXI = 1, alt2.LM_MODE_BUS = 0),
if(alt1.LM_COST_1 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_1 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_1 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_1 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_1 = 1, alt1.LM_COST_6 = 0), if(alt1.LM_COST_1 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_2 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_2 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_2 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_2 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_2 = 1, alt1.LM_COST_6 = 0), if(alt1.LM_COST_2 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_3 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_3 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_3 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_3 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_3 = 1, alt1.LM_COST_6 = 0), if(alt1.LM_COST_3 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_4 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_4 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_4 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_4 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_4 = 1, alt1.LM_COST_6 = 0), if(alt1.LM_COST_4 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_5 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_5 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_5 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_5 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_5 = 1, alt1.LM_COST_6 = 0), if(alt1.LM_COST_5 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_6 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_6 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_6 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_6 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_6 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_6 = 1, alt1.LM_COST_7 = 0),
if(alt1.LM_COST_7 = 1, alt1.LM_COST_1 = 0), if(alt1.LM_COST_7 = 1, alt1.LM_COST_2 = 0), if(alt1.LM_COST_7 = 1, alt1.LM_COST_3 = 0), if(alt1.LM_COST_7 = 1, alt1.LM_COST_4 = 0), if(alt1.LM_COST_7 = 1, alt1.LM_COST_5 = 0), if(alt1.LM_COST_7 = 1, alt1.LM_COST_6 = 0),
if(alt2.LM_COST_1 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_1 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_1 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_1 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_1 = 1, alt2.LM_COST_6 = 0), if(alt2.LM_COST_1 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_2 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_2 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_2 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_2 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_2 = 1, alt2.LM_COST_6 = 0), if(alt2.LM_COST_2 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_3 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_3 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_3 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_3 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_3 = 1, alt2.LM_COST_6 = 0), if(alt2.LM_COST_3 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_4 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_4 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_4 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_4 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_4 = 1, alt2.LM_COST_6 = 0), if(alt2.LM_COST_4 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_5 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_5 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_5 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_5 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_5 = 1, alt2.LM_COST_6 = 0), if(alt2.LM_COST_5 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_6 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_6 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_6 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_6 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_6 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_6 = 1, alt2.LM_COST_7 = 0),
if(alt2.LM_COST_7 = 1, alt2.LM_COST_1 = 0), if(alt2.LM_COST_7 = 1, alt2.LM_COST_2 = 0), if(alt2.LM_COST_7 = 1, alt2.LM_COST_3 = 0), if(alt2.LM_COST_7 = 1, alt2.LM_COST_4 = 0), if(alt2.LM_COST_7 = 1, alt2.LM_COST_5 = 0), if(alt2.LM_COST_7 = 1, alt2.LM_COST_6 = 0),
? Study-specific conditions
if(alt1.FM_MODE_BUS = 1, alt1.FM_COST_4 = 0), if(alt1.FM_MODE_BUS = 1, alt1.FM_COST_5 = 0), if(alt1.FM_MODE_BUS = 1, alt1.FM_COST_6 = 0), if(alt1.FM_MODE_BUS = 1, alt1.FM_COST_7 = 0),
if(alt1.FM_MODE_TAXI = 1, alt1.FM_COST_1 = 0), if(alt1.FM_MODE_TAXI = 1, alt1.FM_COST_2 = 0), if(alt1.FM_MODE_TAXI = 1, alt1.FM_COST_3 = 0),
if(alt2.FM_MODE_BUS = 1, alt2.FM_COST_4 = 0), if(alt2.FM_MODE_BUS = 1, alt2.FM_COST_5 = 0), if(alt2.FM_MODE_BUS = 1, alt2.FM_COST_6 = 0), if(alt2.FM_MODE_BUS = 1, alt2.FM_COST_7 = 0),
if(alt2.FM_MODE_TAXI = 1, alt2.FM_COST_1 = 0), if(alt2.FM_MODE_TAXI = 1, alt2.FM_COST_2 = 0), if(alt2.FM_MODE_TAXI = 1, alt2.FM_COST_3 = 0)
;model:
U(alt1) = b_mode.dummy[0|0] * MODE[1,3,2] ? main mode dummy: 1 = rail, 2 = car (base), 3 = bus
+ b_fm_mode_bus_rail[0] * FM_MODE_BUS[0,1] * RAIL[0,1] ? (naming for old dummies) First Mile mode dummy: 1 = walk (base), 2 = bus, 3 = taxi
+ b_fm_mode_taxi_rail[0] * FM_MODE_TAXI[0,1] * RAIL[0,1]
+ b_fm_mode_bus_bus[0] * FM_MODE_BUS[0,1] * BUS[0,1]
+ b_fm_mode_taxi_bus[0] * FM_MODE_TAXI[0,1] * BUS[0,1]
+ b_fm_cost_1_rail[0] * FM_COST_1[0,1] * RAIL[0,1] ? (naming for old dummies) First Mile cost dummy (1-4 for bus, 5-8 for taxi): 1 = 0€ (base), 2 = 3€, 3 = 6€, 4 = 9€, 5 = 10€, 6 = 20€, 7 = 30€, 8 = 40€
+ b_fm_cost_2_rail[0] * FM_COST_2[0,1] * RAIL[0,1]
+ b_fm_cost_3_rail[0] * FM_COST_3[0,1] * RAIL[0,1]
+ b_fm_cost_4_rail[0] * FM_COST_4[0,1] * RAIL[0,1]
+ b_fm_cost_5_rail[0] * FM_COST_5[0,1] * RAIL[0,1]
+ b_fm_cost_6_rail[0] * FM_COST_6[0,1] * RAIL[0,1]
+ b_fm_cost_7_rail[0] * FM_COST_7[0,1] * RAIL[0,1]
+ b_fm_cost_1_bus[0] * FM_COST_1[0,1] * BUS[0,1]
+ b_fm_cost_2_bus[0] * FM_COST_2[0,1] * BUS[0,1]
+ b_fm_cost_3_bus[0] * FM_COST_3[0,1] * BUS[0,1]
+ b_fm_cost_4_bus[0] * FM_COST_4[0,1] * BUS[0,1]
+ b_fm_cost_5_bus[0] * FM_COST_5[0,1] * BUS[0,1]
+ b_fm_cost_6_bus[0] * FM_COST_6[0,1] * BUS[0,1]
+ b_fm_cost_7_bus[0] * FM_COST_7[0,1] * BUS[0,1]
+ b_tt.dummy[0|0] * TT[2,3,1] ? time dummy: 1 = 7h (base), 2 = 8h, 3 = 9h
+ b_transfers_1_rail[0] * TRANSFERS_1[0,1] * RAIL[0,1]
+ b_transfers_2_rail[0] * TRANSFERS_2[0,1] * RAIL[0,1]
+ b_transfers_1_bus[0] * TRANSFERS_1[0,1] * BUS[0,1]
+ b_transfers_2_bus[0] * TRANSFERS_2[0,1] * BUS[0,1]
+ b_cost.dummy[0|0|0|0] * COST[2,3,4,5,1] ? cost dummy: 1 = 25€ (base), 2 = 50€, 3 = 100€, 4 = 150€, 5 = 200€
+ b_lm_mode_bus_rail[0] * LM_MODE_BUS[0,1] * RAIL[0,1] ? (naming for old dummies)Last Mile mode dummy: 1 = walk (base), 2 = bus, 3 = taxi
+ b_lm_mode_taxi_rail[0] * LM_MODE_TAXI[0,1] * RAIL[0,1]
+ b_lm_mode_bus_bus[0] * LM_MODE_BUS[0,1] * BUS[0,1]
+ b_lm_mode_taxi_bus[0] * LM_MODE_TAXI[0,1] * BUS[0,1]
+ b_lm_cost_1_rail[0] * LM_COST_1[0,1] * RAIL[0,1] ? (naming for old dummies)Last Mile cost dummy (1-4 for bus, 5-8 for taxi): 1 = 0€ (base), 2 = 3€, 3 = 6€, 4 = 9€, 5 = 10€, 6 = 20€, 7 = 30€, 8 = 40€
+ b_lm_cost_2_rail[0] * LM_COST_2[0,1] * RAIL[0,1]
+ b_lm_cost_3_rail[0] * LM_COST_3[0,1] * RAIL[0,1]
+ b_lm_cost_4_rail[0] * LM_COST_4[0,1] * RAIL[0,1]
+ b_lm_cost_5_rail[0] * LM_COST_5[0,1] * RAIL[0,1]
+ b_lm_cost_6_rail[0] * LM_COST_6[0,1] * RAIL[0,1]
+ b_lm_cost_7_rail[0] * LM_COST_7[0,1] * RAIL[0,1]
+ b_lm_cost_1_bus[0] * LM_COST_1[0,1] * BUS[0,1]
+ b_lm_cost_2_bus[0] * LM_COST_2[0,1] * BUS[0,1]
+ b_lm_cost_3_bus[0] * LM_COST_3[0,1] * BUS[0,1]
+ b_lm_cost_4_bus[0] * LM_COST_4[0,1] * BUS[0,1]
+ b_lm_cost_5_bus[0] * LM_COST_5[0,1] * BUS[0,1]
+ b_lm_cost_6_bus[0] * LM_COST_6[0,1] * BUS[0,1]
+ b_lm_cost_7_bus[0] * LM_COST_7[0,1] * BUS[0,1]
+ b_busfreq.dummy[0|0] * BUSFREQ[2,3,1] ? bus frequency: 1 = every 30m (base), 2 = every 60m, 3 = 3 times a day
+ b_busstop.dummy[0|0|0|0] * BUSSTOP[2,3,4,5,1] ? distance to bus stop: 1 = right at the hotel (base), 2 = 5min, 3 = 10min, 4 = 15min, 5 = 30min
/
U(alt2) = b_mode.dummy * MODE
+ b_fm_mode_bus_rail * FM_MODE_BUS * RAIL
+ b_fm_mode_taxi_rail * FM_MODE_TAXI * RAIL
+ b_fm_mode_bus_bus * FM_MODE_BUS * BUS
+ b_fm_mode_taxi_bus * FM_MODE_TAXI * BUS
+ b_fm_cost_1_rail * FM_COST_1 * RAIL
+ b_fm_cost_2_rail * FM_COST_2 * RAIL
+ b_fm_cost_3_rail * FM_COST_3 * RAIL
+ b_fm_cost_4_rail * FM_COST_4 * RAIL
+ b_fm_cost_5_rail * FM_COST_5 * RAIL
+ b_fm_cost_6_rail * FM_COST_6 * RAIL
+ b_fm_cost_7_rail * FM_COST_7 * RAIL
+ b_fm_cost_1_bus * FM_COST_1 * BUS
+ b_fm_cost_2_bus * FM_COST_2 * BUS
+ b_fm_cost_3_bus * FM_COST_3 * BUS
+ b_fm_cost_4_bus * FM_COST_4 * BUS
+ b_fm_cost_5_bus * FM_COST_5 * BUS
+ b_fm_cost_6_bus * FM_COST_6 * BUS
+ b_fm_cost_7_bus * FM_COST_7 * BUS
+ b_tt.dummy * TT
+ b_transfers_1_rail * TRANSFERS_1 * RAIL
+ b_transfers_2_rail * TRANSFERS_2 * RAIL
+ b_transfers_1_bus * TRANSFERS_1 * BUS
+ b_transfers_2_bus * TRANSFERS_2 * BUS
+ b_cost.dummy * COST
+ b_lm_mode_bus_rail * LM_MODE_BUS * RAIL
+ b_lm_mode_taxi_rail * LM_MODE_TAXI * RAIL
+ b_lm_mode_bus_bus * LM_MODE_BUS * BUS
+ b_lm_mode_taxi_bus * LM_MODE_TAXI * BUS
+ b_lm_cost_1_rail * LM_COST_1 * RAIL
+ b_lm_cost_2_rail * LM_COST_2 * RAIL
+ b_lm_cost_3_rail * LM_COST_3 * RAIL
+ b_lm_cost_4_rail * LM_COST_4 * RAIL
+ b_lm_cost_5_rail * LM_COST_5 * RAIL
+ b_lm_cost_6_rail * LM_COST_6 * RAIL
+ b_lm_cost_7_rail * LM_COST_7 * RAIL
+ b_lm_cost_1_bus * LM_COST_1 * BUS
+ b_lm_cost_2_bus * LM_COST_2 * BUS
+ b_lm_cost_3_bus * LM_COST_3 * BUS
+ b_lm_cost_4_bus * LM_COST_4 * BUS
+ b_lm_cost_5_bus * LM_COST_5 * BUS
+ b_lm_cost_6_bus * LM_COST_6 * BUS
+ b_lm_cost_7_bus * LM_COST_7 * BUS
+ b_busfreq.dummy * BUSFREQ
+ b_busstop.dummy * BUSSTOP
$