public ExpBetaPlanSelector(PlanCalcScoreConfigGroup charyparNagelScoringConfigGroup) { this( charyparNagelScoringConfigGroup.getBrainExpBeta() ) ; }
@Override public ExpBetaPlanChanger<Plan, Person> get() { return new ExpBetaPlanChanger<>( - config.getBrainExpBeta()); } }
public PathSizeLogitSelector(final PlanCalcScoreConfigGroup config, final Network network) { this( config.getPathSizeLogitBeta(), config.getBrainExpBeta(), network ) ; }
@Override public ExpBetaPlanSelector<Plan, Person> get() { return new ExpBetaPlanSelector<>( - config.getBrainExpBeta()); } }
@Override public PathSizeLogitSelector get() { return new PathSizeLogitSelector(config.getPathSizeLogitBeta(), -config.getBrainExpBeta(), network); } }
public CadytsPlanChanger(Scenario scenario, CadytsContextI<T> cadytsContext) { this.cadytsContext = cadytsContext; this.beta = scenario.getConfig().planCalcScore().getBrainExpBeta() ; }
@Override public double computeContributionOfOpportunity(ActivityFacility origin, AggregationObject destination, Double departureTime) { LeastCostPathCalculator.Path path = leastCostPathCalculator.calcLeastCostPath(fromNode, destination.getNearestNode(), departureTime, null, null); return destination.getSum() * Math.exp(planCalcScoreConfigGroup.getBrainExpBeta() * path.travelCost); } }
public CadytsScoring(final Plan plan, Config config, final CadytsContextI<T> context) { this.plansTranslator = context.getPlansTranslator(); this.matsimCalibrator = context.getCalibrator(); this.plan = plan; this.beta = config.planCalcScore().getBrainExpBeta(); }
@Override public PlanStrategy get() { return new PlanStrategyImpl(new ExpBetaPlanChanger(config.getBrainExpBeta())); }
@Override public GroupLevelPlanSelector createSelector() { return new LogitSumSelector( MatsimRandom.getLocalInstance(), incompatiblePlansIdentifierFactory, sc.getConfig().planCalcScore().getBrainExpBeta()); } }
@Override public GroupLevelPlanSelector createSelector() { return new CoalitionSelector( new LogitWeight( MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta()), conflictSolver); } }
public ConstantSpeedAccessibilityExpContributionCalculator(final String mode, Config config, Network network) { this.network = network; final PlanCalcScoreConfigGroup planCalcScoreConfigGroup = config.planCalcScore() ; if (planCalcScoreConfigGroup.getOrCreateModeParams(mode).getMonetaryDistanceRate() != 0.) { LOG.error("Monetary distance cost rate for " + mode + " different from zero, but not used in accessibility computations"); } logitScaleParameter = planCalcScoreConfigGroup.getBrainExpBeta(); if (config.plansCalcRoute().getTeleportedModeSpeeds().get(mode) == null) { LOG.error("No teleported mode speed for mode " + mode + " set."); } this.modeSpeed_m_h = config.plansCalcRoute().getTeleportedModeSpeeds().get(mode) * 3600.; final PlanCalcScoreConfigGroup.ModeParams modeParams = planCalcScoreConfigGroup.getOrCreateModeParams(mode); betaModeTT = modeParams.getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaModeTD = modeParams.getMarginalUtilityOfDistance(); constMode = modeParams.getConstant(); betaWalkTT = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfTraveling() - planCalcScoreConfigGroup.getPerforming_utils_hr(); betaWalkTD = planCalcScoreConfigGroup.getModes().get(TransportMode.walk).getMarginalUtilityOfDistance(); this.walkSpeed_m_h = config.plansCalcRoute().getTeleportedModeSpeeds().get(TransportMode.walk) * 3600; }
@Override public GroupLevelPlanSelector createSelector() { return new WhoIsTheBossSelector( MatsimRandom.getLocalInstance(), incompatiblePlansIdentifierFactory , new LogitWeight( MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta()) ); } }
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); }
@Override public GroupLevelPlanSelector createSelector() { return new HighestWeightSelector( incompatiblePlansIdentifierFactory, new ParetoWeight( new LogitWeight( MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta())) ); } }
@Override public GroupLevelPlanSelector createSelector() { return new HighestWeightSelector( incompatiblePlansIdentifierFactory , new LogitWeight( new LowestScoreOfJointPlanWeight( ((JointPlans) sc.getScenarioElement( JointPlans.ELEMENT_NAME )) ), MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta()) ); } }
public LocationChoicePlanStrategy(Scenario scenario, Provider<TripRouter> tripRouterProvider) { this.tripRouterProvider = tripRouterProvider; if ( DestinationChoiceConfigGroup.Algotype.bestResponse==((DestinationChoiceConfigGroup)scenario.getConfig().getModule("locationchoice")).getAlgorithm() ) { throw new RuntimeException("best response location choice not supported as part of LocationChoicePlanStrategy. " + "Use BestReplyLocationChoicePlanStrategy instead, but be aware that as of now some Java coding is necessary to do that. kai, feb'13") ; } DestinationChoiceConfigGroup dccg = (DestinationChoiceConfigGroup) scenario.getConfig().getModule(DestinationChoiceConfigGroup.GROUP_NAME); String planSelector = dccg.getPlanSelector(); if (planSelector.equals("BestScore")) { delegate = new PlanStrategyImpl(new BestPlanSelector()); } else if (planSelector.equals("ChangeExpBeta")) { delegate = new PlanStrategyImpl(new ExpBetaPlanChanger(scenario.getConfig().planCalcScore().getBrainExpBeta())); } else if (planSelector.equals("SelectRandom")) { delegate = new PlanStrategyImpl(new RandomPlanSelector()); } else { delegate = new PlanStrategyImpl(new ExpBetaPlanSelector(scenario.getConfig().planCalcScore())); } delegate.addStrategyModule(new DestinationChoice(this.tripRouterProvider, scenario)); delegate.addStrategyModule(new ReRoute(scenario, tripRouterProvider)); }
@Override public GroupLevelPlanSelector createSelector() { return new HighestWeightSelector( incompatiblePlans , new LogitWeight( new LowestScoreOfJointPlanWeight( new LossWeight(), (JointPlans) sc.getScenarioElement( JointPlans.ELEMENT_NAME ) ), MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta()) ); } }
@Override public GroupLevelPlanSelector createSelector() { final GroupReplanningConfigGroup configGroup = (GroupReplanningConfigGroup) sc.getConfig().getModule( GroupReplanningConfigGroup.GROUP_NAME ); return new HighestWeightSelector( incompatiblePlansIdentifierFactory , new WeightedWeight( new LogitWeight( MatsimRandom.getLocalInstance(), sc.getConfig().planCalcScore().getBrainExpBeta()), configGroup.getWeightAttributeName(), sc.getPopulation().getPersonAttributes() ) ); }
@Override public ScoringFunction createNewScoringFunction(Person person) { final ScoringParameters params = parameters.getScoringParameters(person); SumScoringFunction scoringFunctionAccumulator = new SumScoringFunction(); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelLegScoring(params, controler.getScenario().getNetwork())); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelActivityScoring(params)) ; scoringFunctionAccumulator.addScoringFunction(new CharyparNagelAgentStuckScoring(params)); final CadytsScoring<Link> scoringFunction = new CadytsScoring<>(person.getSelectedPlan(), config, cadytsContext); scoringFunction.setWeightOfCadytsCorrection(30. * config.planCalcScore().getBrainExpBeta()) ; scoringFunctionAccumulator.addScoringFunction(scoringFunction ); return scoringFunctionAccumulator; } }) ;