1 package net.bmahe.genetics4j.core.spec;
2
3 import java.util.Objects;
4
5 import net.bmahe.genetics4j.core.selection.RouletteWheelSelectionPolicyHandler;
6 import net.bmahe.genetics4j.core.spec.ImmutableEAExecutionContext.Builder;
7
8
9
10
11 public class EAExecutionContexts {
12
13 private EAExecutionContexts() {
14 }
15
16 public static <T extends Comparable<T>> Builder<T> standard() {
17 return ImmutableEAExecutionContext.builder();
18 }
19
20
21
22
23
24
25
26
27
28 public static <T extends Number & Comparable<T>> Builder<T> enrichForScalarFitness(final Builder<T> builder) {
29 Objects.requireNonNull(builder);
30
31 builder.addSelectionPolicyHandlerFactories(
32 gsd -> new RouletteWheelSelectionPolicyHandler<T>(gsd.randomGenerator()));
33 return builder;
34 }
35
36
37
38
39
40
41
42
43 public static <T extends Number & Comparable<T>> Builder<T> forScalarFitness() {
44
45 final Builder<T> builder = ImmutableEAExecutionContext.builder();
46 return enrichForScalarFitness(builder);
47 }
48 }