Skip to content

faq 108515566

Billy Charlton edited this page Sep 5, 2018 · 2 revisions

Taxi reserved to members of a single household

by Gregory Macfarlane on 2017-03-18 15:24:29


I'm looking at a scenario where a vehicle is available to take members of a household to their activities with or without members of the household inside. So, like a chauffeur or a household-owned automated vehicle. 

It seems that the existing taxi module would work for this, if I could restrict the taxi to only being available to a set of individual ID's. Any ideas on how I might go about implementing this?


Comments: 4


Re: Taxi reserved to members of a single household

by Michal Maciejewski on 2017-03-19 23:05:40

Hi Gregory,

I would start with a slightly customised version of RuleBasedTaxiOptimizer that

  • does not pre-filter vehicles and requests based on their location (this is easy, just set the nearestRequestsLimit and nearestRequestsLimit parameters to a very large number, e.g. 9999999)
  • uses a different dispatch finder than the standard (and now the only) BestDispatchFinder; this however would require (a) creating a general interface like 'TaxiDispatchFinder', and then (b) adding a constructor to RuleBasedTaxiOptimizer that accepts any DispatchFinder, e.g. "OwnAVDispatchFinder", which you would then need to implement

Please let me know if this is the way you would like to move on with your project/scenario. If yes, I can adapt the taxi code so that you can start coding your dispatching.

Best,
Michal 



Re: Taxi reserved to members of a single household

by Kai Nagel on 2017-03-20 08:52:57

An alternative might be to use "subpopulations".  With that, you could have some agents have "taxi" or "av" as mode alternative, and others not.

 RunSubpopulationsExample contains an example of how to use subpopulations in Java.  One can use subpopulations also from files only (i.e. without programming java), but I don't think that you can use different sets of mode by subpopulation from file only.


Re: Taxi reserved to members of a single household

by Kai Nagel on 2017-03-20 08:57:46

And yet another possibility: Add some penalty term to the scoring function for people using the "taxi" modes when they are not allowed to use it.  Examples with scoring functions are in RunSubpopulationsExample and RunExampleIndividualizedScoring.

Given the nature of MATSim, this may be the easiest way to do this.  But also given the nature of MATSim, you will probably always have a small number of "disallowed" agents trying the "taxi" mode in spite of the high penalty.


Re: Taxi reserved to members of a single household

by Joschka Bischoff on 2017-03-20 14:30:06

Hi Greg,

great to hear from you!

I would also understand it the way Michal proposes.

I've implemented something similar where a certain person group (in our case: wheelchair users) can only get a certain type of taxi. 

The priniciple, however, is the same (IDs of passengers and taxis are matched). For an idea how to implement this, see:

https://github.com/matsim-org/matsim/blob/f83ea1d00a0e00d79cdeb6328393e9d5c09d0e03/playgrounds/jbischoff/src/main/java/playground/jbischoff/taxi/inclusion/optimizer/InclusionIdleTaxiZonalRegistry.java


To see how it is all plugged together, there is a Run script https://github.com/matsim-org/matsim/tree/f83ea1d00a0e00d79cdeb6328393e9d5c09d0e03/playgrounds/jbischoff/src/main/java/playground/jbischoff/taxi/inclusion


Good luck,

Joschka


Clone this wiki locally