public static <T, G extends Gene<?, G>, C extends Comparable<? super C>>
	Builder<G, C> builder(final Problem<T, G, C> problem) {
		final var builder = builder(problem.fitness(), problem.codec());
		problem.constraint().ifPresent(builder::constraint);
		return builder;
	}
Create a new evolution {@code Engine.Builder} for the given
{@link Problem}.

@since 3.4

@param problem the problem to be solved by the evolution {@code Engine}
@param <T> the (<i>native</i>) argument type of the problem fitness function
@param <G> the gene type the evolution engine is working with
@param <C> the result type of the fitness function
@return Create a new evolution {@code Engine.Builder}
jenetics/src/main/java/io/jenetics/engine/Engine.java