public static TravelDisutilityFactory createDefaultTravelDisutilityFactory(Scenario scenario) { final RandomizingTimeDistanceTravelDisutilityFactory builder = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, scenario.getConfig().planCalcScore() ); builder.setSigma(0.); // tendency to set this to 3. right away (i.e. through PlansCalcRouteConfigGroup default). kai/bk, mar'15 return builder; }
@Override public void install() { NoiseConfigGroup noiseParameters = ConfigUtils.addOrGetModule(this.getConfig(), NoiseConfigGroup.class); if (noiseParameters.isInternalizeNoiseDamages()) { log.info("Replacing the default travel disutility for the transport mode 'car' by a travel distuility which accounts for noise tolls."); if (noiseParameters.isComputeAvgNoiseCostPerLinkAndTime() == false) { log.warn("The travel disutility which accounts for noise tolls requires the computation of average noise cost per link and time bin." + "Setting the value 'computeAvgNoiseCostPerLinkAndTime' to 'true'..."); noiseParameters.setComputeAvgNoiseCostPerLinkAndTime(true); } final NoiseTollTimeDistanceTravelDisutilityFactory tollDisutilityCalculatorFactory = new NoiseTollTimeDistanceTravelDisutilityFactory( new RandomizingTimeDistanceTravelDisutilityFactory(TransportMode.car, this.getConfig().planCalcScore()), this.getConfig().planCalcScore() ); bindCarTravelDisutilityFactory().toInstance(tollDisutilityCalculatorFactory); } }
@Override public void install() { PlansCalcRouteConfigGroup routeConfigGroup = getConfig().plansCalcRoute(); for (String mode : routeConfigGroup.getNetworkModes()) { addTravelDisutilityFactoryBinding(mode).toInstance( new RandomizingTimeDistanceTravelDisutilityFactory(mode, getConfig().planCalcScore())); } }
TollTimeDistanceTravelDisutility(final TravelTime timeCalculator, PlanCalcScoreConfigGroup cnScoringGroup, double sigma, DecongestionInfo info) { this.info = info; this.marginalUtilityOfMoney = cnScoringGroup.getMarginalUtilityOfMoney(); this.sigma = sigma; final RandomizingTimeDistanceTravelDisutilityFactory builder = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, cnScoringGroup ); builder.setSigma(sigma); this.delegate = builder.createTravelDisutility(timeCalculator); this.timeBinSize = info.getScenario().getConfig().travelTimeCalculator().getTraveltimeBinSize(); log.info("Using the toll-adjusted travel disutility (improved version) in the decongestion package."); }
Provider<TravelTime> factory = new WalkTravelTimeFactory(plansCalcRouteConfigGroup, linkSlopes); addTravelTimeBinding(mode).toProvider(factory); addTravelDisutilityFactoryBinding(mode).toInstance( new RandomizingTimeDistanceTravelDisutilityFactory( mode, cnScoringGroup ) ); addRoutingModuleBinding(mode).toProvider(new NetworkRoutingProvider(mode)); } else if (mode.equals(TransportMode.transit_walk)) { Provider<TravelTime> factory = new BikeTravelTimeFactory(plansCalcRouteConfigGroup, linkSlopes); addTravelTimeBinding(mode).toProvider(factory); addTravelDisutilityFactoryBinding(mode).toInstance( new RandomizingTimeDistanceTravelDisutilityFactory( mode, cnScoringGroup ) ); addRoutingModuleBinding(mode).toProvider(new NetworkRoutingProvider(mode)); } else { addTravelDisutilityFactoryBinding(mode).toInstance(new RandomizingTimeDistanceTravelDisutilityFactory( mode, cnScoringGroup )); addRoutingModuleBinding(mode).toProvider(new NetworkRoutingProvider(mode));
addTravelDisutilityFactoryBinding("car_with_payed_area_toll").toInstance(new RandomizingTimeDistanceTravelDisutilityFactory(TransportMode.car, getConfig().planCalcScore())); addRoutingModuleBinding("car_with_payed_area_toll").toProvider(new RoadPricingNetworkRouting());
public static void main(String[] args) { MutableScenario scenario = (MutableScenario) ScenarioUtils.createScenario(ConfigUtils.createConfig()); Network network = scenario.getNetwork(); new MatsimNetworkReader(scenario.getNetwork()).readFile("../../input/network.xml"); TravelTimeCalculator ttc = new TravelTimeCalculator(network, 60, 30 * 3600, scenario.getConfig().travelTimeCalculator()); LeastCostPathTree st = new LeastCostPathTree(ttc.getLinkTravelTimes(), new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, scenario.getConfig().planCalcScore() ).createTravelDisutility(ttc.getLinkTravelTimes())); Node origin = network.getNodes().get(Id.create(1, Node.class)); st.calculate(network, origin, 8*3600); Map<Id<Node>, NodeData> tree = st.getTree(); for (Map.Entry<Id<Node>, NodeData> e : tree.entrySet()) { Id<Node> id = e.getKey(); NodeData d = e.getValue(); if (d.getPrevNodeId() != null) { System.out.println(id + "\t" + d.getTime() + "\t" + d.getCost() + "\t" + d.getPrevNodeId()); } else { System.out.println(id + "\t" + d.getTime() + "\t" + d.getCost() + "\t" + "0"); } } } }
new RandomizingTimeDistanceTravelDisutilityFactory(TransportMode.car, config.planCalcScore()); matsimControler.addOverridingModule(new AbstractModule() { @Override
@Override public void install() { install(new ScenarioByInstanceModule(scenario)); install(new TripRouterModule()); install(new TravelTimeCalculatorModule()); install(new EventsManagerModule()); addTravelDisutilityFactoryBinding("car").toInstance(new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, config.planCalcScore() )); } });
TravelDisutility travelDisutility = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, config.planCalcScore() ).createTravelDisutility(travelTime); FastMultiNodeDijkstra dijkstra = (FastMultiNodeDijkstra) new FastMultiNodeDijkstraFactory(false). createPathCalculator(scenario.getNetwork(), travelDisutility, travelTime);
TravelDisutility travelDisutility = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, config.planCalcScore() ).createTravelDisutility(travelTime); FastMultiNodeDijkstra dijkstra = (FastMultiNodeDijkstra) new FastMultiNodeDijkstraFactory(). createPathCalculator(scenario.getNetwork(), travelDisutility, travelTime);
TravelDisutility travelDisutility = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, config.planCalcScore() ).createTravelDisutility(travelTime); FastMultiNodeDijkstra dijkstra = (FastMultiNodeDijkstra) new FastMultiNodeDijkstraFactory(true). createPathCalculator(scenario.getNetwork(), travelDisutility, travelTime);
Fixture f = new Fixture(); LinkToLinkTravelTimeStub tt = new LinkToLinkTravelTimeStub(); TravelDisutilityFactory tc = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, f.s.getConfig().planCalcScore() ); LeastCostPathCalculatorFactory lcpFactory = new DijkstraFactory();
TravelDisutility costObject = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, f.s.getConfig().planCalcScore() ).createTravelDisutility(timeObject); f.s.getConfig().planCalcScore().getModes().get(TransportMode.car).setMonetaryDistanceRate(monetaryDistanceRateCar); TravelDisutility costObject = new RandomizingTimeDistanceTravelDisutilityFactory( TransportMode.car, f.s.getConfig().planCalcScore() ).createTravelDisutility(timeObject);