@Override public void notifyStartup(final StartupEvent event) { this.minIteration = controlerConfigGroup.getFirstIteration(); // int maxIter = controlerConfigGroup.getLastIteration(); // int iterations = maxIter - this.minIteration; // if (iterations > 5000) iterations = 5000; // limit the history size for ( ScoreItem item : ScoreItem.values() ) { scoreHistory.put( item, new TreeMap<Integer,Double>() ) ; } }
@Override public void notifyStartup(final StartupEvent event) { this.minIteration = controlerConfigGroup.getFirstIteration(); TripRouter tripRouter = tripRouterFactory.get(); this.stageActivities = tripRouter.getStageActivityTypes() ; this.mainModeIdentifier = tripRouter.getMainModeIdentifier() ; }
@Inject NewScoreAssignerImpl(PlanCalcScoreConfigGroup planCalcScoreConfigGroup, ControlerConfigGroup controlerConfigGroup) { if (planCalcScoreConfigGroup.getFractionOfIterationsToStartScoreMSA()!=null ) { final int diff = controlerConfigGroup.getLastIteration() - controlerConfigGroup.getFirstIteration(); this.scoreMSAstartsAtIteration = (int) (diff * planCalcScoreConfigGroup.getFractionOfIterationsToStartScoreMSA() + controlerConfigGroup.getFirstIteration()); } learningRate = planCalcScoreConfigGroup.getLearningRate(); }
private void doIterations(Config config) throws MatsimRuntimeModifications.UnexpectedShutdownException { for (int iteration = config.controler().getFirstIteration(); continueIterations(iteration); iteration++) { iteration(config, iteration); } }
TravelDistanceStats(ControlerConfigGroup controlerConfigGroup, GlobalConfigGroup globalConfigGroup, String filename, boolean createPNG) { this.controlerConfigGroup = controlerConfigGroup; this.globalConfigGroup = globalConfigGroup; this.fileName = filename; if (createPNG) { int iterations = controlerConfigGroup.getLastIteration() - controlerConfigGroup.getFirstIteration(); if (iterations > 5000) { iterations = 5000; // limit the history size } this.history = new double[iterations+1]; } if (filename.toLowerCase(Locale.ROOT).endsWith(".txt")) { this.out = IOUtils.getBufferedWriter(filename); } else { this.out = IOUtils.getBufferedWriter(filename + ".txt"); } try { this.out.write("ITERATION\tavg. EXECUTED\tavg. WORST\tavg. AVG\tavg. BEST\n"); } catch (IOException e) { throw new UncheckedIOException(e); } }
public SlaveScoreStats(Config config) { firstIter = config.controler().getFirstIteration(); int size = config.controler().getLastIteration() - firstIter+1; this.history = new double[4][size]; }
private boolean isActiveInThisIteration( int iter ) { return iter % config.ptCounts().getPtCountsInterval() == 0 && iter >= config.controler().getFirstIteration(); }
@Override public void notifyIterationEnds(IterationEndsEvent event) { int iteration = event.getIteration(); if (useVolumesOfIteration(iteration, controlerConfigGroup.getFirstIteration())) { this.iterationsUsed++; linkStats.addData(volumes, travelTime.get(TransportMode.car)); } if (createLinkStatsInIteration(iteration)) { linkStats.writeFile(this.controlerIO.getIterationFilename(iteration, Controler.FILENAME_LINKSTATS)); this.doReset = true; } }
this.minIteration = controler.getConfig().controler().getFirstIteration(); int maxIter = controler.getConfig().controler().getLastIteration(); int iterations = maxIter - this.minIteration;
private boolean determineIfQSimIter(int iteration) { if (iteration == scenario.getConfig().controler().getLastIteration() || iteration == scenario.getConfig().controler().getFirstIteration() ) { isQSimIteration = true; return isQSimIteration; } if (isQSimIteration && psimIterationCount == 0) { isQSimIteration = false; psimIterationCount++; return isQSimIteration; } if (psimIterationCount >= iterationsPerCycle - 1) { isQSimIteration = true; qsimIters.add(iteration); psimIterationCount = 0; return isQSimIteration; } if (isQSimIteration) { qsimIters.add(iteration); } else { psimIterationCount++; } return isQSimIteration; }
@Inject public JointPlansDumping( final Scenario sc, final OutputDirectoryHierarchy controlerIO ) { this.sc = sc ; this.jointPlans = (JointPlans) sc.getScenarioElement( JointPlans.ELEMENT_NAME ); this.firstIteration = sc.getConfig().controler().getFirstIteration(); this.writePlansInterval = sc.getConfig().controler().getWritePlansInterval() ; this.controlerIO = controlerIO ; }
@Override public void notifyIterationStarts(IterationStartsEvent event) { if (event.getIteration() == scenario.getConfig().controler().getFirstIteration()) { /* * do all the stuff that is needed only once a simulation: - calculating coordinations for the via file - getting the signals data out of the scenario */ init(); } String signalCSVFilename = scenario.getConfig().controler().getOutputDirectory() + "/ITERS/it." + event.getIteration() + "/signalEvents2Via.csv"; // log.info("Initializing SignalsCSVWriter ..."); signalsCSVWriter = IOUtils.getBufferedWriter(signalCSVFilename); log.info("Writing signal events of iteration " + event.getIteration() + " as csv file for via to " + signalCSVFilename + " ..."); // create header try { signalsCSVWriter.write(SIGNAL_ID + ";" + X_COORD + ";" + Y_COORD + ";" + TIME + ";" + SIGNAL_STATE); signalsCSVWriter.newLine(); } catch (IOException e) { e.printStackTrace(); log.error("Something went wrong while writing the header of the signals csv file."); } }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { // change signal green split every INTERVAL iteration if (event.getIteration() % INTERVAL == 0 && event.getIteration() != scenario.getConfig().controler().getFirstIteration()){ computeDelays(event); LOG.info("+++ Iteration " + event.getIteration() + ". Update signal green split..."); updateSignals(); } }
setMaxPlansPerAgent(strategyConfigGroup.getMaxAgentPlanMemorySize()); int globalInnovationDisableAfter = (int) ((controlerConfigGroup.getLastIteration() - controlerConfigGroup.getFirstIteration()) * strategyConfigGroup.getFractionOfIterationsToDisableInnovation() + controlerConfigGroup.getFirstIteration()); log.info("global innovation switch off after iteration: " + globalInnovationDisableAfter); if (maxIter >= controlerConfigGroup.getFirstIteration()) { addChangeRequest(maxIter + 1, strategy, settings.getSubpopulation(), 0.0); } else {
@Override public void notifyStartup(final StartupEvent event) { if (fileName.toLowerCase(Locale.ROOT).endsWith(".txt")) { this.out = IOUtils.getBufferedWriter(fileName); } else { this.out = IOUtils.getBufferedWriter(fileName + ".txt"); } try { this.out.write("ITERATION\tavg. EXECUTED\tavg. WORST\tavg. AVG\tavg. BEST\n"); } catch (IOException e) { throw new UncheckedIOException(e); } this.minIteration = event.getServices().getConfig().controler().getFirstIteration(); int maxIter = event.getServices().getConfig().controler().getLastIteration(); int iterations = maxIter - this.minIteration; if (iterations > 5000) iterations = 5000; // limit the history size this.history = new double[4][iterations+1]; }
@Override public PlanAlgorithm getPlanAlgoInstance() { final CompositeStageActivityTypes blackList = new CompositeStageActivityTypes(); blackList.addActivityTypes( tripRouterFactory.get().getStageActivityTypes() ); blackList.addActivityTypes( JointActingTypes.JOINT_STAGE_ACTS ); final int iteration = getReplanningContext().getIteration(); final int firstIteration = config.controler().getFirstIteration(); final double nIters = config.controler().getLastIteration() - firstIteration; final double minTemp = 1; final double startMin = (2 / 3.) * nIters; final double progress = (iteration - firstIteration) / startMin; final double temp = minTemp + Math.max(1 - progress , 0) * (maxTemp - minTemp); log.debug( "temperature in iteration "+iteration+": "+temp ); final BlackListedTimeAllocationMutator algo = new BlackListedTimeAllocationMutator( blackList, config.timeAllocationMutator().getMutationRange() * temp, MatsimRandom.getLocalInstance() ); return algo; } }));
@Override public void notifyIterationStarts(IterationStartsEvent event) { this.currentIteration = event.getIteration(); if (innovationEndsAtIter > 0 && event.getIteration() > innovationEndsAtIter) return; //wait for previous transmissions to complete, if necessary waitForSlaveThreads(); //start receiving plans from slaveHandlerTreeMap as the QSim runs int firstIteration = config.controler().getFirstIteration(); if (SelectedSimulationMode.equals(SimulationMode.PARALLEL)) startSlaveHandlersInMode(CommunicationsMode.TRANSMIT_PLANS_TO_MASTER); IterationStopWatch stopwatch = event.getServices().getStopwatch(); }
@Override public void notifyStartup(final StartupEvent event) { MatsimServices controler = event.getServices(); if(this.pConfig.getWriteStatsInterval() > 0){ log.info("enabled"); this.pStatsWriter = IOUtils.getBufferedWriter(controler.getControlerIO().getOutputFilename("pStats.txt")); try { this.pStatsWriter.write(PStatsOverviewDataContainer.getHeaderLine()); this.pStatsWriter.newLine(); } catch (IOException e) { throw new UncheckedIOException(e); } } else { this.pStatsWriter = null; } this.minIteration = controler.getConfig().controler().getFirstIteration(); int maxIter = controler.getConfig().controler().getLastIteration(); int iterations = maxIter - this.minIteration; if (iterations > 10000) iterations = 10000; // limit the history size this.history = new double[29][iterations+1]; this.statsContainer = new RecursiveStatsContainer(); this.statsApproxContainer = new RecursiveStatsApproxContainer(0.1, 10); }
@Override public void notifyAfterMobsim(AfterMobsimEvent event) { if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getWriteOutputIteration() == 0. || event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getUpdatePriceInterval() == 0.) { computeDelays(event); } if (event.getIteration() == this.congestionInfo.getScenario().getConfig().controler().getFirstIteration()) { // skip first iteration } else if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getUpdatePriceInterval() == 0.) { int totalNumberOfIterations = this.congestionInfo.getScenario().getConfig().controler().getLastIteration() - this.congestionInfo.getScenario().getConfig().controler().getFirstIteration(); int iterationCounter = event.getIteration() - this.congestionInfo.getScenario().getConfig().controler().getFirstIteration(); if (iterationCounter < this.congestionInfo.getDecongestionConfigGroup().getFractionOfIterationsToEndPriceAdjustment() * totalNumberOfIterations && iterationCounter > this.congestionInfo.getDecongestionConfigGroup().getFractionOfIterationsToStartPriceAdjustment() * totalNumberOfIterations) { if (tollComputation != null) { log.info("+++ Iteration " + event.getIteration() + ". Update tolls per link and time bin."); tollComputation.updateTolls(); } } } if (event.getIteration() % this.congestionInfo.getDecongestionConfigGroup().getWriteOutputIteration() == 0.) { CongestionInfoWriter.writeDelays(congestionInfo, event.getIteration(), this.outputDirectory + "ITERS/it." + event.getIteration() + "/", this.congestionInfo.getScenario().getConfig().controler().getRunId()); CongestionInfoWriter.writeTolls(congestionInfo, event.getIteration(), this.outputDirectory + "ITERS/it." + event.getIteration() + "/", this.congestionInfo.getScenario().getConfig().controler().getRunId()); } }
@Override public void notifyIterationStarts(IterationStartsEvent event) { PBox pBox = (PBox) operators ; final MatsimServices controler = event.getServices(); if(event.getIteration() == controler.getConfig().controler().getFirstIteration()){ log.info("This is the first iteration. All lines were added by notifyStartup event."); } else { pBox.notifyIterationStarts(event); removePreviousPTransitScheduleFromOriginalOne(event.getServices().getScenario().getTransitSchedule()); addPTransitScheduleToOriginalOne(event.getServices().getScenario().getTransitSchedule(), pBox.getpTransitSchedule()); removePreviousPVehiclesFromScenario(event.getServices().getScenario().getTransitVehicles()); addPVehiclesToOriginalOnes(event.getServices().getScenario().getTransitVehicles(), this.pVehiclesFactory.createVehicles(pBox.getpTransitSchedule())); event.getServices().getEvents().processEvent(new TransitScheduleChangedEvent(0.0)); if(this.agentsStuckHandler != null){ ParallelPersonAlgorithmUtils.run(controler.getScenario().getPopulation(), controler.getConfig().global().getNumberOfThreads(), new ParallelPersonAlgorithmUtils.PersonAlgorithmProvider() { @Override public AbstractPersonAlgorithm getPersonAlgorithm() { return stuckFactory.getReRouteStuck(new PlanRouter( controler.getTripRouterProvider().get(), controler.getScenario().getActivityFacilities() ), ((MutableScenario)controler.getScenario()), agentsStuckHandler.getAgentsStuck()); } }); } } this.dumpTransitScheduleAndVehicles(event.getServices(), event.getIteration()); }