Change Log Report

Total number of changed sets: 1

Changes from an unknown range

Total commits: 195
Total number of files changed: 283

Timestamp Author Details
2026-07-19 15:10:53 Bruno Mahé <bruno@bmahe.net> Apply spotless format
2026-07-19 03:21:35 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2026-07-19 03:21:32 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r6.0
2026-07-17 21:45:03 Bruno Mahé <bruno@bmahe.net> Apply Spotless to ensure code is formatted appropriately
2026-07-17 21:43:53 Bruno Mahé <bruno@bmahe.net> Use openrewrite to s/Validate.notNull/Objects.requireNonNull/g

Command:

```bash
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-static-analysis:RELEASE --define rewrite.activeRecipes=org.openrewrite.staticanalysis.ReplaceApacheCommonsLang3ValidateNotNullWithObjectsRequireNonNull --define rewrite.exportDatatables=true
```
2026-07-17 21:41:32 Bruno Mahé <bruno@bmahe.net> Apply openrewrite common sast rules

Command:

```bash
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-static-analysis:RELEASE --define rewrite.activeRecipes=org.openrewrite.staticanalysis.CommonStaticAnalysis
```
2026-07-17 19:15:13 Bruno Mahé <bruno@bmahe.net> Apply junit openrewrite recipe

Command:

```bash
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-testing-frameworks:RELEASE --define rewrite.activeRecipes=org.openrewrite.java.testing.junit5.JUnit5BestPractices
```
2026-07-17 19:12:52 Bruno Mahé <bruno@bmahe.net> Run openrewrite recipe for Java 25

Command:

```bash
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run --define rewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE --define rewrite.activeRecipes=org.openrewrite.java.migrate.UpgradeToJava25 --define rewrite.exportDatatables=true
```
2026-07-17 19:05:35 Bruno Mahé <bruno@bmahe.net> Ran openrewrite to remove unused imports

Command:
```bash
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.activeRecipes=org.openrewrite.java.RemoveUnusedImports
```
2026-07-16 22:42:41 Bruno Mahé <bruno@bmahe.net> Document Java 25 compatibility

Update CI and contributor guidance for the Java 25 baseline, document the 5.x/6.x compatibility split, and recommend the latest stable 5.3 release in examples.\n\nTests: mvn --batch-mode spotless:check\nTests: mvn --batch-mode clean verify -DskipPITests=true
2026-07-16 22:08:33 Bruno Mahé <bruno@bmahe.net> Start 6.0 development line

Bump the Maven reactor to 6.0-SNAPSHOT after adopting Java 25 as the minimum supported runtime.

Tests: mvn --batch-mode validate
2026-04-30 05:24:06 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2026-04-30 05:24:02 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r5.3
2026-04-29 02:50:34 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2026-04-29 02:50:30 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r5.2
2025-11-24 01:48:38 Bruno Mahé <bruno@bmahe.net> Fix a bug in Terminations::ofMaxtime

It was looking at the nano part rather than converting the entire duration to nanos
2025-11-15 14:12:12 Bruno Mahé <bruno@bmahe.net> Update formatting rules
2025-11-15 12:09:23 Bruno Mahé <bruno@bmahe.net> Add a new maven plugin to ensure consistent formatting
2025-10-01 07:29:27 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2025-10-01 07:29:23 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r5.1
2025-10-01 02:08:23 Bruno Mahé <bruno@bmahe.net> Add support for Java 25.

It required an adjustment related to a change pushed with Java 23.
That changes require us to explicitly declate any annotation processor
instead of being picked up automatically in previous versions of Java.
See for details https://mail.openjdk.org/pipermail/jdk-dev/2024-May/009028.html
2025-09-29 08:53:46 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2025-09-29 08:53:39 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r5.0
2025-09-28 15:45:24 Bruno Mahé <bruno@bmahe.net> Add SelectiveRefinementTournament in the intro doc to the list of selection operators
2025-09-28 15:34:52 Bruno Mahé <bruno@bmahe.net> Fix link to DoubleTournament in intro doc
2025-09-28 15:33:33 Bruno Mahé <bruno@bmahe.net> Remove test strings in asciidoc docs
2025-09-27 18:54:59 Bruno Mahé <bruno@bmahe.net> Move DoubleTournament to GP module.

