-
Support passing a class to the fitness, crossover, and mutation. #342
-
A new class called
Validationis created in the newpygad/utils/validation.pyscript. It has a method calledvalidate_parameters()to validate all the parameters passed while instantiating thepygad.GAclass. -
Refactoring the
pygad.pyscript by moving a lot of functions and methods to other classes in other scripts. -
The
summary()method was moved toHelperclass in thepygad/helper/misc.pyscript. -
The validation code in the
__init__()method of thepygad.GAclass is moved to the newvalidate_parameters()method in the newValidationclass in the newpygad/utils/validation.pyscript. Moreover, thevalidate_multi_stop_criteria()method is also moved to the same class. -
The GA main workflow is moved into the new
GAEngineclass in the newpygad/utils/engine.pyscript. Specifically, these methods are moved from thepygad.GAclass to the newGAEngineclass:
1.run()
1.run_loop_head()
2.run_select_parents()
3.run_crossover()
4.run_mutation()
5.run_update_population()
2.initialize_population()
3.cal_pop_fitness()
4.best_solution()
5.round_genes() -
The
pygad.GAclass now extends the two new classesutils.validation.Validationandutils.engine.GAEngine. -
The version of the
pygad.utilssubmodule is upgraded from1.3.0to1.4.0. -
The version of the
pygad.helpersubmodule is upgraded from1.2.0to1.3.0. -
The version of the
pygad.visualizesubmodule is upgraded from1.1.0to1.1.1. -
The version of the
pygad.nnsubmodule is upgraded from1.2.1to1.2.2. -
The version of the
pygad.cnnsubmodule is upgraded from1.1.0to1.1.1. -
The version of the
pygad.torchgasubmodule is upgraded from1.4.0to1.4.1. -
The version of the
pygad.kerasgasubmodule is upgraded from1.3.0to1.3.1. -
Update the elitism after the evolution ends to fix issue where the best solution returned by the
best_solution()method is not correct. #337 -
Fix a bug in calling the
numpy.reshape()function. The parameternewshapeis removed since it is no longer supported started from NumPy2.4.0. https://numpy.org/doc/stable/release/2.4.0-notes.html#removed-newshape-parameter-from-numpy-reshape -
A minor change in the documentation is made to replace the
newshapeparameter when callingnumpy.reshape(). -
Fix a bug in the
visualize/plot.pyscript that causes a warning to be given when the plot leged is used with single-objective problems. -
A new method called
initialize_parents_array()is added to theHelperclass in thepygad/helper/misc.pyscript. It is usually called from the methods in theParentSelectionclass in thepygad/utils/parent_selection.pyscript to initialize the parents array. -
Add more tests about:
1. Operators (crossover, mutation, and parent selection).
2. Thebest_solution()method.
3. Parallel processing.
4. TheGANNmodule.
5. The plots created by thevisualize. -
Instead of using repeated code for converting the data type and rounding the genes during crossover and mutation, the
change_gene_dtype_and_round()method is called from thepygad.helper.misc.Helperclass. -
Fix some documentation issues. #336
-
Update the documentation to reflect the recent additions and changes to the library structure.