@@ -1774,6 +1774,94 @@ Release Date 08 July 2025
17741774 retrieving the best solution for multi-objective problems.
17751775 https://github.com/ahmedfgad/GeneticAlgorithmPython/pull/331
17761776
1777+ .. _pygad-360 :
1778+
1779+ PyGAD 3.6.0
1780+ -----------
1781+
1782+ 1. Support passing a class to the fitness, crossover, and mutation.
1783+ https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/342
1784+
1785+ 2. A new class called ``Validation `` is created in the new
1786+ ``pygad/utils/validation.py `` script. It has a method called
1787+ ``validate_parameters() `` to validate all the parameters passed
1788+ while instantiating the ``pygad.GA `` class.
1789+
1790+ 3. Refactoring the ``pygad.py `` script by moving a lot of functions and
1791+ methods to other classes in other scripts.
1792+
1793+ 4. The ``summary() `` method was moved to ``Helper `` class in the
1794+ ``pygad/helper/misc.py `` script.
1795+
1796+ 5. The validation code in the ``__init__() `` method of the ``pygad.GA ``
1797+ class is moved to the new ``validate_parameters() `` method in the
1798+ new ``Validation `` class in the new ``pygad/utils/validation.py ``
1799+ script. Moreover, the ``validate_multi_stop_criteria() `` method is
1800+ also moved to the same class.
1801+
1802+ 6. The GA main workflow is moved into the new ``GAEngine `` class in the
1803+ new ``pygad/utils/engine.py `` script. Specifically, these methods
1804+ are moved from the ``pygad.GA `` class to the new ``GAEngine `` class:
1805+
1806+ 1. run()
1807+
1808+ 2. run_loop_head()
1809+
1810+ 3. run_select_parents()
1811+
1812+ 4. run_crossover()
1813+
1814+ 5. run_mutation()
1815+
1816+ 6. run_update_population()
1817+
1818+ 7. initialize_population()
1819+
1820+ 8. cal_pop_fitness()
1821+
1822+ 9. best_solution()
1823+
1824+ 10. round_genes()
1825+
1826+ 7. The ``pygad.GA `` class now extends the two new classes
1827+ ``utils.validation.Validation `` and ``utils.engine.GAEngine ``.
1828+
1829+ 8. The version of the ``pygad.utils `` submodule is upgraded from
1830+ ``1.3.0 `` to ``1.4.0 ``.
1831+
1832+ 9. The version of the ``pygad.helper `` submodule is upgraded from
1833+ ``1.2.0 `` to ``1.3.0 ``.
1834+
1835+ 10. Update the elitism after the evolution ends to fix issue where the
1836+ best solution returned by the ``best_solution() `` method is not
1837+ correct.
1838+ https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/337
1839+
1840+ 11. Fix a bug in calling the ``numpy.reshape() `` function. The parameter
1841+ ``newshape `` is removed since it is no longer supported started from
1842+ NumPy ``2.4.0 ``.
1843+ https://numpy.org/doc/stable/release/2.4.0-notes.html#removed-newshape-parameter-from-numpy-reshape
1844+
1845+ 12. A minor change in the documentation is made to replace the
1846+ ``newshape `` parameter when calling ``numpy.reshape() ``.
1847+
1848+ 13. Fix a bug in the ``visualize/plot.py `` script that causes a warning
1849+ to be given when the plot leged is used with single-objective
1850+ problems.
1851+
1852+ 14. A new method called ``initialize_parents_array() `` is added to the
1853+ ``Helper `` class in the ``pygad/helper/misc.py `` script. It is
1854+ usually called from the methods in the ``ParentSelection `` class in
1855+ the ``pygad/utils/parent_selection.py `` script to initialize the
1856+ parents array.
1857+
1858+ 15. | Add more tests to test:
1859+ | 1) Operators (crossover, mutation, and parent selection).
1860+ | 2) The ``best_solution()`` method.
1861+ | 3) Parallel processing.
1862+ | 4) The ``GANN`` module.
1863+ | 5) The plots created by the ``visualize``.
1864+
17771865PyGAD Projects at GitHub
17781866========================
17791867
0 commit comments