Skip to content

Commit 2e2a2fa

Browse files
committed
Changes based on review
1 parent 5d9797d commit 2e2a2fa

File tree

89 files changed

+550
-696
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+550
-696
lines changed
Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<?xml version="1.0"?>
12
<!--
23
Licensed to the Apache Software Foundation (ASF) under one or more
34
contributor license agreements. See the NOTICE file distributed with
@@ -15,30 +16,30 @@
1516
limitations under the License.
1617
-->
1718
<project xmlns="http://maven.apache.org/POM/4.0.0"
18-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
20-
<modelVersion>4.0.0</modelVersion>
21-
<parent>
22-
<groupId>org.apache.commons</groupId>
23-
<artifactId>examples-ga</artifactId>
24-
<version>4.0-SNAPSHOT</version>
25-
</parent>
26-
<artifactId>examples-ga-math-functions</artifactId>
19+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
21+
<modelVersion>4.0.0</modelVersion>
22+
<parent>
23+
<groupId>org.apache.commons</groupId>
24+
<artifactId>examples-ga</artifactId>
25+
<version>4.0-SNAPSHOT</version>
26+
</parent>
27+
<artifactId>examples-ga-math-functions</artifactId>
2728

28-
<properties>
29-
<maven.compiler.source>1.8</maven.compiler.source>
30-
<maven.compiler.target>1.8</maven.compiler.target>
29+
<properties>
30+
<maven.compiler.source>1.8</maven.compiler.source>
31+
<maven.compiler.target>1.8</maven.compiler.target>
3132

32-
<!-- OSGi -->
33-
<commons.osgi.symbolicName>org.apache.commons.math4.examples.ga.mathfunctions</commons.osgi.symbolicName>
34-
<commons.osgi.export>org.apache.commons.math4.examples.ga.mathfunctions</commons.osgi.export>
35-
<!-- Java 9+ -->
36-
<commons.automatic.module.name>org.apache.commons.math4.examples.ga.mathfunctions</commons.automatic.module.name>
37-
<!-- Workaround to avoid duplicating config files. -->
38-
<math.parent.dir>${basedir}/../../..</math.parent.dir>
33+
<!-- OSGi -->
34+
<commons.osgi.symbolicName>org.apache.commons.math4.examples.ga.mathfunctions</commons.osgi.symbolicName>
35+
<commons.osgi.export>org.apache.commons.math4.examples.ga.mathfunctions</commons.osgi.export>
36+
<!-- Java 9+ -->
37+
<commons.automatic.module.name>org.apache.commons.math4.examples.ga.mathfunctions</commons.automatic.module.name>
38+
<!-- Workaround to avoid duplicating config files. -->
39+
<math.parent.dir>${basedir}/../../..</math.parent.dir>
3940

40-
<uberjar.name>examples-ga-mathfunctions</uberjar.name>
41-
<project.mainClass>org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer</project.mainClass>
42-
</properties>
41+
<uberjar.name>examples-ga-mathfunctions</uberjar.name>
42+
<project.mainClass>org.apache.commons.math4.examples.ga.mathfunctions.Dimension2FunctionOptimizer</project.mainClass>
43+
</properties>
4344

4445
</project>

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimension2/Dim2GraphPlotter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
import javax.swing.JFrame;
2424
import javax.swing.JPanel;
2525

26+
import org.apache.commons.math4.ga.internal.stats.PopulationStatisticalSummaryImpl;
2627
import org.apache.commons.math4.ga.listener.ConvergenceListener;
2728
import org.apache.commons.math4.ga.population.Population;
2829
import org.apache.commons.math4.ga.stats.PopulationStatisticalSummary;
29-
import org.apache.commons.math4.ga.stats.internal.PopulationStatisticalSummaryImpl;
3030
import org.jfree.chart.ChartFactory;
3131
import org.jfree.chart.ChartPanel;
3232
import org.jfree.chart.JFreeChart;

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimension2/Dimension2FunctionAdaptiveOptimizer.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import org.apache.commons.math4.ga.AdaptiveGeneticAlgorithm;
2222
import org.apache.commons.math4.ga.chromosome.BinaryChromosome;
2323
import org.apache.commons.math4.ga.chromosome.Chromosome;
24-
import org.apache.commons.math4.ga.convergencecond.StoppingCondition;
25-
import org.apache.commons.math4.ga.convergencecond.UnchangedBestFitness;
24+
import org.apache.commons.math4.ga.convergence.StoppingCondition;
25+
import org.apache.commons.math4.ga.convergence.UnchangedBestFitness;
2626
import org.apache.commons.math4.ga.crossover.OnePointCrossover;
2727
import org.apache.commons.math4.ga.crossover.rategenerator.ConstantCrossoverRateGenerator;
2828
import org.apache.commons.math4.ga.listener.ConvergenceListenerRegistry;
@@ -32,7 +32,8 @@
3232
import org.apache.commons.math4.ga.population.ListPopulation;
3333
import org.apache.commons.math4.ga.population.Population;
3434
import org.apache.commons.math4.ga.selection.TournamentSelection;
35-
import org.apache.commons.math4.ga.utils.ConsoleLogger;
35+
import org.slf4j.Logger;
36+
import org.slf4j.LoggerFactory;
3637