It is dedicated to genetic programming and there is a more generic
alternative with the Selective Refinement Tournament operator
2025-09-27 00:26:50 Bruno Mahé <bruno@bmahe.net> Mass format the code
2025-09-27 00:24:36 Bruno Mahé <bruno@bmahe.net> Add a new symbolic regression example based on SRT and update the article about bloat issues
2025-09-25 01:06:24 Bruno Mahé <bruno@bmahe.net> Fix SelectiveRefinementTournamentSelector test mock setup

Fixed three failing tests by correcting mock RandomGenerator setup:
- selectWithRefinementApplied: Updated mock to properly sequence tournament selection calls
- selectWithoutRefinement: Fixed mock values to match expected fitness tournament behavior
- selectWithMinimization: Corrected mock setup for minimization optimization logic

The tests were failing because the mock didn't account for all nextInt() calls
made during tournament selection. Each tournament requires multiple random
number generations, and the expected assertions needed to match the actual
selection behavior based on fitness comparators and refinement logic.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 00:53:43 Bruno Mahé <bruno@bmahe.net> Remove unused imports in SRT
2025-09-24 00:52:31 Bruno Mahé <bruno@bmahe.net> Remove example from SRT and formatting
2025-09-24 00:34:19 Bruno Mahé <bruno@bmahe.net> Add comprehensive Javadoc documentation to SelectiveRefinementTournament

- Document class-level functionality with algorithm overview and use cases
- Add detailed method-level documentation for all public methods
- Include code example showing typical usage pattern
- Document validation constraints and builder API
- Provide cross-references to related classes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 00:12:32 Bruno Mahé <bruno@bmahe.net> Clean up codebase and add SelectiveRefinementTournament selection strategy

- Replace Apache Commons Lang3 Validate with Objects.requireNonNull() for null checks
- Remove unnecessary @Value.Style annotations and clean up Tournament class
- Add SelectiveRefinementTournament selection policy with handler and selector implementation
- Add package-info.java files across all modules for improved documentation
- Update test classes to use concrete types instead of Immutable variants
- Add convenient factory methods to InputSpec for easier instantiation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 15:49:20 Bruno Mahé <bruno@bmahe.net> Add utility method for evaluating fitness of single chromosomes

- Add static utility method to simplify fitness evaluation for single chromosomes
- Include comprehensive documentation with usage examples and edge cases
- Add complete test suite covering valid cases, error conditions, and edge cases
- Update TSVExample to demonstrate usage of the new utility method
- Improve code formatting and documentation consistency in Fitness interface

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 13:08:50 Bruno Mahé <bruno@bmahe.net> Optimize children generation by parallelizing the process
2025-09-20 01:03:44 Bruno Mahé <bruno@bmahe.net> Fix bounds overflow bug in IntChromosomeOrderCrossover and add comprehensive test

- Fix chromosome2Idx bounds check that could cause IndexOutOfBoundsException
- Add bounds wrapping logic to properly cycle through second parent chromosome
- Add test case that reproduces the edge case with multiple chromosome2 iterations
- Minor optimization: use cached numAlleles variable instead of method calls

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 00:50:10 Bruno Mahé <bruno@bmahe.net> Enhance evolution listeners with lifecycle hooks and improved documentation

- Added preEvaluation and postEvaluation lifecycle hooks to EvolutionListener interface
- Updated EASystem to call lifecycle hooks for all registered listeners
- Enhanced DefaultEvolutionListener with comprehensive JavaDoc and lifecycle support
- Enhanced EvolutionListenerLogTopN with detailed JavaDoc and lifecycle support
- Added comprehensive test suite for EvolutionListenerLogTopN with 18 test cases
- Updated EvolutionListener interface with improved documentation and examples
- Fixed comparator handling to respect EA configuration fitness comparators
- Enhanced thread safety documentation and implementation notes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 00:04:29 Bruno Mahé <bruno@bmahe.net> Make sure example in README.md is runnable in jshell and add a new stdout based logger
2025-09-18 22:02:36 Bruno Mahé <bruno@bmahe.net> Add some convenience methods in BitChromosome and IntChromosome
2025-09-18 22:02:12 Bruno Mahé <bruno@bmahe.net> Add static constructor for fixed number of swap in SwapMutation
2025-09-18 22:01:18 Bruno Mahé <bruno@bmahe.net> More deprecated Validate.notNull
2025-09-18 22:00:36 Bruno Mahé <bruno@bmahe.net> Formatting for Genotype
2025-09-18 22:00:09 Bruno Mahé <bruno@bmahe.net> Formatting for Fitness
2025-09-18 00:44:10 Bruno Mahé <bruno@bmahe.net> Replace deprecated Validate::notNull with Objects::requireNonNull
2025-09-17 23:12:19 Bruno Mahé <bruno@bmahe.net> Remove unused ExecutorService in EASystemFactory
2025-09-17 23:09:54 Bruno Mahé <bruno@bmahe.net> Replace deprecated Validate::notNull with Objects::requireNonNull
2025-09-17 23:06:59 Bruno Mahé <bruno@bmahe.net> Add virtual thread support for fitness evaluation

