@Override public final TravelDisutility createTravelDisutilityCalculator() { return getTravelDisutilityFactory().createTravelDisutility(this.injector.getInstance(TravelTime.class)); }
@Override public final TravelDisutility createTravelDisutilityCalculator() { return getTravelDisutilityFactory().createTravelDisutility(this.injector.getInstance(TravelTime.class)); }
@Override public TravelDisutility createTravelDisutility(TravelTime timeCalculator) { if ( this.sigma != 0. ) { if ( previousTravelDisutilityFactory instanceof RandomizingTimeDistanceTravelDisutilityFactory) { ((RandomizingTimeDistanceTravelDisutilityFactory) previousTravelDisutilityFactory).setSigma( this.sigma ); } else { throw new RuntimeException("cannot use sigma!=null together with provided travel disutility factory"); } } return new TravelDisutilityIncludingToll( previousTravelDisutilityFactory.createTravelDisutility(timeCalculator), this.scheme, this.marginalUtilityOfMoney, this.sigma ); }
@Override public final PlanAlgorithm getPlanAlgoInstance() { ReplanningContext replanningContext = this.getReplanningContext(); MultiNodeDijkstra forwardMultiNodeDijkstra = (MultiNodeDijkstra) this.forwardMultiNodeDijsktaFactory.createPathCalculator(this.scenario.getNetwork(), travelDisutilities.get(TransportMode.car).createTravelDisutility(travelTimes.get(TransportMode.car)), travelTimes.get(TransportMode.car)); BackwardFastMultiNodeDijkstra backwardMultiNodeDijkstra = (BackwardFastMultiNodeDijkstra) this.backwardMultiNodeDijsktaFactory.createPathCalculator( this.scenario.getNetwork(), travelDisutilities.get(TransportMode.car).createTravelDisutility(travelTimes.get(TransportMode.car)), travelTimes.get(TransportMode.car)); // this one corresponds to the "frozen epsilon" paper(s) // the random number generators are re-seeded anyway in the dc module. So we do not need a MatsimRandom instance here TripRouter tripRouter = tripRouterProvider.get(); int iteration = replanningContext.getIteration(); return new BestResponseLocationMutator(this.quadTreesOfType, this.facilitiesOfType, this.personsMaxEpsUnscaled, this.lcContext, this.sampler, tripRouter, forwardMultiNodeDijkstra, backwardMultiNodeDijkstra, scoringFunctionFactory, iteration, this.nearestLinks); } }
leastCostPathCalculatorFactory.createPathCalculator( filteredNetwork, travelDisutilityFactory.createTravelDisutility(travelTime), travelTime);
@Override public RoutingModule get() { if (filteredNetwork == null){ TransportModeNetworkFilter filter = new TransportModeNetworkFilter(network); Set<String> modes = new HashSet<>(); modes.add(TransportMode.car); filteredNetwork = NetworkUtils.createNetwork(); filter.filter(filteredNetwork, modes); } TravelDisutilityFactory travelDisutilityFactory = this.travelDisutilityFactory.get(PlansCalcRouteWithTollOrNot.CAR_WITH_PAYED_AREA_TOLL); TravelTime travelTime = travelTimes.get(TransportMode.car); LeastCostPathCalculator routeAlgo = leastCostPathCalculatorFactory.createPathCalculator( filteredNetwork, travelDisutilityFactory.createTravelDisutility(travelTime), travelTime); if ( plansCalcRouteConfigGroup.isInsertingAccessEgressWalk() ) { return DefaultRoutingModules.createAccessEgressNetworkRouter(TransportMode.car, populationFactory, filteredNetwork, routeAlgo, plansCalcRouteConfigGroup); } else { return DefaultRoutingModules.createPureNetworkRouter(TransportMode.car, populationFactory, filteredNetwork, routeAlgo); } // yyyyyy not so great that this differentiation is here; need to push it down a bit (again). kai, feb'2016 } }
@Override public void notifyReplanning(ReplanningEvent event) { Assert.assertEquals(42.0, travelTimes.get(TransportMode.car).getLinkTravelTime(null, 0.0, null, null), 0.0); Assert.assertEquals(37.0, travelDisutilities.get(TransportMode.car).createTravelDisutility(travelTimes.get(TransportMode.car)).getLinkTravelDisutility(null, 0.0, null, null), 0.0); } }
LinkToLinkRoutingModule(final String mode, final PopulationFactory populationFactory, Network network, LeastCostPathCalculatorFactory leastCostPathCalcFactory, TravelDisutilityFactory travelCostCalculatorFactory, LinkToLinkTravelTime l2ltravelTimes, NetworkTurnInfoBuilderI turnInfoBuilder) { this.network = network; this.populationFactory = populationFactory; this.mode = mode; invertedNetwork = new NetworkInverter(network, turnInfoBuilder.createAllowedTurnInfos()).getInvertedNetwork(); // convert l2ltravelTimes into something that can be used by the inverted network router: TravelTimesInvertedNetworkProxy invertedTravelTimes = new TravelTimesInvertedNetworkProxy(network, l2ltravelTimes); // (method that takes a getLinkTravelTime( link , ...) with a link from the inverted network, converts it into links on the // original network, and looks up the link2link tttime in the l2ltravelTimes data structure) TravelDisutility travelCost = travelCostCalculatorFactory.createTravelDisutility(invertedTravelTimes); leastCostPathCalculator = leastCostPathCalcFactory.createPathCalculator(invertedNetwork, travelCost, invertedTravelTimes); }
public NetworkModeAccessibilityExpContributionCalculator(final TravelTime travelTime, final TravelDisutilityFactory travelDisutilityFactory, final Scenario scenario, final Network network) { this.network = network; final PlanCalcScoreConfigGroup planCalcScoreConfigGroup = scenario.getConfig().planCalcScore(); this.scheme = (RoadPricingScheme) scenario.getScenarioElement( RoadPricingScheme.ELEMENT_NAME ); this.travelTime = travelTime; Gbl.assertNotNull(travelDisutilityFactory); TravelDisutility travelDisutility = travelDisutilityFactory.createTravelDisutility(travelTime); this.lcpt = new LeastCostPathTreeExtended(travelTime, travelDisutility, this.scheme); if ( planCalcScoreConfigGroup.getOrCreateModeParams(TransportMode.car).getMarginalUtilityOfDistance() != 0. ) { log.error( "marginal utility of distance for car different from zero but not used in accessibility computations"); } logitScaleParameter = planCalcScoreConfigGroup.getBrainExpBeta() ; betaCarTT = planCalcScoreConfigGroup.getModes().get(TransportMode.car).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaCarTD = planCalcScoreConfigGroup.getMarginalUtilityOfMoney() * planCalcScoreConfigGroup.getModes().get(TransportMode.car).getMonetaryDistanceRate(); betaCarTMC = - planCalcScoreConfigGroup.getMarginalUtilityOfMoney() ; constCar = planCalcScoreConfigGroup.getModes().get(TransportMode.car).getConstant(); betaWalkTT = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaWalkTD = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance(); this.walkSpeed_m_s = scenario.getConfig().plansCalcRoute().getTeleportedModeSpeeds().get(TransportMode.walk); }
@Deprecated // use TripRouter instead. kai, dec'13 public PlanRouterAdapter( final MatsimServices controler) { this.planRouter = new PlanRouter( controler.getTripRouterProvider().get(), controler.getScenario().getActivityFacilities() ); TravelTime time = controler.getLinkTravelTimes(); TravelDisutility disutility = controler.getTravelDisutilityFactory().createTravelDisutility( time); LeastCostPathCalculatorFactory factory = controler.getLeastCostPathCalculatorFactory(); Network network = controler.getScenario().getNetwork(); this.routeAlgo = factory.createPathCalculator(network, disutility, time); PopulationFactory populationFactory = controler.getScenario().getPopulation().getFactory(); this.routeFactory = ((PopulationFactory) populationFactory).getRouteFactories(); }
TravelDisutility travelDisutility = travelDisutilityFactory.createTravelDisutility(travelTime ) ;
@Test public void testRouterCreation() { for (ControlerConfigGroup.RoutingAlgorithmType routingAlgorithmType : ControlerConfigGroup.RoutingAlgorithmType.values()) { Config config = ConfigUtils.createConfig(); config.controler().setRoutingAlgorithmType(routingAlgorithmType); Scenario scenario = ScenarioUtils.createScenario(config); LeastCostPathCalculatorFactory defaultLeastCostPathCalculatorFactory = TripRouterFactoryBuilderWithDefaults.createDefaultLeastCostPathCalculatorFactory(scenario); LeastCostPathCalculator pathCalculator = defaultLeastCostPathCalculatorFactory.createPathCalculator( scenario.getNetwork(), ControlerDefaults.createDefaultTravelDisutilityFactory(scenario).createTravelDisutility(new FreeSpeedTravelTime()), new FreeSpeedTravelTime()); Assert.assertNotNull(pathCalculator); } }