3738
/**
3839
* This class represents an optimizer for a 2-dimensional math function using
@@ -46,6 +47,9 @@ public class Dimension2FunctionAdaptiveOptimizer {
4647
/** size of tournament. **/
4748
private static final int TOURNAMENT_SIZE = 3;
4849

50+
/** instance of logger. **/
51+
private Logger logger = LoggerFactory.getLogger(Dimension2FunctionAdaptiveOptimizer.class);
52+
4953
/**
5054
* Optimizes the 2-dimension fitness function.
5155
* @param args arguments
@@ -55,10 +59,9 @@ public static void main(String[] args) {
5559

5660
final Dimension2FunctionAdaptiveOptimizer optimizer = new Dimension2FunctionAdaptiveOptimizer();
5761

58-
final ConvergenceListenerRegistry<Dimension2Coordinate> convergenceListenerRegistry =
59-
ConvergenceListenerRegistry.getInstance();
60-
convergenceListenerRegistry
61-
.addConvergenceListener(new PopulationStatisticsLogger<Dimension2Coordinate>(Constants.ENCODING));
62+
final ConvergenceListenerRegistry<Dimension2Coordinate> convergenceListenerRegistry = ConvergenceListenerRegistry
63+
.getInstance();
64+
convergenceListenerRegistry.addConvergenceListener(new PopulationStatisticsLogger<Dimension2Coordinate>());
6265
convergenceListenerRegistry
6366
.addConvergenceListener(new Dim2GraphPlotter("Adaptive Convergence Stats", "generation", "fitness"));
6467

@@ -84,11 +87,11 @@ private void optimize(Population<Dimension2Coordinate> initial) {
8487

8588
// best chromosome from the final population
8689
final Chromosome<Dimension2Coordinate> bestFinal = finalPopulation.getFittestChromosome();
87-
final ConsoleLogger consoleLogger = ConsoleLogger.getInstance(Constants.ENCODING);
88-
consoleLogger.log("*********************************************");
89-
consoleLogger.log("***********Optimization Result***************");
9090

91-
consoleLogger.log(bestFinal.toString());
91+
logger.info("*********************************************");
92+
logger.info("***********Optimization Result***************");
93+
94+
logger.info(bestFinal.toString());
9295

9396
}
9497

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimension2/Dimension2FunctionOptimizer.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,21 @@
1717

1818
package org.apache.commons.math4.examples.ga.mathfunctions.dimension2;
1919

20-
import org.apache.commons.math4.ga.crossover.OnePointCrossover;
21-
import org.apache.commons.math4.ga.convergencecond.UnchangedBestFitness;
2220
import org.apache.commons.math4.examples.ga.mathfunctions.utils.Constants;
2321
import org.apache.commons.math4.ga.GeneticAlgorithm;
2422
import org.apache.commons.math4.ga.chromosome.BinaryChromosome;
2523
import org.apache.commons.math4.ga.chromosome.Chromosome;
26-
import org.apache.commons.math4.ga.convergencecond.StoppingCondition;
24+
import org.apache.commons.math4.ga.convergence.StoppingCondition;
25+
import org.apache.commons.math4.ga.convergence.UnchangedBestFitness;
26+
import org.apache.commons.math4.ga.crossover.OnePointCrossover;
2727
import org.apache.commons.math4.ga.listener.ConvergenceListenerRegistry;
2828
import org.apache.commons.math4.ga.listener.PopulationStatisticsLogger;
2929
import org.apache.commons.math4.ga.mutation.BinaryMutation;
3030
import org.apache.commons.math4.ga.population.ListPopulation;
3131
import org.apache.commons.math4.ga.population.Population;
3232
import org.apache.commons.math4.ga.selection.TournamentSelection;
33-
import org.apache.commons.math4.ga.utils.ConsoleLogger;
33+
import org.slf4j.Logger;
34+
import org.slf4j.LoggerFactory;
3435

3536
/**
3637
* This class represents an optimizer for a 2-dimensional math function using
@@ -44,6 +45,9 @@ public class Dimension2FunctionOptimizer {
4445
/** size of tournament. **/
4546
private static final int TOURNAMENT_SIZE = 3;
4647

