/** * Make sure that the parameter sets of each population are updated (reinitialized) if a * population is reinitialized. * * @see InterfacePopulationChangedEventListener */ @Override public void registerPopulationStateChanged(Object source, String name) { if (name.equals(Population.POPULATION_INITIALIZED)) { Population pop = (Population) source; CMAParamSet params = (CMAParamSet) (pop.getData(MutateESRankMuCMA.cmaParamsKey)); int mu; if (pop.hasData(EvolutionStrategies.esMuParam)) { mu = (Integer) pop.getData(EvolutionStrategies.esMuParam); } else { System.err.println("Unknown mu in reinit! using lambda/2..."); mu = pop.size() / 2; } pop.putData( MutateESRankMuCMA.cmaParamsKey, CMAParamSet.initCMAParams(params, mu, pop.size(), pop, params.firstSigma)); } }