- Implement FitnessEvaluatorVirtualThread with one virtual thread per evaluation
- Add EASystemFactory.fromWithVirtualThreads() factory method
- Optimize for I/O-bound fitness functions and large populations
- Maintain compatibility with existing evaluation architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-17 06:19:19 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2025-09-17 06:19:13 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r4.2
2025-09-16 23:42:20 Bruno Mahé <bruno@bmahe.net> Mutator gets passed `generation` to enable implementations to adjust their behavior over time
2025-09-16 23:27:16 Bruno Mahé <bruno@bmahe.net> Introduce a proper PostEvaluationProcessor and ensure it gets passed `generation` to enable implementations to adjust their behavior over time
2025-09-16 23:09:48 Bruno Mahé <bruno@bmahe.net> Bumped major version as the previous commit break interfaces and compatibility

Command run:
```bash
mvn --batch-mode release:update-versions -DdevelopmentVersion=5.0-SNAPSHOT
```
2025-09-16 23:07:05 Bruno Mahé <bruno@bmahe.net> Selector gets passed `generation` to enable implementations to adjust their behavior over time
2025-09-16 22:23:19 Bruno Mahé <bruno@bmahe.net> Improve DoubleTournamentSelectionPolicyHandlerTest to test an verified case
2025-09-16 20:49:13 Bruno Mahé <bruno@bmahe.net> Replace Validate.notNull with Objects.requireNonNull and misc. clean up
2025-09-13 23:29:20 Bruno Mahé <bruno@bmahe.net> Address build issues after upgrade.

The root cause is the update of Apache Maven Site on two fronts:
* It get stuck with the first module. This means that ${basedir} is
stuck to the value of the first module it is executed in and provides
the wrong values. This is the same for every other module specific
variables such as ${maven.multiModuleProjectDirectory}
* There are bugs in the locales handling. And while this is optional, it
won't work without it
2025-09-07 15:48:01 Bruno Mahé <bruno@bmahe.net> Update dependencies
2025-06-21 17:53:11 Bruno Mahé <bruno@bmahe.net> Add tests for PopulationIterator
2025-06-21 17:44:08 Bruno Mahé <bruno@bmahe.net> Improve javadoc for EASystem
2025-06-21 17:40:26 Bruno Mahé <bruno@bmahe.net> Improve testing for EASystem
2025-06-14 21:12:59 Bruno Mahé <bruno@bmahe.net> Complete comprehensive javadoc documentation for core module components

This commit adds extensive javadoc documentation for the remaining core
module classes and interfaces, focusing on high-priority undocumented
components and improving minimal existing documentation.

Major additions include:

- PopulationIterator: Complete documentation with usage patterns and
thread safety considerations for population traversal
- TreeNode: Comprehensive genetic programming tree structure documentation
with examples and performance considerations
- EASystemFactory: Extensive factory method documentation with configuration
guides and usage patterns for different evaluation strategies
- Terminations: Complete utility class documentation with logical
combination examples and termination criteria patterns
- FitnessBulkAsync: Detailed asynchronous batch evaluation interface
documentation with implementation examples and use cases
- GenotypeGenerator: Population initialization documentation with
automatic and custom generation patterns

Enhanced existing documentation:
- FitnessEvaluator: Added comprehensive evaluation strategy documentation
- SelectionPolicy: Detailed selection strategy interface documentation
- ReplacementStrategy: Complete replacement strategy documentation
- Minor cross-reference fixes and HTML compliance improvements

