diff --git a/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java b/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java index 0e970b5a3a79c529b983f7d09284e495355754d0..7a2e479ca8739186c6468010eead645418383e6e 100644 --- a/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java +++ b/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java @@ -95,9 +95,11 @@ public abstract class AbstractSolution */ @Override public final int compareTo(final AbstractSolution solution) { - if (this.getFitnessScore() > solution.getFitnessScore()) { + if (Double.compare(this.getFitnessScore(), + solution.getFitnessScore()) > 0) { return 1; - } else if (this.getFitnessScore() < solution.getFitnessScore()) { + } else if (Double.compare(this.getFitnessScore(), + solution.getFitnessScore()) < 0) { return -1; } else { return 0; diff --git a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java index d609c1123799517b93cc5b415ccffcdc892bece1..0f3a9d90ce89237539d2900912fdf58c2bc7b342 100644 --- a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java +++ b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java @@ -57,18 +57,4 @@ public class SolutionDistance extends AbstractSolution { } - /** - * @param solution - * @return int - */ - - public final int compareTo(final SolutionDistance solution) { - if (this.fitness_score > solution.getFitnessScore()) { - return 1; - } else if (this.fitness_score < solution.getFitnessScore()) { - return -1; - } else { - return 0; - } - } } diff --git a/src/main/java/be/cylab/java/wowa/training/Trainer.java b/src/main/java/be/cylab/java/wowa/training/Trainer.java index 8413884e53ddd2632568d806ca1838ae0bae0e4b..1e49289650d428f03b935ef9b88678da85dc0fd0 100644 --- a/src/main/java/be/cylab/java/wowa/training/Trainer.java +++ b/src/main/java/be/cylab/java/wowa/training/Trainer.java @@ -117,7 +117,7 @@ public class Trainer { final int number_of_weight, final int population_size) { int number_of_random_element = population_size / 2; - if (Math.pow(number_of_weight, 2) < population_size / 2) { + if (Math.pow(number_of_weight, 2) < population_size / (double) 2) { number_of_random_element = (int) (population_size - Math.pow(number_of_weight, 2)); } diff --git a/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java b/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java index ecf538e1c9342f155a129457522719c334d81bb9..b70de00cf35a51c9fa5de4f3d146285759c7ce41 100644 --- a/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java +++ b/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java @@ -31,7 +31,6 @@ public class TrainerParameters { private Logger logger; private int population_size; - //private int crossover_rate; private int mutation_rate; private int selection_method; private int number_of_parents; @@ -130,10 +129,9 @@ public class TrainerParameters { throw new IllegalArgumentException( "Crossover rate must be between 1 and 99"); } - //this.crossover_rate = crossover_rate; int nbr_parents = Math.round(this.population_size * (1 - (float) crossover_rate / 100)); - if (nbr_parents % 2 == 1) { + if (nbr_parents % 2 != 0) { nbr_parents++; } this.number_of_parents = nbr_parents;