public ActivityUtilityParameters build() { ActivityUtilityParameters params = new ActivityUtilityParameters(this.type) ; params.setScoreAtAll(this.scoreAtAll) ; params.setTypicalDuration( this.typicalDuration_s) ; params.setZeroUtilityDuration_s( this.zeroUtilityComputation.computeZeroUtilityDuration_s(priority, typicalDuration_s)) ; params.setClosingTime(this.closingTime) ; params.setEarliestEndTime(this.earliestEndTime) ; params.setLatestStartTime(this.latestStartTime) ; params.setMinimalDuration(this.minimalDuration) ; params.setOpeningTime(this.openingTime) ; params.checkConsistency(); return params ; }
public CharyparNagelOpenTimesScoringFunctionFactory( final Scenario scenario) { this.params = new SubpopulationScoringParameters( scenario ); this.scenario = scenario; }
public ModeUtilityParameters build() { return new ModeUtilityParameters( marginalUtilityOfTraveling_s, marginalUtilityOfDistance_m, monetaryDistanceRate, constant, dailyMoneyConstant, dailyUtilityConstant); } }
@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; }
public void testGetOpeningInterval() { Activity act = (Activity) person.getSelectedPlan().getPlanElements().get(0) ; FacilityOpeningIntervalCalculator testee = new FacilityOpeningIntervalCalculator(this.facilities); double[] openInterval = testee.getOpeningInterval(act); assertEquals(6.0 * 3600, openInterval[0], EPSILON); assertEquals(19.0 * 3600, openInterval[1], EPSILON); }
private ScoringFunction getScoringFunctionInstance(final Fixture f, final Person person) { CharyparNagelScoringFunctionFactory charyparNagelScoringFunctionFactory = new CharyparNagelScoringFunctionFactory( f.scenario ); return charyparNagelScoringFunctionFactory.createNewScoringFunction(person); }
public static ScoringFunctionFactory createDefaultScoringFunctionFactory(Scenario scenario) { return new CharyparNagelScoringFunctionFactory( scenario ); }
@Override public void handleLeg(Leg leg) { double legScore = calcLegScore(leg.getDepartureTime(), leg.getDepartureTime() + leg.getTravelTime(), leg); this.score += legScore; }
private void handleMorningActivity() { assert firstActivity != null; // score first activity this.score += calcActScore(0.0, this.firstActivityEndTime, firstActivity); }
@Override public ScoringFunction createNewScoringFunction(Person person) { return new OnlyTravelTimeDependentScoringFunction(); } }
@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 agentStuck(final double time) { this.score += getStuckPenalty(); }
public CharyparNagelActivityScoring(final ScoringParameters params) { this(params, new ActivityTypeOpeningIntervalCalculator(params)); }
@Override public void handleLastActivity(Activity act) { this.currentActivityStartTime = act.getStartTime(); this.handleOvernightActivity(act); this.firstActivity = null; }
public ScoringFunction createNewScoringFunction(Person person) { final ScoringParameters parameters = params.getScoringParameters( person ); sumScoringFunction.addScoringFunction(new CharyparNagelActivityScoring( parameters )); sumScoringFunction.addScoringFunction(new CharyparNagelLegScoring( parameters , this.network)); sumScoringFunction.addScoringFunction(new CharyparNagelMoneyScoring( parameters )); sumScoringFunction.addScoringFunction(new CharyparNagelAgentStuckScoring( parameters )); return sumScoringFunction;
public CharyparNagelScoringFunctionFactory( final Scenario sc ) { this( new SubpopulationScoringParameters( sc ) , sc.getNetwork() ); }
@Override public void handleActivity(Activity act) { this.score += calcActScore(act.getStartTime(), act.getEndTime(), act); }
@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; } }) ;