From f7c43e92c05c283faf82fbd31499b815c431ce5f Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Mon, 14 Mar 2011 14:36:20 +0000 Subject: [PATCH] GA and ES calls InterfaceAdaptOperatorGenerational adaption methods for crossover operators --- src/eva2/server/go/strategies/EvolutionStrategies.java | 7 ++++++- src/eva2/server/go/strategies/GeneticAlgorithm.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/eva2/server/go/strategies/EvolutionStrategies.java b/src/eva2/server/go/strategies/EvolutionStrategies.java index 01b50a21..20bc4cab 100644 --- a/src/eva2/server/go/strategies/EvolutionStrategies.java +++ b/src/eva2/server/go/strategies/EvolutionStrategies.java @@ -162,7 +162,9 @@ public class EvolutionStrategies implements InterfaceOptimizer, java.io.Serializ // parents and result have the same size and correspond per individual ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getMutationOperator()).adaptGenerational(fromPopulation, parents, result, m_UsePlusStrategy); } - + if (parents.getEAIndividual(0).getCrossoverOperator() instanceof InterfaceAdaptOperatorGenerational) { + ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getCrossoverOperator()).adaptGenerational(fromPopulation, parents, result, m_UsePlusStrategy); + } return result; } @@ -217,6 +219,9 @@ public class EvolutionStrategies implements InterfaceOptimizer, java.io.Serializ if (parents.getEAIndividual(0).getMutationOperator() instanceof InterfaceAdaptOperatorGenerational) { ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getMutationOperator()).adaptAfterSelection(getPopulation(), parents); } + if (parents.getEAIndividual(0).getCrossoverOperator() instanceof InterfaceAdaptOperatorGenerational) { + ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getCrossoverOperator()).adaptAfterSelection(getPopulation(), parents); + } // now generate the lambda offsprings nextGeneration = this.generateEvalChildren(parents); // create lambda new ones from mu parents diff --git a/src/eva2/server/go/strategies/GeneticAlgorithm.java b/src/eva2/server/go/strategies/GeneticAlgorithm.java index 785debaf..7a3e11d0 100644 --- a/src/eva2/server/go/strategies/GeneticAlgorithm.java +++ b/src/eva2/server/go/strategies/GeneticAlgorithm.java @@ -118,6 +118,9 @@ public class GeneticAlgorithm implements InterfaceOptimizer, java.io.Serializabl if (parents.getEAIndividual(0).getMutationOperator() instanceof InterfaceAdaptOperatorGenerational) { ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getMutationOperator()).adaptAfterSelection(m_Population, parents); } + if (parents.getEAIndividual(0).getCrossoverOperator() instanceof InterfaceAdaptOperatorGenerational) { + ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getCrossoverOperator()).adaptAfterSelection(m_Population, parents); + } for (int i = 0; i < parents.size(); i++) { tmpIndy = ((AbstractEAIndividual)parents.get(i)); @@ -136,6 +139,9 @@ public class GeneticAlgorithm implements InterfaceOptimizer, java.io.Serializabl if (parents.getEAIndividual(0).getMutationOperator() instanceof InterfaceAdaptOperatorGenerational) { ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getMutationOperator()).adaptGenerational(m_Population, parents, result, true); } + if (parents.getEAIndividual(0).getCrossoverOperator() instanceof InterfaceAdaptOperatorGenerational) { + ((InterfaceAdaptOperatorGenerational)parents.getEAIndividual(0).getCrossoverOperator()).adaptGenerational(m_Population, parents, result, true); + } return result; }