public void init(ObjectiveFunction function) { generator = new Random(); this.function = function; dimension = function.getDimension(); min = Math.max(min, function.getMinimum()[0]); max = Math.min(max, function.getMaximum()[0]); means = new double[dimension]; deviations = new double[dimension]; paths = new ValuePoint[populationSize]; best = ValuePoint.at(Point.getDefault(), Double.POSITIVE_INFINITY); stopCondition.setInitialValue(Double.POSITIVE_INFINITY); for (int i = 0; i < dimension; i++) { means[i] = (generator.nextDouble() * (max - min)) + min; deviations[i] = (max - min) / 2; } }