Added the ability to initialize strategy parameters for the EC. This is
independent of the type of EC.
Signed-off-by: Gary Pampara <gpa...@gm...>
---
src/main/java/net/sourceforge/cilib/ec/EC.java | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/src/main/java/net/sourceforge/cilib/ec/EC.java b/src/main/java/net/sourceforge/cilib/ec/EC.java
index 4da0692..63bf99a 100644
--- a/src/main/java/net/sourceforge/cilib/ec/EC.java
+++ b/src/main/java/net/sourceforge/cilib/ec/EC.java
@@ -29,7 +29,10 @@ import net.sourceforge.cilib.algorithm.population.SinglePopulationBasedAlgorithm
import net.sourceforge.cilib.cooperative.ParticipatingAlgorithm;
import net.sourceforge.cilib.ec.iterationstrategies.GeneticAlgorithmIterationStrategy;
import net.sourceforge.cilib.entity.Entity;
+import net.sourceforge.cilib.entity.EntityType;
import net.sourceforge.cilib.entity.Topology;
+import net.sourceforge.cilib.entity.initialization.InitializationStrategy;
+import net.sourceforge.cilib.entity.initialization.NullInitializationStrategy;
import net.sourceforge.cilib.entity.topologies.GBestTopology;
import net.sourceforge.cilib.problem.Fitness;
import net.sourceforge.cilib.problem.OptimisationProblem;
@@ -48,6 +51,8 @@ public class EC extends SinglePopulationBasedAlgorithm implements ParticipatingA
private IterationStrategy<EC> iterationStrategy;
private Topology<? extends Entity> topology;
+ private InitializationStrategy<Entity> strategyParameterInitialization;
+
/**
* Create a new instance of {@code EC}.
*/
@@ -57,6 +62,8 @@ public class EC extends SinglePopulationBasedAlgorithm implements ParticipatingA
this.iterationStrategy = new GeneticAlgorithmIterationStrategy();
this.topology = new GBestTopology<Individual>();
+
+ this.strategyParameterInitialization = new NullInitializationStrategy<Entity>();
}
/**
@@ -84,6 +91,10 @@ public class EC extends SinglePopulationBasedAlgorithm implements ParticipatingA
@Override
public void performInitialisation() {
this.initialisationStrategy.initialise(this.topology, this.problem);
+
+ for (Entity entity : topology) {
+ this.strategyParameterInitialization.initialize(EntityType.Individual.PHENOTYPES, entity);
+ }
}
/**
@@ -194,4 +205,12 @@ public class EC extends SinglePopulationBasedAlgorithm implements ParticipatingA
this.topology.getBestEntity().calculateFitness();
}
+ public InitializationStrategy<Entity> getStrategyParameterInitialization() {
+ return strategyParameterInitialization;
+ }
+
+ public void setStrategyParameterInitialization(InitializationStrategy<Entity> strategyParameterInitialization) {
+ this.strategyParameterInitialization = strategyParameterInitialization;
+ }
+
}
--
1.6.3.3
|