Hello, today I have a question regarding what I can achieve with Open Mole. I have a specific job to do, I’m translating it in a genetic friendly problem here
I can be resumed by : is it possible to mix PSE and NSGA2 algorithm in a workflow ?
Here is what I want to do :
Let’s say we have two elements : an animal specie in a natural environment. They are both represented with different parameters, for example :
The animals have a reproduction rate and an indicator of individual sociability, respectively parameters A and B.
The environment is represented by a temperature and a ratio water/land, parameters C and D.
The model output, given A, B, C and D, the probability of not survival of the specie, named P, it has to be minimized.
The point is, I doesn’t make sense to run a PSE on A, B, C and D, I need to run a PSE on C and D, and a NSGA2 on A and B.
It means that I want:
1 - Given an environment C-D, find the best parameters A,B for the animals to survive.
2 - Explore the environment configurations given by C-D in order to see if there is a single super optimized specie able to survive in all environment or several genetic variations each adapted to a specific environment configuration.
The expected result is that only a few genetic variations (A, B) of the specie is needed in order for it to survive in any environment. But I need to find as much quadruplets (A, B, C, D) as I can.
Conclusion : I hope to run a NSGA2 with input (A, B) and output P and a PSE with input (C, D) and output the optimized (A, B), does it seem possible ? It may want to do something like :
nsga2 =
NSGA2(
mu = 100,
genome = Seq(A in (0.0, 1.0), B in (0.0, 1.0)),
objectives = Seq§
),
pse =
PSE (
genome = Seq(C in (0.0, 1.0), D in (0.0, 1.0)),
objectives = Seq(A in (0.0, 1.0), B in (0.0, 1.0)),
stochastic = Stochastic(seed = seed)
)
val optimization =
SteadyStateEvolution(
algorithm = nsga2,
evaluation = task,
parallelism = 10,
termination = 100
)
val evolution =
SteadyStateEvolution(
algorithm = PSE,
evaluation = optimization,
parallelism = 10,
termination = 100
)
Please let me know if all of this make no sense
Léonard