All core module classes now have professional-quality documentation
following consistent patterns with practical examples, performance
considerations, and clear usage guidance.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:50:52 Bruno Mahé <bruno@bmahe.net> Complete core module javadoc documentation with system orchestration and factories

- Enhance EASystem class with comprehensive evolutionary process documentation
- Document floating-point chromosome types: DoubleChromosome, FloatChromosome
- Add detailed ChromosomeFactory interface documentation with factory pattern explanation
- Document EvolutionListener interface for monitoring and callback mechanisms
- Include performance considerations, thread safety, and usage examples
- Provide implementation guidelines and best practices for custom extensions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:46:10 Bruno Mahé <bruno@bmahe.net> Enhance core module javadoc documentation for key interfaces and classes

- Document core evolutionary algorithm interfaces: Mutator, Selector, Termination
- Add comprehensive javadocs for chromosome types: IntChromosome, TreeChromosome
- Document specification interfaces: ChromosomeSpec, IntChromosomeSpec, MutationPolicy
- Include detailed usage examples, design patterns, and cross-references
- Explain strategy pattern implementation and configuration approaches
- Add thread safety, performance, and constraint handling documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:37:04 Bruno Mahé <bruno@bmahe.net> Add comprehensive javadoc documentation for core API classes

- Document core classes: Individual, Genotype, Population, Chromosome, BitChromosome, Fitness
- Add javadocs for GP module: Operation, OperationFactory
- Document MOO module: FitnessVector with Pareto dominance explanation
- Include detailed parameter descriptions, return values, and usage examples
- Add cross-references between related classes
- Explain design patterns, thread safety, and performance considerations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 16:05:00 Bruno Mahé <bruno@bmahe.net> Migrate Validate::notNull to Objects::requireNonNull for IntChromosomeOrderCrossover
2024-09-18 22:53:48 Bruno Mahé <bruno@bmahe.net> Fix javadoc in FitnessEvaluator
2024-06-24 02:36:02 Bruno Mahé <bruno@bmahe.net> Small clean up and quality of life changes
2024-05-19 16:52:35 Bruno Mahé <bruno@bmahe.net> Extract genotype generation handling in its own class for easier maintenance
2024-05-17 00:32:19 Bruno Mahé <bruno@bmahe.net> Use Objects::requireNonNull for bitChromosomeUtils
2024-05-17 00:32:05 Bruno Mahé <bruno@bmahe.net> Add a builder method to ChromosomeFactoryProvider
2024-02-12 11:01:32 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2024-02-12 11:01:30 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r4.1
2023-10-16 01:30:16 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-10-16 01:30:13 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r4.0
2023-10-14 15:01:56 Bruno Mahé <bruno@bmahe.net> Update site for java 21
Fix conflict in generated graphviz diagrams from the docs
2023-10-12 00:26:46 Bruno Mahé <bruno@bmahe.net> Update DistributionUtils to java 21
2023-10-11 21:12:21 Bruno Mahé <bruno@bmahe.net> Update version to 4.0-SNAPSHOT in preparation for the java 21 updates
2023-07-25 03:58:30 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-07-25 03:58:28 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r3.4
2023-07-24 00:56:12 Bruno Mahé <bruno@bmahe.net> Delete unused code
2023-07-16 23:00:21 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-07-16 23:00:18 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r3.3
2023-07-16 20:03:15 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-07-16 20:03:13 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r3.2
2023-07-15 21:50:04 Bruno Mahé <bruno@bmahe.net> Extend auto-loading capabilities to all handlers and migrate MOO handlers auto-loading
2023-06-15 10:19:18 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-06-15 10:19:16 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r3.1
2023-06-14 20:39:24 Bruno Mahé <bruno@bmahe.net> Remove the extra `-` in the main website page.

This is due to doxia trying to compute a title without leaving room for
configuration.
Having investigated, it's easier to sed out the dash than contribute a
patch or fight it
2023-06-14 00:24:32 Bruno Mahé <bruno@bmahe.net> Add ability to set minimum level of offsprings and survivors for elitism and set a default of 1 for survivors.

