public static <N extends Number & Comparable<? super N>>
	Predicate<EvolutionResult<?, N>> byPopulationConvergence(
		final BiPredicate<Double, DoubleMoments> proceed
	) {
		return new PopulationConvergenceLimit<>(proceed);
	}
A termination method that stops the evolution when the population is
deemed as converged. The population is deemed as converged when the
average fitness across the current population is less than a
user-specified percentage away from the best fitness of the current
population. This method takes a predicate with the <em>best</em> fitness
and the population fitness moments and determine whether to proceed or
not.

@since 3.9

@param proceed the predicate which determines when the evolution stream
       is truncated. The first parameter of the predicate contains the
       best fitness of the population, and the second parameter contains
       the statistics of population fitness values
@param <N> the fitness type
@return a new fitness convergence strategy
@throws NullPointerException if the {@code proceed} predicate is
        {@code null}
jenetics/src/main/java/io/jenetics/engine/Limits.java