1 package net.bmahe.genetics4j.neat.spec.mutation;
2
3 import org.apache.commons.lang3.Validate;
4 import org.immutables.value.Value;
5
6 import net.bmahe.genetics4j.core.spec.mutation.MutationPolicy;
7
8 @Value.Immutable
9 public abstract class AddNode implements MutationPolicy {
10
11 @Value.Parameter
12 public abstract double populationMutationProbability();
13
14 @Value.Check
15 protected void check() {
16 Validate.inclusiveBetween(0.0, 1.0, populationMutationProbability());
17 }
18
19
20
21
22
23
24
25
26
27 public static AddNode of(final double populationMutationProbability) {
28 return ImmutableAddNode.of(populationMutationProbability);
29 }
30
31 }