@Override public void notifyScoring(final ScoringEvent event) { scoringFunctionsForPopulation.finishScoringFunctions(); NewScoreAssignerImpl newScoreAssigner = new NewScoreAssignerImpl(this.planCalcScoreConfigGroup, this.controlerConfigGroup); newScoreAssigner.assignNewScores(event.getIteration(), this.scoringFunctionsForPopulation, this.population); }
/** * Notifies all ControlerScoringListeners * */ public void fireControlerScoringEvent(final int iteration) { ScoringEvent event = new ScoringEvent(this.controler, iteration); { ScoringListener[] listener = this.coreListenerList.getListeners(ScoringListener.class); for (ScoringListener aListener : listener) { log.info("calling notifyScoring on " + aListener.getClass().getName()); aListener.notifyScoring(event); } } { ScoringListener[] listener = this.listenerList.getListeners(ScoringListener.class); for (ScoringListener aListener : listener) { log.info("calling notifyScoring on " + aListener.getClass().getName()); aListener.notifyScoring(event); } } log.info("[it." + iteration + "] all ControlerScoringListeners called."); }
void notifyScoring(ScoringEvent event) { if (this.subsidy != null) { subsidy.computeSubsidy(); } Map<Id<Vehicle>, PScoreContainer> driverId2ScoreMap = this.scorePlansHandler.getDriverId2ScoreMap(); for (Operator operator : this.operators) { operator.score(driverId2ScoreMap, subsidy, routeDesignScoreManager); } // why is the following done twice (see notifyIterationstarts)? this.pTransitSchedule = new TransitScheduleFactoryImpl().createTransitSchedule(); for (TransitStopFacility stop : this.pStopsOnly.getFacilities().values()) { this.pTransitSchedule.addStopFacility(stop); } for (Operator operator : this.operators) { this.pTransitSchedule.addTransitLine(operator.getCurrentTransitLine()); } writeScheduleToFile(this.pTransitSchedule, event.getServices().getControlerIO().getIterationFilename(event.getIteration(), "transitScheduleScored.xml.gz")); }