matsim-org / matsim-code-examples

A repository containing code examples around MATSim
GNU General Public License v3.0
83 stars 179 forks source link

Mode-specific monetary distance rate #666

Open khzannat opened 2 years ago

khzannat commented 2 years ago

If I want to set mode-specific monetary distance rate (per km travel cost), shall I use setMarginalUtilityOfDistance? Also, is it currency sensitive (My per km travel cost is in Bangladeshi taka (BDT))?

Janekdererste commented 2 years ago

Chapter 5.2.1.3 of the userguide gives an overview of the different scoring parameters regarding traveling. After re-visiting this chapter I would advise to use the monetaryDistanceRate. The userguide says

Set distance cost rates monetaryDistanceRate... to plausible values, if you have them. Note that this needs to be negative: distance consumes money at a certain rate.

The monetaryDistanceRate works in combination with the utilityOfMoney parameter. Since all the scoring parameter work relatively to each other it shouldn't be a problem to simply use BDT with a utility of money of 1.0, as long as you set your other parameters accordingly. Especialy the values of beta-performing and beta-travelling are of interest here I would guess.

khzannat commented 2 years ago

Thank you vey much for your detail explanation. It worked!

khzannat commented 2 years ago

Hi, I have one last question about moneytaryDistanceRate. For walk and bike would that be 0? Since I fixed 0 for them, even for more than 4km-10km distance agents are preferring walk mode as main mode. In that case, what is usually done for walk and bike mode?

Janekdererste commented 2 years ago

You could use <param name="marginalUtilityOfTraveling_util_hr" value="0"/>. This is a utility value for the time spent travelling with this mode. One could imagine that this value could be "more negative" for modes like walk and bike than for example car, since a person would become tired of walking long distances.

This way you can keep your monetary distance rate fixed with the values you have and still represent mode-inidivdual differences in dis-utility