This plan algorithm is an implementation of Miller et al.'s (2005) individual trip maker mode choice, described in Section 3.2 of that paper. It computes a choice set of feasible trip mode combinations given




Consider the following scenario:
The plan consists of two subtours, each of which might be performed with one of the car. Alternatively, each trip might be performed woth a trip-based mode (walk, pt). The resulting choice set is:
car-car-car-car
car-car-pt-pt
car-car-walk-walk
car-car-walk-pt
car-car-pt-walk
pt-pt-car-car
walk-walk-car-car
walk-pt-car-car
pt-walk-car-car
pt-pt-pt-pt
pt-pt-pt-walk
pt-pt-walk-pt
pt-pt-walk-walk
pt-walk-pt-pt
pt-walk-pt-walk
pt-walk-walk-pt
pt-walk-walk-walk
walk-pt-pt-pt
walk-pt-pt-walk
walk-pt-walk-pt
walk-pt-walk-walk
walk-walk-pt-pt
walk-walk-pt-walk
walk-walk-walk-pt
walk-walk-walk-walk
See also attached Figure 1 from Miller et al. (2005).
To do.
Plan plan = ...; // generate instance of the plan algorithm MeisterkConfigGroup meisterk = new MeisterkConfigGroup(); PlanAnalyzeTourModeChoiceSet patmcs = new PlanAnalyzeTourModeChoiceSet(meisterk); // specify and set set of modes available to the agent EnumSet<BasicLeg.Mode> possibleModes = EnumSet.of(BasicLeg.Mode.walk, BasicLeg.Mode.bike, BasicLeg.Mode.pt, BasicLeg.Mode.car); patmcs.setModeSet(possibleModes); // run algorithm patmcs.run(plan); // obtain result: choice set of feasible mode combinations ArrayList<BasicLeg.Mode[]> actual = patmcs.getResult();
See example usage in the test class: playground.meisterk.org.matsim.population.algorithms.PlanAnalyzeTourModeChoiceSetTest
Miller, E. J., M. J. Roorda und J. A. Carrasco (2005) A tour-based model of travel mode choice, Transportation, 32 (4) 399–422.