I am using an IntegerChromosome
which is an encoding for the actual problem. To determine the fitness I have to decode from the IntegerChromosome
, or more the IntegerGene
values, to the actual base type for the optimization problem. So, e.g. IntegerGene
value 0 means an instance of type Class
with values A
, 1 means an instance of type Class
with values B
and so on. So, 01233210 would translate to ABCDDCBA. Only the latter I can evaluate. I get this information at runtime in a class FitnessInput
.
Therefore I need to pass FitnessInput
to the determination of the fitness function. Looking at a simple example I found that the determination of the fitness, in the eval()
method in the example, takes place in a static method. Is there a concept and a related example how to pass runtime objects to the determination of the fitness rather than overwriting a static variable in the class where fitness()
is implemented?
A second question related to the problem of fitness determination. I found examples where simple data types Integer
, Double
are used for the determination of the fitness. While this is of course reasonable, I would like to return an object to the user for the best phenotype, which contains all intermediate results for the determination of its fitness. I guess this should be possible if my return object implements Comparable
. How can I make use, e.g., of the Function
interface for that?