48+
/** instance of logger. **/
49+
private Logger logger = LoggerFactory.getLogger(Dimension2FunctionAdaptiveOptimizer.class);
50+
4751
/**
4852
* Optimizes the 2-dimension fitness function.
4953
* @param args arguments
@@ -53,10 +57,9 @@ public static void main(String[] args) {
5357

5458
final Dimension2FunctionOptimizer optimizer = new Dimension2FunctionOptimizer();
5559

56-
final ConvergenceListenerRegistry<Dimension2Coordinate> convergenceListenerRegistry =
57-
ConvergenceListenerRegistry.getInstance();
58-
convergenceListenerRegistry
59-
.addConvergenceListener(new PopulationStatisticsLogger<Dimension2Coordinate>(Constants.ENCODING));
60+
final ConvergenceListenerRegistry<Dimension2Coordinate> convergenceListenerRegistry = ConvergenceListenerRegistry
61+
.getInstance();
62+
convergenceListenerRegistry.addConvergenceListener(new PopulationStatisticsLogger<Dimension2Coordinate>());
6063
convergenceListenerRegistry
6164
.addConvergenceListener(new Dim2GraphPlotter("Convergence Stats", "generation", "fitness"));
6265

@@ -73,8 +76,7 @@ public void optimize(Population<Dimension2Coordinate> initial) {
7376
final GeneticAlgorithm<Dimension2Coordinate> ga = new GeneticAlgorithm<>(
7477
new OnePointCrossover<Integer, Dimension2Coordinate>(), Constants.CROSSOVER_RATE,
7578
new BinaryMutation<Dimension2Coordinate>(), Constants.AVERAGE_MUTATION_RATE,
76-
new TournamentSelection<Dimension2Coordinate>(TOURNAMENT_SIZE),
77-
Constants.ELITISM_RATE);
79+
new TournamentSelection<Dimension2Coordinate>(TOURNAMENT_SIZE), Constants.ELITISM_RATE);
7880

7981
// stopping condition
8082
final StoppingCondition<Dimension2Coordinate> stopCond = new UnchangedBestFitness<>(
@@ -85,11 +87,11 @@ public void optimize(Population<Dimension2Coordinate> initial) {
8587

8688
// best chromosome from the final population
8789
final Chromosome<Dimension2Coordinate> bestFinal = finalPopulation.getFittestChromosome();
88-
final ConsoleLogger consoleLogger = ConsoleLogger.getInstance(Constants.ENCODING);
89-
consoleLogger.log("*********************************************");
90-
consoleLogger.log("***********Optimization Result***************");
9190

92-
consoleLogger.log(bestFinal.toString());
91+
logger.info("*********************************************");
92+
logger.info("***********Optimization Result***************");
93+
94+
logger.info(bestFinal.toString());
9395

9496
}
9597

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimension2/legacy/Dimension2FunctionOptimizerLegacy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.apache.commons.math3.genetics.StoppingCondition;
3131
import org.apache.commons.math3.genetics.TournamentSelection;
3232
import org.apache.commons.math4.examples.ga.mathfunctions.utils.Constants;
33-
import org.apache.commons.math4.ga.exception.GeneticException;
33+
import org.apache.commons.math4.ga.internal.exception.GeneticException;
3434

3535
/**
3636
* This class represents an optimizer for a 2-dimensional math function using

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimensionN/DimNGraphPlotter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
import javax.swing.JFrame;
2424
import javax.swing.JPanel;
2525

26+
import org.apache.commons.math4.ga.internal.stats.PopulationStatisticalSummaryImpl;
2627
import org.apache.commons.math4.ga.listener.ConvergenceListener;
2728
import org.apache.commons.math4.ga.population.Population;
2829
import org.apache.commons.math4.ga.stats.PopulationStatisticalSummary;
29-
import org.apache.commons.math4.ga.stats.internal.PopulationStatisticalSummaryImpl;
3030
import org.jfree.chart.ChartFactory;
3131
import org.jfree.chart.ChartPanel;
3232
import org.jfree.chart.JFreeChart;

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimensionN/DimensionNFunctionAdaptiveOptimizer.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import org.apache.commons.math4.ga.AdaptiveGeneticAlgorithm;
2323
import org.apache.commons.math4.ga.chromosome.BinaryChromosome;
2424
import org.apache.commons.math4.ga.chromosome.Chromosome;
25-
import org.apache.commons.math4.ga.convergencecond.StoppingCondition;
26-
import org.apache.commons.math4.ga.convergencecond.UnchangedBestFitness;
25+
import org.apache.commons.math4.ga.convergence.StoppingCondition;
26+
import org.apache.commons.math4.ga.convergence.UnchangedBestFitness;
2727
import org.apache.commons.math4.ga.crossover.OnePointCrossover;
2828
import org.apache.commons.math4.ga.crossover.rategenerator.AdaptiveLinearMaximumRankBasedCrossoverRateGenerator;
2929
import org.apache.commons.math4.ga.listener.ConvergenceListenerRegistry;
@@ -33,7 +33,8 @@
3333
import org.apache.commons.math4.ga.population.ListPopulation;
3434
import org.apache.commons.math4.ga.population.Population;
3535
import org.apache.commons.math4.ga.selection.TournamentSelection;
36-
import org.apache.commons.math4.ga.utils.ConsoleLogger;
36+
import org.slf4j.Logger;
37+
import org.slf4j.LoggerFactory;
3738

3839
/**
3940
* This class represents an optimizer for a 2-dimensional math function using
@@ -47,6 +48,9 @@ public class DimensionNFunctionAdaptiveOptimizer {
4748
/** size of tournament. **/
4849
private static final int TOURNAMENT_SIZE = 4;
4950