This helps ensure there will always be at least one survivor in small populations.
2023-04-30 19:06:00 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2023-04-30 19:05:56 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r3.0
2023-04-28 00:40:29 Bruno Mahé <bruno@bmahe.net> Upgrade major version to 3.0-SNAPSHOT
2023-04-23 20:53:28 Bruno Mahé <bruno@bmahe.net> Improve test coverage for the NEAT module
2023-04-17 23:35:12 Bruno Mahé <bruno@bmahe.net> Improve test coverage
2022-12-04 02:10:56 Bruno Mahé <bruno@bmahe.net> Refactor the way the fitness comparator is computed.
2022-11-29 01:23:25 Bruno Mahé <bruno@bmahe.net> Fix typo in Optimization s/MAXIMZE/MAXIMIZE/g
2022-11-29 01:16:56 Bruno Mahé <bruno@bmahe.net> Extract Tournament Selector in its own class
2022-11-23 22:12:15 Bruno Mahé <bruno@bmahe.net> Refactor and export a new method EASystem::createOffsprings to generate offsprings from an existing population
2022-10-16 18:32:54 Bruno Mahé <bruno@bmahe.net> Add basic NEAT implementation
2022-05-23 21:12:41 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2022-05-23 21:12:38 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r2.0
2022-03-25 00:21:56 Bruno Mahé <bruno@bmahe.net> Avoid extra array allocation if not logging at trace level
2022-03-23 22:35:01 Bruno Mahé <bruno@bmahe.net> Add FloatChromosome and DoubleChromosome entries in the doc of core
2022-03-21 01:34:27 Bruno Mahé <bruno@bmahe.net> Add a GPU module for OpenCL based evolution and a sample demonstrating its use for mixture models
2022-01-16 22:13:41 Bruno Mahé <bruno@bmahe.net> EASystem::evaluateOnce should call the registered EvaluationListeners
2022-01-11 23:42:19 Bruno Mahé <bruno@bmahe.net> Add a new method to EASystem to evaluate a specific population
2022-01-04 19:58:00 Bruno Mahé <bruno@bmahe.net> Add support for Float based chromosomes
2022-01-04 17:03:14 Bruno Mahé <bruno@bmahe.net> Provide the generation to the fitness evaluation and more hooks
2022-01-03 16:50:54 Bruno Mahé <bruno@bmahe.net> Make error message more user friendly
2021-12-28 13:24:55 Bruno Mahé <bruno@bmahe.net> Abstract out EAExecutionContext

This will make it easier to extend for GPU specific context
2021-12-25 20:28:32 Bruno Mahé <bruno@bmahe.net> Rename EAConfigurationSync to EAConfiguration

This sets the synchronous configuration as the default one as it's the
easiest one to get started with.
2021-12-25 19:50:13 Bruno Mahé <bruno@bmahe.net> Provide a way for users to compute the fitness in their own asynchronous way
2021-10-06 19:23:21 Bruno Mahé <bruno@bmahe.net> Fix bug with stable fitness termination when minimizing solutions

It needs to use the fitnessComparator to properly deal with the
optimization goal
2021-09-21 03:47:43 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2021-09-21 03:47:41 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.8
2021-09-21 01:24:45 Bruno Mahé <bruno@bmahe.net> Upgrade mvn pmd plugin to 3.15.0 and do not run pitest reports if pitest is disabled
2021-09-21 00:37:51 Bruno Mahé <bruno@bmahe.net> Set major version to 2.0-SNAPSHOT in preparation to the java 17 migration
2021-09-21 00:26:46 Bruno Mahé <bruno@bmahe.net> Update to java 17 and junit 5

Also disable pitest temporarily until it supports java 17
2021-09-19 16:29:56 Bruno Mahé <bruno@bmahe.net> Add a new doc about Clustering and clean up the associated code
2021-09-04 15:14:49 Bruno Mahé <bruno@bmahe.net> Add a support for halting evolution when the fitness does not improve over a specified number of generations
2021-09-04 14:47:55 Bruno Mahé <bruno@bmahe.net> Add Single Point and Multi-Point Arithmetic combination policies

