New Theme: As you might have noticed, pymoo got a new HTML theme, responsive, and has a better navigation bar.
New Project Structure: This includes some breaking changes. Now, the algorithms are grouped into different categories. For instance,
NSGA2is now available at
New Algorithms: RVEA, AGEMOEA, ES, SRES, ISRES
New Problem Implementation: The new version distinguishes between a
ElementwiseProblem. This has the advantage of handling the two different implementations on an object level.
New Interface: Most algorithms follow the
advanceschema, which makes it very simple to write a for loop-based approach and customizing the algorithm’s default behavior (for instance, a local search)
New Getting Started Guide consisting of five parts explaining better how pymoo can be used. The different alternatives of defining a problem and running an algorithm have been outsourced to the corresponding tutorial pages.
Improved Getting Started Guide with a new interface of providing functions instead of implementing the problem class
New Algorithm: PSO for single-objective problems
New Loop-wise Execution: The algorithm object can be used directly by calling its next method
New Tutorial: An implementation of checkpoints to resume runs
New Test Problems Suites (Constrained): DAS-CMOP and MW (contributed by cyrilpic)
New Operators for Permutations: OrderCrossover and InversionMutation and usage to optimize routes for the TSP and Flowshop problem (contributed by Peng-YM )
New Crossover: Parent Centric Crossover (PCX) which is known to work well on problems where some variables have dependencies on each other
Bugfix: Remove evaluation calls in Problem class during print
New Feature: Riesz s-Energy Method to generate a well-spaced point-set on the unit simplex (reference directions) of arbitrary size.
New Algorithm: An implementation of Hooke and Jeeves Pattern Search (well-known single-objective algorithm)
New Documentation: We have re-arranged the documentation and explain now the minimize interface in more detail.
New Feature: The problem can be parallelized by directly providing a starmapping callable (Contribution by Josh Karpel).
Bugfix: MultiLayerReferenceDirectionFactory did not work because the scaling was disabled.
New Algorithm: CMA-ES (Implementation published by the Author)
New Algorithm: Biased-Random Key Genetic Algorithm (BRKGA)
New Test Problems: WFG
New Termination Criterion: Stop an Algorithm based on Time
New Termination Criterion: Objective Space Tolerance for Multi-objective Problems
New Display: Easily modify the Printout in each Generation
New Callback: Based on a class now to allow to store data in the object.
New Visualization: Videos can be recorded to follow the algorithm’s progress.
Bugfix: NDScatter Plot
Bugfix: Hypervolume Calculations (Vendor Library)
New Algorithm: Nelder Mead with box constraint handling in the design space
New Performance indicator: Karush Kuhn Tucker Proximity Measure (KKTPM)
Added Tutorial: Equality constraint handling through customized repair
Added Tutorial: Subset selection through GAs
Added Tutorial: How to use custom variables
Bugfix: No pf given for problem, no feasible solutions found
Merging pymop into pymoo - all test problems are included
Improved Getting Started Guide
Added Decision Making
Added GD+ and IGD+
New Termination Criteria “x_tol” and “f_tol”
Added Mixed Variable Operators and Tutorial
Refactored Float to Integer Operators
Fixed NSGA-III Normalization Variable Swap
Fixed casting issue with latest NumPy version for integer operators
Removed the dependency of Cython for installation (.c files are delivered now)
New documentation and global interface
New crossovers: Point, HUX
Improved version of DE
New Factory Methods
Several improvements in the code structure
Make the cython support optional
Modifications for pymop 0.2.3
First official release providing NSGA2, NSGA3 and RNSGA3