private void handleMorningActivity() { assert firstActivity != null; // score first activity this.score += calcActScore(0.0, this.firstActivityEndTime, firstActivity); }
@Override public void finish() { if (this.firstActivity != null) { handleMorningActivity(); } // Else, no activity has started so far. // This probably means that the plan contains at most one activity. // We cannot handle that correctly, because we do not know what it is. }
@Override public void handleLastActivity(Activity act) { this.currentActivityStartTime = act.getStartTime(); this.handleOvernightActivity(act); this.firstActivity = null; }
@Override public ScoringFunction createNewScoringFunction(final Person person) { final SumScoringFunction scoringFunctionAccumulator = new SumScoringFunction(); scoringFunctionAccumulator.addScoringFunction( new BlackListedActivityScoringFunction( blackList, new CharyparNagelActivityScoring( params ) ) ); for ( Map.Entry<String, LegScoringParameters> entry : parametersPerMode.entrySet() ) { scoringFunctionAccumulator.addScoringFunction( new ElementalCharyparNagelLegScoringFunction( entry.getKey(), entry.getValue(), scenario.getNetwork())); } // other standard stuff scoringFunctionAccumulator.addScoringFunction( new CharyparNagelMoneyScoring( params )); scoringFunctionAccumulator.addScoringFunction( new CharyparNagelAgentStuckScoring( params )); return scoringFunctionAccumulator; } }
sumScoringFunction.addScoringFunction(new CharyparNagelActivityScoring( parameters )); sumScoringFunction.addScoringFunction(new CharyparNagelLegScoring( parameters , this.network)); sumScoringFunction.addScoringFunction(new CharyparNagelMoneyScoring( parameters ));
@Override public ScoringFunction createNewScoringFunction(Person person) { SumScoringFunction sumScoringFunction = new SumScoringFunction(); final ScoringParameters params = parameters.getScoringParameters(person); sumScoringFunction.addScoringFunction(new CharyparNagelActivityScoring(params)) ; sumScoringFunction.addScoringFunction(new CharyparNagelAgentStuckScoring(params)); BicycleConfigGroup bicycleConfigGroup = (BicycleConfigGroup) scenario.getConfig().getModule("bicycle"); BicycleScoringType bicycleScoringType = bicycleConfigGroup.getBicycleScoringType(); if (bicycleScoringType == BicycleScoringType.legBased) { sumScoringFunction.addScoringFunction(new BicycleLegScoring(params, scenario.getNetwork(), bicycleConfigGroup)); } else if (bicycleScoringType == BicycleScoringType.linkBased) { BicycleLinkScoring bicycleLinkScoring = new BicycleLinkScoring(params, scenario, bicycleConfigGroup); sumScoringFunction.addScoringFunction(bicycleLinkScoring); CarCounter carCounter = new CarCounter(bicycleLinkScoring); eventsManager.addHandler(carCounter); } else { throw new IllegalArgumentException("Bicycle scoring type " + bicycleScoringType + " not known."); } return sumScoringFunction; }
@Override public void handleActivity(Activity act) { this.score += calcActScore(act.getStartTime(), act.getEndTime(), act); }
@Override public ScoringFunction createNewScoringFunction(Person person) { final ScoringParameters parameters = params.getScoringParameters( person ); SumScoringFunction sumScoringFunction = new SumScoringFunction(); sumScoringFunction.addScoringFunction(new CharyparNagelActivityScoring(parameters, new FacilityOpeningIntervalCalculator(scenario.getActivityFacilities()))); sumScoringFunction.addScoringFunction(new CharyparNagelLegScoring(parameters, scenario.getNetwork())); sumScoringFunction.addScoringFunction(new CharyparNagelMoneyScoring(parameters)); sumScoringFunction.addScoringFunction(new CharyparNagelAgentStuckScoring(parameters)); return sumScoringFunction; }
double calcActScore = calcActScore(this.currentActivityStartTime, this.firstActivityEndTime + 24*3600, lastActivity); this.score += calcActScore; // SCENARIO_DURATION } else { this.score += calcActScore(0.0, this.firstActivityEndTime, firstActivity); this.score += calcActScore(this.currentActivityStartTime, this.params.simulationPeriodInDays * 24*3600, lastActivity);
@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; } }) ;
@Override public ScoringFunction createNewScoringFunction(Person person) { SumScoringFunction scoringFunctionAccumulator = new SumScoringFunction(); SumScoringFunction.BasicScoring scoringFunction; if (this.usingConfigParamsForScoring) { scoringFunction = new DCActivityWOFacilitiesScoringFunction(person, this.lcContext); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelActivityScoring(this.lcContext.getParams())); // forgetting the previous line (which we did at some point) is not picked up by any test within the locationchoice contrib. kai, oct'14 } else { scoringFunction = new DCActivityScoringFunction(person.getSelectedPlan(), this.lcContext); } scoringFunctionAccumulator.addScoringFunction(scoringFunction); if (this.usingIndividualScoringParameters) { ScoringParameters scoringParameters = new ScoringParameters.Builder(this.scenario, person.getId()).build(); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelLegScoring(scoringParameters, this.scenario.getNetwork())); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelAgentStuckScoring(scoringParameters)); } else { scoringFunctionAccumulator.addScoringFunction(new CharyparNagelLegScoring(this.nonPersonalizedScoringParameters, this.scenario.getNetwork())); scoringFunctionAccumulator.addScoringFunction(new CharyparNagelAgentStuckScoring(this.nonPersonalizedScoringParameters)); } return scoringFunctionAccumulator; } }