This is implemented for integer and double based chromosomes
2021-08-31 01:49:17 Bruno Mahé <bruno@bmahe.net> Add support for creep mutations
2021-08-29 17:49:00 Bruno Mahé <bruno@bmahe.net> Add support for double in swap mutations
2021-08-29 17:32:44 Bruno Mahé <bruno@bmahe.net> Add a chromosome handler for random mutations in double chromosomes
2021-08-29 17:11:50 Bruno Mahé <bruno@bmahe.net> Add support for Single Point Crossover for double
2021-08-29 17:00:44 Bruno Mahé <bruno@bmahe.net> Add support for Multi Point Crossover for double
2021-08-29 15:16:24 Bruno Mahé <bruno@bmahe.net> Add DoubleChromosome
2021-08-14 05:32:19 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2021-08-14 05:32:16 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.7
2020-11-12 06:31:13 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-11-12 06:31:10 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.6
2020-06-21 02:40:12 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-06-21 02:40:10 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.5
2020-06-19 02:11:51 Bruno Mahé <bruno@bmahe.net> Add Tarpeian Method to fight bloat and documented the Symbolic Regression examples in the samples website
2020-06-13 01:08:34 Bruno Mahé <bruno@bmahe.net> Proportional Tournaments should make the decision of which comparator to use on each tournament
2020-06-12 22:44:08 Bruno Mahé <bruno@bmahe.net> Add a `and` operation for Terminations
2020-06-12 22:43:47 Bruno Mahé <bruno@bmahe.net> Make DoubleTournament::parsimonyTournamentSize a double for convenience
2020-06-12 19:08:13 Bruno Mahé <bruno@bmahe.net> Generalize Tournament comparisons.

This provides the genotype to the comparator in addition to the fitness.
This makes it easier to implement some of the flows without going into multi objectives implementations.
For instance, Double or Partial tournaments do use the size of the program as part of the comparisons.
2020-06-10 22:24:56 Bruno Mahé <bruno@bmahe.net> Add support for Double and proportional tournaments
2020-06-01 20:13:13 Bruno Mahé <bruno@bmahe.net> Add more tests for core module
2020-05-31 18:07:44 Bruno Mahé <bruno@bmahe.net> Add support for SPEA2
2020-05-13 08:22:27 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-05-13 08:22:25 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.4
2020-05-12 01:32:54 Bruno Mahé <bruno@bmahe.net> Add Fitness Sharing on top of a new concept for Post Evaluation processing.

This fix #21
2020-05-12 01:31:41 Bruno Mahé <bruno@bmahe.net> Fix boundary issue in the BitChromosome implementaiton of the MultiPointCrossover
2020-05-11 21:25:39 Bruno Mahé <bruno@bmahe.net> Add a new EvolutionListener which dumps results in a CSV

One of the benefits is it abstracts the user from worrying how to structure the columns
2020-05-09 19:30:04 Bruno Mahé <bruno@bmahe.net> s/Evolution Strategy/Replacement Strategy/g

Replacement Strategy is more clear and appropriate. Based on how _evolution strategy_ is used
in different books, it might be interpreted slightly differently depending on the context,
which could lead to confusion.
2020-05-09 19:07:47 Bruno Mahé <bruno@bmahe.net> Add more doc
2020-05-08 01:51:21 Bruno Mahé <bruno@bmahe.net> Relax the constraint of int chromosome random mutation

We don't have to fail if the mutation wasn't that effective
2020-05-06 22:18:52 Bruno Mahé <bruno@bmahe.net> Multiple points crossover should return both possible combinations
2020-05-06 22:03:19 Bruno Mahé <bruno@bmahe.net> Single point crossover should return all the combinations
2020-05-05 18:52:36 Bruno Mahé <bruno@bmahe.net> Add Delete N Last evolution strategy

Delete N Last replaces the N weakest individuals of the current population with offsprings
2020-05-05 00:10:24 Bruno Mahé <bruno@bmahe.net> Introduce the concept of Evolution Strategy

An Evolution Strategy defines how the next generation is created based on the offsprings and the current generation.

Fix #19
2020-05-03 17:21:49 Bruno Mahé <bruno@bmahe.net> Add more documentation
2020-05-02 14:10:35 Bruno Mahé <bruno@bmahe.net> Minor doc update

This reflects the renaming of the last commit and also fixes a few typos encountered along the way.
2020-05-01 07:11:18 Bruno Mahé <bruno@bmahe.net> Docs and usability tweaks
2020-05-01 02:08:07 Bruno Mahé <bruno@bmahe.net> Rename classes as their names weren't appropriate.

Renamed:
- GenotypeSpec -> EAConfiguration
- GeneticSystem -> EASystem
- GeneticSystemDescriptor -> EAExecutionContext

