static <T, G extends Gene<?, G>, C extends Comparable<? super C>>
	Problem<T, G, C> of(
		final Function<T, C> fitness,
		final Codec<T, G> codec
	) {
		return of(fitness, codec, null);
	}
Return a new optimization <i>problem</i> with the given parameters.

@param fitness the problem fitness function
@param codec the evolution engine codec
@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 a new problem object from the given parameters
@throws NullPointerException if one of the arguments is {@code null}
jenetics/src/main/java/io/jenetics/engine/Problem.java