|
From: Gary P. <gpa...@gm...> - 2009-06-24 05:57:33
|
Obtaining the size of the population was possible in two ways. However,
using the getPopulationSize() method was flawed as it returned the size
of the initial population and not the current population.
This method has been removed and you should be using topology.size()
instead. To get the size of the initial population, the
PopulationInitialisationStrategy should be queried for the entity
number.
Signed-off-by: Gary Pampara <gpa...@gm...>
---
.../population/MultiPopulationBasedAlgorithm.java | 6 ------
.../population/PopulationBasedAlgorithm.java | 14 ++++++--------
.../population/SinglePopulationBasedAlgorithm.java | 9 ---------
.../cilib/coevolution/CoevolutionAlgorithm.java | 2 +-
.../GeneticAlgorithmIterationStrategy.java | 2 +-
.../cilib/entity/visitor/SpatialRadiusVisitor.java | 2 +-
.../continuous/decorators/AngleModulation.java | 17 ++++++++++-------
.../DimensionBoundViolationsPerParticle.java | 2 +-
.../cilib/measurement/single/Diversity.java | 2 +-
.../measurement/single/NormalisedDiversity.java | 2 +-
.../single/ParticleBoundViolations.java | 2 +-
.../AverageDiversityAroundAllEntities.java | 2 +-
.../measurement/single/diversity/Diversity.java | 4 ++--
.../SpatialCenterInitialisationStrategy.java | 2 +-
.../RandomSentryDetectionStrategy.java | 2 +-
.../PartialReinitialisationResponseStrategy.java | 2 +-
16 files changed, 29 insertions(+), 43 deletions(-)
diff --git a/src/main/java/net/sourceforge/cilib/algorithm/population/MultiPopulationBasedAlgorithm.java b/src/main/java/net/sourceforge/cilib/algorithm/population/MultiPopulationBasedAlgorithm.java
index b7f0870..a8affab 100644
--- a/src/main/java/net/sourceforge/cilib/algorithm/population/MultiPopulationBasedAlgorithm.java
+++ b/src/main/java/net/sourceforge/cilib/algorithm/population/MultiPopulationBasedAlgorithm.java
@@ -166,12 +166,6 @@ public abstract class MultiPopulationBasedAlgorithm extends PopulationBasedAlgor
}
@Override
- public int getPopulationSize() {
- // TODO: Should this method return the size as the sum of each subpopulation?
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
public Topology<? extends Entity> getTopology() {
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/main/java/net/sourceforge/cilib/algorithm/population/PopulationBasedAlgorithm.java b/src/main/java/net/sourceforge/cilib/algorithm/population/PopulationBasedAlgorithm.java
index ca1c418..b1dfba9 100644
--- a/src/main/java/net/sourceforge/cilib/algorithm/population/PopulationBasedAlgorithm.java
+++ b/src/main/java/net/sourceforge/cilib/algorithm/population/PopulationBasedAlgorithm.java
@@ -50,12 +50,6 @@ public abstract class PopulationBasedAlgorithm extends Algorithm {
public abstract PopulationBasedAlgorithm getClone();
/**
- * Return the size of the current population.
- * @return The size of the population.
- */
- public abstract int getPopulationSize();
-
- /**
* {@inheritDoc}
*/
@Override
@@ -90,11 +84,15 @@ public abstract class PopulationBasedAlgorithm extends Algorithm {
public abstract Object accept(TopologyVisitor visitor);
/**
- *
- * @param initialisationStrategy
+ * Set the initialisation strategy to use for the initialisation of the population.
+ * @param initialisationStrategy The population initialisation strategy to set.
*/
public abstract void setInitialisationStrategy(PopulationInitialisationStrategy initialisationStrategy);
+ /**
+ * Get the current {@code PopulationInitialisationStrategy}.
+ * @return The current {@code PopulationInitialisationStrategy}.
+ */
public abstract PopulationInitialisationStrategy getInitialisationStrategy();
}
diff --git a/src/main/java/net/sourceforge/cilib/algorithm/population/SinglePopulationBasedAlgorithm.java b/src/main/java/net/sourceforge/cilib/algorithm/population/SinglePopulationBasedAlgorithm.java
index 1d72f60..8be5bcb 100644
--- a/src/main/java/net/sourceforge/cilib/algorithm/population/SinglePopulationBasedAlgorithm.java
+++ b/src/main/java/net/sourceforge/cilib/algorithm/population/SinglePopulationBasedAlgorithm.java
@@ -63,15 +63,6 @@ public abstract class SinglePopulationBasedAlgorithm extends PopulationBasedAlgo
protected abstract void algorithmIteration();
/**
- * Get the size of the current population within the algorithm.
- * @return The size of the current Population.
- */
- @Override
- public int getPopulationSize() {
- return this.initialisationStrategy.getEntityNumber();
- }
-
- /**
* {@inheritDoc}
*/
@Override
diff --git a/src/main/java/net/sourceforge/cilib/coevolution/CoevolutionAlgorithm.java b/src/main/java/net/sourceforge/cilib/coevolution/CoevolutionAlgorithm.java
index f89256a..826312f 100755
--- a/src/main/java/net/sourceforge/cilib/coevolution/CoevolutionAlgorithm.java
+++ b/src/main/java/net/sourceforge/cilib/coevolution/CoevolutionAlgorithm.java
@@ -69,7 +69,7 @@ public class CoevolutionAlgorithm extends MultiPopulationBasedAlgorithm {
public int getPopulationSize() {
int sum = 0;
for (PopulationBasedAlgorithm currentAlgorithm : subPopulationsAlgorithms) {
- sum += currentAlgorithm.getPopulationSize();
+ sum += currentAlgorithm.getTopology().size();
}
return sum;
diff --git a/src/main/java/net/sourceforge/cilib/ec/iterationstrategies/GeneticAlgorithmIterationStrategy.java b/src/main/java/net/sourceforge/cilib/ec/iterationstrategies/GeneticAlgorithmIterationStrategy.java
index 4ea4387..e76b3f4 100644
--- a/src/main/java/net/sourceforge/cilib/ec/iterationstrategies/GeneticAlgorithmIterationStrategy.java
+++ b/src/main/java/net/sourceforge/cilib/ec/iterationstrategies/GeneticAlgorithmIterationStrategy.java
@@ -120,7 +120,7 @@ public class GeneticAlgorithmIterationStrategy extends AbstractIterationStrategy
ListIterator<? extends Entity> i = ec.getTopology().listIterator();
int count = 0;
- int size = ec.getTopology().size() - ec.getPopulationSize();
+ int size = ec.getTopology().size() - ec.getInitialisationStrategy().getEntityNumber();
while (i.hasNext() && count < size) {
i.next();
diff --git a/src/main/java/net/sourceforge/cilib/entity/visitor/SpatialRadiusVisitor.java b/src/main/java/net/sourceforge/cilib/entity/visitor/SpatialRadiusVisitor.java
index 0a11876..1746c21 100644
--- a/src/main/java/net/sourceforge/cilib/entity/visitor/SpatialRadiusVisitor.java
+++ b/src/main/java/net/sourceforge/cilib/entity/visitor/SpatialRadiusVisitor.java
@@ -44,7 +44,7 @@ public class SpatialRadiusVisitor extends TopologyVisitor {
double maxDistance = 0.0;
// get number of entities in the population
- int numberOfEntities = ((PopulationBasedAlgorithm) this.currentAlgorithm).getPopulationSize();
+ int numberOfEntities = ((PopulationBasedAlgorithm) this.currentAlgorithm).getTopology().size();
// initialize iterator to be used to calculate spatial center
Iterator<? extends Entity> calculateCenterIterator = ((PopulationBasedAlgorithm) this.currentAlgorithm).getTopology().iterator();
diff --git a/src/main/java/net/sourceforge/cilib/functions/continuous/decorators/AngleModulation.java b/src/main/java/net/sourceforge/cilib/functions/continuous/decorators/AngleModulation.java
index 7855415..6539d0c 100644
--- a/src/main/java/net/sourceforge/cilib/functions/continuous/decorators/AngleModulation.java
+++ b/src/main/java/net/sourceforge/cilib/functions/continuous/decorators/AngleModulation.java
@@ -69,22 +69,25 @@ public class AngleModulation extends ContinuousFunction {
}
/**
- *
+ * {@inheritDoc}
*/
+ @Override
public Object getMinimum() {
return function.getMinimum();
}
/**
- *
+ * {@inheritDoc}
*/
+ @Override
public Object getMaximum() {
return function.getMaximum();
}
/**
- *
+ * {@inheritDoc}
*/
+ @Override
public double evaluate(Vector x) {
String solution = generateBitString(x);
Vector expandedVector = decodeBitString(solution);
@@ -121,7 +124,7 @@ public class AngleModulation extends ContinuousFunction {
/**
*
- * @param funciton
+ * @param decoratedFunciton
*/
public void setFunction(Function decoratedFunciton) {
this.function = decoratedFunciton;
@@ -130,7 +133,7 @@ public class AngleModulation extends ContinuousFunction {
/**
*
- * @param string
+ * @param domain
* @return
*/
public int getRequiredNumberOfBits(DomainRegistry domain) {
@@ -210,8 +213,8 @@ public class AngleModulation extends ContinuousFunction {
* TODO: Move this into a class that will make sense.
*
* @param bitString The bitsting as a string
- * @param i The starting index
- * @param j The ending index
+ * @param startIndex The starting index
+ * @param endIndex The ending index
* @return The value of the bitstring
*/
public double valueOf(String bitString, int startIndex, int endIndex) {
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/DimensionBoundViolationsPerParticle.java b/src/main/java/net/sourceforge/cilib/measurement/single/DimensionBoundViolationsPerParticle.java
index fbec5b4..9f7ad0e 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/DimensionBoundViolationsPerParticle.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/DimensionBoundViolationsPerParticle.java
@@ -79,7 +79,7 @@ public class DimensionBoundViolationsPerParticle implements Measurement {
PopulationBasedAlgorithm populationBasedAlgorithm = (PopulationBasedAlgorithm) algorithm;
int numberOfViolations = 0;
- int populationSize = populationBasedAlgorithm.getPopulationSize();
+ int populationSize = populationBasedAlgorithm.getTopology().size();
for (Entity populationEntity : populationBasedAlgorithm.getTopology()) {
for (Numeric position : (Vector) populationEntity.getCandidateSolution()) {
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/Diversity.java b/src/main/java/net/sourceforge/cilib/measurement/single/Diversity.java
index fa08d4d..03b7e59 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/Diversity.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/Diversity.java
@@ -68,7 +68,7 @@ public class Diversity implements Measurement {
public Type getValue(Algorithm algorithm) {
PopulationBasedAlgorithm populationBasedAlgorithm = (PopulationBasedAlgorithm) algorithm;
- int numberOfEntities = populationBasedAlgorithm.getPopulationSize();
+ int numberOfEntities = populationBasedAlgorithm.getTopology().size();
Iterator<? extends Entity> k = populationBasedAlgorithm.getTopology().iterator();
Entity entity = k.next();
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/NormalisedDiversity.java b/src/main/java/net/sourceforge/cilib/measurement/single/NormalisedDiversity.java
index 6aa8679..9b4310a 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/NormalisedDiversity.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/NormalisedDiversity.java
@@ -83,7 +83,7 @@ public class NormalisedDiversity implements Measurement {
PSO pso = (PSO) algorithm;
- int numberParticles = pso.getPopulationSize();
+ int numberParticles = pso.getTopology().size();
Iterator<Particle> k = pso.getTopology().iterator();
Particle particle = k.next();
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/ParticleBoundViolations.java b/src/main/java/net/sourceforge/cilib/measurement/single/ParticleBoundViolations.java
index eacc2bc..a9b6d21 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/ParticleBoundViolations.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/ParticleBoundViolations.java
@@ -79,7 +79,7 @@ public class ParticleBoundViolations implements Measurement {
Iterator<? extends Entity> populationIterator = populationBasedAlgorithm.getTopology().iterator();
int numberOfViolations = 0;
- int populationSize = populationBasedAlgorithm.getPopulationSize();
+ int populationSize = populationBasedAlgorithm.getTopology().size();
while (populationIterator.hasNext()) {
Entity entity = populationIterator.next();
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/AverageDiversityAroundAllEntities.java b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/AverageDiversityAroundAllEntities.java
index 6c241f8..25ef7fb 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/AverageDiversityAroundAllEntities.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/AverageDiversityAroundAllEntities.java
@@ -47,7 +47,7 @@ public class AverageDiversityAroundAllEntities extends Diversity {
public Type getValue() {
PopulationBasedAlgorithm algorithm = (PopulationBasedAlgorithm) Algorithm.get();
- int numberOfEntities = algorithm.getPopulationSize();
+ int numberOfEntities = algorithm.getTopology().size();
Iterator<? extends Entity> populationCenterIterator = algorithm.getTopology().iterator();
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/Diversity.java b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/Diversity.java
index b4ed96c..e6426be 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/Diversity.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/Diversity.java
@@ -70,9 +70,9 @@ public class Diversity implements Measurement {
public Type getValue(Algorithm algorithm) {
PopulationBasedAlgorithm populationBasedAlgorithm = (PopulationBasedAlgorithm) algorithm;
- int numberOfEntities = populationBasedAlgorithm.getPopulationSize();
+ int numberOfEntities = populationBasedAlgorithm.getTopology().size();
- Vector center = (Vector) populationCenter.getCenter();
+ Vector center = populationCenter.getCenter();
Iterator<? extends Entity> populationIterator = populationBasedAlgorithm.getTopology().iterator();
double distanceSum = 0.0;
diff --git a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/centerinitialisationstrategies/SpatialCenterInitialisationStrategy.java b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/centerinitialisationstrategies/SpatialCenterInitialisationStrategy.java
index 1541e53..4eed204 100644
--- a/src/main/java/net/sourceforge/cilib/measurement/single/diversity/centerinitialisationstrategies/SpatialCenterInitialisationStrategy.java
+++ b/src/main/java/net/sourceforge/cilib/measurement/single/diversity/centerinitialisationstrategies/SpatialCenterInitialisationStrategy.java
@@ -36,7 +36,7 @@ public class SpatialCenterInitialisationStrategy extends CenterInitialisationStr
@Override
public Vector getCenter() {
PopulationBasedAlgorithm algorithm = (PopulationBasedAlgorithm) Algorithm.get();
- int numberOfEntities = algorithm.getPopulationSize();
+ int numberOfEntities = algorithm.getTopology().size();//getPopulationSize();
Iterator<? extends Entity> averageIterator = algorithm.getTopology().iterator();
Entity entity = averageIterator.next();
diff --git a/src/main/java/net/sourceforge/cilib/pso/dynamic/detectionstrategies/RandomSentryDetectionStrategy.java b/src/main/java/net/sourceforge/cilib/pso/dynamic/detectionstrategies/RandomSentryDetectionStrategy.java
index 986ffc7..2fd0c2b 100644
--- a/src/main/java/net/sourceforge/cilib/pso/dynamic/detectionstrategies/RandomSentryDetectionStrategy.java
+++ b/src/main/java/net/sourceforge/cilib/pso/dynamic/detectionstrategies/RandomSentryDetectionStrategy.java
@@ -69,7 +69,7 @@ public class RandomSentryDetectionStrategy<E extends PopulationBasedAlgorithm> e
boolean envChangeOccured = false;
ArrayList<Entity> sentryList = new ArrayList<Entity>();
- int populationSize = algorithm.getPopulationSize();
+ int populationSize = topology.size();
for (int i = 0; i < sentries; i++) {
int index = randomiser.nextInt(populationSize);
diff --git a/src/main/java/net/sourceforge/cilib/pso/dynamic/responsestrategies/PartialReinitialisationResponseStrategy.java b/src/main/java/net/sourceforge/cilib/pso/dynamic/responsestrategies/PartialReinitialisationResponseStrategy.java
index df30398..f81b1b8 100644
--- a/src/main/java/net/sourceforge/cilib/pso/dynamic/responsestrategies/PartialReinitialisationResponseStrategy.java
+++ b/src/main/java/net/sourceforge/cilib/pso/dynamic/responsestrategies/PartialReinitialisationResponseStrategy.java
@@ -64,7 +64,7 @@ public class PartialReinitialisationResponseStrategy<E extends PopulationBasedAl
public void performReaction(E algorithm) {
// Reset positions:
Topology<? extends Entity> topology = algorithm.getTopology();
- int populationSize = algorithm.getPopulationSize();
+ int populationSize = topology.size();
boolean [] used = new boolean[populationSize];
for (int i = 0; i < populationSize; ++i) used[i] = false;
int numParticlesToReinitialise = (int) Math.floor(populationSize * reinitialisationRatio);
--
1.6.2.3
|