Evolutionary Algorithm is a more appropriate and generic term given the scope of this project.

Fix #16
2020-04-23 22:23:11 Bruno Mahé <bruno@bmahe.net> Add a new module for Multi-Objective Optimization.

This new module implements NSGA2
2020-04-15 00:47:33 Bruno Mahé <bruno@bmahe.net> Add Ramped Half and Half GP Program generation and abstract fitness function.
2020-04-02 01:39:08 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-04-02 01:39:05 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.3
2020-04-01 23:47:32 Bruno Mahé <bruno@bmahe.net> Compute fitness across multiple threads for speedup
2020-03-27 22:43:04 Bruno Mahé <bruno@bmahe.net> Simplify pit configuration in Apache Maven by moving some of it in the parent pom
2020-03-27 07:30:23 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-03-27 07:30:19 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.2
2020-03-27 05:30:45 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-03-27 05:30:43 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.1
2020-03-26 20:20:04 Bruno Mahé <bruno@bmahe.net> honor maven skipTests flag
2020-03-26 19:53:17 Bruno Mahé <bruno@bmahe.net> Enrich Genetic Programming constructs
2020-01-04 23:12:21 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare for next development iteration
2020-01-04 23:12:19 Gitlab CI <ci@bmahe.net> [maven-release-plugin][ci skip] prepare release r1.0
2020-01-04 13:28:20 Bruno Mahé <bruno@bmahe.net> Move the genetic programming related classes to their own brand new module `gp`
2020-01-03 11:44:37 Bruno Mahé <bruno@bmahe.net> Genetic Programming implementation
2019-11-13 01:50:31 Bruno Mahé <bruno@bmahe.net> Add exponential function to GP math
2019-11-13 01:45:47 Bruno Mahé <bruno@bmahe.net> Fix typo
2019-11-13 01:43:22 Bruno Mahé <bruno@bmahe.net> Make the input terminal pick only the relevant input and add a new rounded coefficient
2019-11-13 01:10:49 Bruno Mahé <bruno@bmahe.net> Rework GP to extract the relationship into a tree chromosome.

Without it, it would make mutations and combination quite difficult to implement
2019-11-02 21:11:19 Bruno Mahé <bruno@bmahe.net> Initial implementation of GP
2019-10-23 01:14:34 Bruno Mahé <bruno@bmahe.net> Implement #1 - the Edge Recombination Crossover combination operator and enable the Swap mutation operator to not use a fix number of swaps
2019-10-21 23:49:47 Bruno Mahé <bruno@bmahe.net> Add a partial mutation operator
2019-10-21 22:41:26 Bruno Mahé <bruno@bmahe.net> Implement combinations of chromosome combinators
2019-10-19 02:37:18 Bruno Mahé <bruno@bmahe.net> Add ability to specify meta-selections which combine multiple selection policies
2019-10-19 01:13:30 Bruno Mahé <bruno@bmahe.net> Make Mutator a functional interface
2019-10-18 19:50:32 Bruno Mahé <bruno@bmahe.net> Add ability to specify meta-mutations which points to other mutation policies

This has required some extensive refactoring to accomodate this capability
2019-09-20 21:21:42 Bruno Mahé <bruno@bmahe.net> Refactor how GeneticSystem gets the fitness function
2019-08-23 21:41:15 Bruno Mahé <bruno@bmahe.net> Fix compilation error
2019-08-23 21:05:42 Bruno Mahé <bruno@bmahe.net> Misc. cleanup and refactoring. Also handle TSPLIB problems
2019-08-22 23:41:23 Bruno Mahé <bruno@bmahe.net> Provide a way to supply population generator
2019-08-22 00:19:27 Bruno Mahé <bruno@bmahe.net> Add Order Crossover (OX) operator and TSV problem sample
2019-08-20 01:33:39 Bruno Mahé <bruno@bmahe.net> Add minimization feature
2019-08-19 21:22:37 Bruno Mahé <bruno@bmahe.net> Remove trailing spaces
2019-08-18 22:53:33 Bruno Mahé <bruno@bmahe.net> Remove unusued variable
2019-08-17 23:44:33 Bruno Mahé <bruno@bmahe.net> Fix typo.
Will kill both classes anyway
2019-08-17 23:28:13 Bruno Mahé <bruno@bmahe.net> Initial commit