protected ESOptimization createOptimizer(RandomGenerator random) throws UndefinedParameterError {
  return new ESParameterOptimization(this,operators.length,ESOptimization.INIT_TYPE_RANDOM,getParameterAsInt(PARAMETER_MAX_GENERATIONS),getParameterAsInt(PARAMETER_GENERATIONS_WITHOUT_IMPROVAL),getParameterAsInt(PARAMETER_POPULATION_SIZE),getParameterAsInt(PARAMETER_SELECTION_TYPE),getParameterAsDouble(PARAMETER_TOURNAMENT_FRACTION),getParameterAsBoolean(PARAMETER_KEEP_BEST),getParameterAsInt(PARAMETER_MUTATION_TYPE),getParameterAsDouble(PARAMETER_CROSSOVER_PROB),getParameterAsBoolean(PARAMETER_SHOW_CONVERGENCE_PLOT),random,this);
}

protected ESOptimization createOptimizer ( RandomGenerator random ) throws UndefinedParameterError { return new ESParameterOptimization ( this , operators . length , ESOptimization . INIT_TYPE_RANDOM , getParameterAsInt ( PARAMETER_MAX_GENERATIONS ) , getParameterAsInt ( PARAMETER_GENERATIONS_WITHOUT_IMPROVAL ) , getParameterAsInt ( PARAMETER_POPULATION_SIZE ) , getParameterAsInt ( PARAMETER_SELECTION_TYPE ) , getParameterAsDouble ( PARAMETER_TOURNAMENT_FRACTION ) , getParameterAsBoolean ( PARAMETER_KEEP_BEST ) , getParameterAsInt ( PARAMETER_MUTATION_TYPE ) , getParameterAsDouble ( PARAMETER_CROSSOVER_PROB ) , getParameterAsBoolean ( PARAMETER_SHOW_CONVERGENCE_PLOT ) , random , this ) ; }
this method creates a apropriate optimizer
