public static <G extends Gene<?, G>, C extends Comparable<? super C>>
	Builder<G, C> builder(
		final Function<? super Genotype<G>, ? extends C> ff,
		final Factory<Genotype<G>> gtf
	) {
		return new Builder<>(
			new FitnessEvaluator<>(ff, BatchExecutor.of(commonPool())),
			gtf
		);
	}
Create a new evolution {@code Engine.Builder} with the given fitness
function and genotype factory.

@param ff the fitness function
@param gtf the genotype factory
@param <G> the gene type
@param <C> the fitness function result type
@return a new engine builder
@throws java.lang.NullPointerException if one of the arguments is
        {@code null}.
jenetics/src/main/java/io/jenetics/engine/Engine.java