1 package net.bmahe.genetics4j.samples.clustering;
2
3 import java.util.Objects;
4
5 import org.apache.commons.lang3.Validate;
6
7 import net.bmahe.genetics4j.core.Genotype;
8 import net.bmahe.genetics4j.core.chromosomes.DoubleChromosome;
9
10 public class PhenotypeUtils {
11
12
13 public static double[][] toPhenotype(final Genotype genotype) {
14 Objects.requireNonNull(genotype);
15 Validate.isTrue(genotype.getSize() > 0);
16
17 final var doubleChromosome = genotype.getChromosome(0, DoubleChromosome.class);
18
19 final int numClusters = doubleChromosome.getSize() / 2;
20 final double[][] clusters = new double[numClusters][2];
21
22 for (int i = 0; i < numClusters; i++) {
23 clusters[i][0] = doubleChromosome.getAllele(i * 2);
24 clusters[i][1] = doubleChromosome.getAllele(i * 2 + 1);
25 }
26
27 return clusters;
28 }
29
30 }