Releases: MOEAFramework/MOEAFramework
Version 4.2
-
Adds the
U-NSGA-III
algorithm, which replaces NSGA-III's random selection with niche-based tournament selection
to increase selection pressure. -
Adds the
AGE-MOEA-II
algorithm, which uses the (estimated) geometry of the Pareto front when assigning survival
scores / fitness to solutions. -
Adds the 15 problems from the MaF test problem suite.
-
Adds classes in
org.moeaframework.core.attribute
for reading and writing attributes. -
Improves argument validation with the new
Validate
class, enabling simpler and more expressive conditions along
with detailed error messages:Validate.that("arg", arg).isGreaterThan(0);
Version 4.1
-
Adds
DefaultNormalizer
andDefaultEpsilons
classes with the ability to override the defaults with
problem-specific, custom settings. These settings can be set either by callingoverride
or loaded from the
properties file. -
ThreadLocalMersenneTwister
is now the default random number generator used byPRNG
. Consequently,
PRNG
can be used by multi-threaded or parallel codes directly. -
Markdown and Latex support when saving or displaying tables:
algorithm.getResult().save(TableFormat.Latex, new File("result.tex"));
-
Expands CI testing to include Windows and MacOS.
-
Improvements to
ExternalProblem
, including:-
Adds Builder to simplify configuring the executable, optional sockets, and other settings:
new ExternalProblem.Builder().withCommand("problem.exe").withDebugging()
-
Added retries and shutdown timeout, which can be configured through the builder or the global properties:
org.moeaframework.problem.external.enable_debugging = true org.moeaframework.problem.external.retry_attempts = 5 org.moeaframework.problem.external.retry_delay = 1 org.moeaframework.problem.external.shutdown_timeout = 10
-
Adds Winsock support on Windows, enabling socket communication on all supported platforms.
-
Adds brackets "[0,1,2]" and braces "{0,3}" to permutation and subset string encodings, respectively, for
improved parsing and validation.
-
Version 4.0
-
Bumps minimum supported Java version to 17. This is a long-term support (LTS) release with an end-of-life of
Sept 2029. -
As this is a major update, a number of breaking changes have been introduced, including removing deprecated
methods and reorganizing classes. Most classes still exists, but have been moved to different packages.
Please update imports to fix any compilation issues. -
Other notable changes include:
-
Adds ProblemBuilder tool that generates templates for writing problems in C, C++, Fortran, Java,
and Python. See the Writing Native Problems documentation for more details. -
Adds the
Indicators
class to simplify calculating performance indicators. -
Moves all documentation online, replacing the Beginner's Guide PDF.
-
Version 3.11
-
Removes the
setInitialPopulationSize
method and correspondingpopulationSize
parameter
from DBEA. Instead, the population size is dervied from thedivisions
parameter. -
Improved online documentation
Version 3.10
-
Fixes bug #394 where changing the aggregate fitness comparator used by a GeneticAlgorithm would
not update the comparator used by its selection operator. -
Adds ZCAT test problem suite.
-
Adds feasibility ratio calculator that estimates the difficulty of constrained problems by measuring
the percentage of randomly-generated solutions that are feasible. -
Updates all dependencies to their latest versions.
Version 3.9
-
Support BinaryIntegerVariable in externally-defined problems. Namely, this sends the integer value
to the program which can be read using the new MOEA_Read_int function in our C/C++ library. -
Allow configuring a custom reference set for the Executor / Analyzer / Instrumenter.
-
Adds LSMOP test problem suite.
-
Adds Constraint class to make calculating constraint values easier:
solution.setConstraint(0, Constraint.lessThanOrEqual(c1, 0.0));
-
Moves initialization and selection operators into separate packages.
Version 3.8
-
Adds termination condition based on distance to target solution.
-
Fixes bug in UniformDesignGenerator
-
Improves implicit conversion from real values to integers when loading properties. This also
fixes a bug where NormalBoundaryDivisions errored when passing in a real value for the number of
divisions.
Version 3.7
- Removes the PISA algorithms and moves them to a separate plugin at https://github.com/MOEAFramework/PISA-Plugin.
The new plugin supports automatically downloading and configuring the PISA selectors. If you are using PISA
algorithms and want to upgrade to 3.7, simply add thepisa-plugin
Maven dependency to yourpom.xml
or copy the JAR into thelib/
folder.
Version 3.6
-
Fixes bug in R indicators where the approximation set was not being normalized.
-
Redesigns and simplifies how state and resumability work. All algorithms can now be resumed using the
Checkpoints wrapper. -
Adds single-objective simulated annealing (SA) algorithm.
Version 3.5
-
Fixes bug causing
variation can not be null
errors when attempting to setup an algorithm with a problem
containing mixed decision variable types. -
Adds
DistributedProblem.from(...)
method to make it easier to parallelize function evaluationstry (Problem problem = DistributedProblem.from(new UF1())) { NSGAII algorithm = new NSGAII(problem); algorithm.run(10000); }
-
Improvements to online documentation and examples, adds details for parallelization.