51+
/** instance of logger. **/
52+
private Logger logger = LoggerFactory.getLogger(DimensionNFunctionOptimizer.class);
53+
5054
/**
5155
* Optimizes the 2-dimension fitness function.
5256
* @param args arguments
@@ -56,10 +60,9 @@ public static void main(String[] args) {
5660

5761
final DimensionNFunctionAdaptiveOptimizer optimizer = new DimensionNFunctionAdaptiveOptimizer();
5862

59-
final ConvergenceListenerRegistry<DimensionNCoordinate> convergenceListenerRegistry =
60-
ConvergenceListenerRegistry.getInstance();
61-
convergenceListenerRegistry
62-
.addConvergenceListener(new PopulationStatisticsLogger<DimensionNCoordinate>(Constants.ENCODING));
63+
final ConvergenceListenerRegistry<DimensionNCoordinate> convergenceListenerRegistry = ConvergenceListenerRegistry
64+
.getInstance();
65+
convergenceListenerRegistry.addConvergenceListener(new PopulationStatisticsLogger<DimensionNCoordinate>());
6366
convergenceListenerRegistry
6467
.addConvergenceListener(new DimNGraphPlotter("Adaptive Convergence Stats", "generation", "fitness"));
6568

@@ -85,12 +88,10 @@ private void optimize(Population<DimensionNCoordinate> initial) {
8588

8689
// best chromosome from the final population
8790
final Chromosome<DimensionNCoordinate> bestFinal = finalPopulation.getFittestChromosome();
88-
final ConsoleLogger consoleLogger = ConsoleLogger.getInstance(Constants.ENCODING);
89-
90-
consoleLogger.log("*********************************************");
91-
consoleLogger.log("***********Optimization Result***************");
9291

93-
consoleLogger.log(bestFinal.toString());
92+
logger.info("*********************************************");
93+
logger.info("***********Optimization Result***************");
94+
logger.info(bestFinal.toString());
9495

9596
}
9697

commons-math-examples/examples-ga/examples-ga-math-functions/src/main/java/org/apache/commons/math4/examples/ga/mathfunctions/dimensionN/DimensionNFunctionOptimizer.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@
2121
import org.apache.commons.math4.ga.GeneticAlgorithm;
2222
import org.apache.commons.math4.ga.chromosome.BinaryChromosome;
2323
import org.apache.commons.math4.ga.chromosome.Chromosome;
24-
import org.apache.commons.math4.ga.convergencecond.StoppingCondition;
25-
import org.apache.commons.math4.ga.convergencecond.UnchangedBestFitness;
24+
import org.apache.commons.math4.ga.convergence.StoppingCondition;
25+
import org.apache.commons.math4.ga.convergence.UnchangedBestFitness;
2626
import org.apache.commons.math4.ga.crossover.OnePointCrossover;
2727
import org.apache.commons.math4.ga.listener.ConvergenceListenerRegistry;
2828
import org.apache.commons.math4.ga.listener.PopulationStatisticsLogger;
2929
import org.apache.commons.math4.ga.mutation.BinaryMutation;
3030
import org.apache.commons.math4.ga.population.ListPopulation;
3131
import org.apache.commons.math4.ga.population.Population;
3232
import org.apache.commons.math4.ga.selection.TournamentSelection;
33-
import org.apache.commons.math4.ga.utils.ConsoleLogger;
33+
import org.slf4j.Logger;
34+
import org.slf4j.LoggerFactory;
3435

3536
/**
3637
* This class represents an optimizer for a 2-dimensional math function using
@@ -44,6 +45,9 @@ public class DimensionNFunctionOptimizer {
4445
/** size of tournament. **/
4546
private static final int TOURNAMENT_SIZE = 4;
4647

48+
/** instance of logger. **/
49+
private Logger logger = LoggerFactory.getLogger(DimensionNFunctionOptimizer.class);
50+
4751
/**
4852
* Optimizes the 2-dimension fitness function.
4953
* @param args arguments
@@ -53,10 +57,9 @@ public static void main(String[] args) {
5357

5458
final DimensionNFunctionOptimizer optimizer = new DimensionNFunctionOptimizer();
5559

56-
final ConvergenceListenerRegistry<DimensionNCoordinate> convergenceListenerRegistry =
57-
ConvergenceListenerRegistry.getInstance();
58-
convergenceListenerRegistry
59-
.addConvergenceListener(new PopulationStatisticsLogger<DimensionNCoordinate>(Constants.ENCODING));
60+
final ConvergenceListenerRegistry<DimensionNCoordinate> convergenceListenerRegistry = ConvergenceListenerRegistry
61+
.getInstance();
62+
convergenceListenerRegistry.addConvergenceListener(new PopulationStatisticsLogger<DimensionNCoordinate>());
6063
convergenceListenerRegistry
6164
.addConvergenceListener(new DimNGraphPlotter("Convergence Stats", "generation", "fitness"));
6265

@@ -71,8 +74,8 @@ public void optimize(Population<DimensionNCoordinate> initial) {
7174

7275
// initialize a new genetic algorithm
7376
final GeneticAlgorithm<DimensionNCoordinate> ga = new GeneticAlgorithm<>(
74-
new OnePointCrossover<Integer, DimensionNCoordinate>(),
75-
Constants.CROSSOVER_RATE, new BinaryMutation<DimensionNCoordinate>(), Constants.AVERAGE_MUTATION_RATE,
77+
new OnePointCrossover<Integer, DimensionNCoordinate>(), Constants.CROSSOVER_RATE,
78+
new BinaryMutation<DimensionNCoordinate>(), Constants.AVERAGE_MUTATION_RATE,
7679
new TournamentSelection<>(TOURNAMENT_SIZE), Constants.ELITISM_RATE);
7780

7881
// stopping condition
@@ -84,11 +87,10 @@ public void optimize(Population<DimensionNCoordinate> initial) {
8487

8588
// best chromosome from the final population
8689
final Chromosome<DimensionNCoordinate> bestFinal = finalPopulation.getFittestChromosome();
87-
final ConsoleLogger consoleLogger = ConsoleLogger.getInstance(Constants.ENCODING);
88-
consoleLogger.log("*********************************************");
89-
consoleLogger.log("***********Optimization Result***************");
9090

91-
consoleLogger.log(bestFinal.toString());
91+
logger.info("*********************************************");
92+
logger.info("***********Optimization Result***************");
93+
logger.info(bestFinal.toString());
9294

9395
}
9496

0 commit comments

Comments
 (0)