| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent e413018 commit e58005d
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1290,6 +1290,115 @@ Release Date 20 April 2023 | |||
| 1290 | 1290 | selection. | |
| 1291 | 1291 | https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/179 | |
| 1292 | 1292 | ||
| 1293 | + .. _pygad-310: | ||
| 1294 | + | ||
| 1295 | + PyGAD 3.1.0 | ||
| 1296 | + ----------- | ||
| 1297 | + | ||
| 1298 | + Release Date 20 June 2023 | ||
| 1299 | + | ||
| 1300 | + 1. Fix a bug when the initial population has duplciate genes if a | ||
| 1301 | + nested gene space is used. | ||
| 1302 | + | ||
| 1303 | + 2. The ``gene_space`` parameter can no longer be assigned a tuple. | ||
| 1304 | + | ||
| 1305 | + 3. Fix a bug when the ``gene_space`` parameter has a member of type | ||
| 1306 | + ``tuple``. | ||
| 1307 | + | ||
| 1308 | + 4. A new instance attribute called ``gene_space_unpacked`` which has | ||
| 1309 | + the unpacked ``gene_space``. It is used to solve duplicates. For | ||
| 1310 | + infinite ranges in the ``gene_space``, they are unpacked to a | ||
| 1311 | + limited number of values (e.g. 100). | ||
| 1312 | + | ||
| 1313 | + 5. Bug fixes when creating the initial population using ``gene_space`` | ||
| 1314 | + attribute. | ||
| 1315 | + | ||
| 1316 | + 6. When a ``dict`` is used with the ``gene_space`` attribute, the new | ||
| 1317 | + gene value was calculated by summing 2 values: 1) the value sampled | ||
| 1318 | + from the ``dict`` 2) a random value returned from the random | ||
| 1319 | + mutation range defined by the 2 parameters | ||
| 1320 | + ``random_mutation_min_val`` and ``random_mutation_max_val``. This | ||
| 1321 | + might cause the gene value to exceed the range limit defined in the | ||
| 1322 | + ``gene_space``. To respect the ``gene_space`` range, this release | ||
| 1323 | + only returns the value from the ``dict`` without summing it to a | ||
| 1324 | + random value. | ||
| 1325 | + | ||
| 1326 | + 7. Formatting the strings using f-string instead of the ``format()`` | ||
| 1327 | + method. https://github.com/ahmedfgad/GeneticAlgorithmPython/pull/189 | ||
| 1328 | + | ||
| 1329 | + 8. In the ``__init__()`` of the ``pygad.GA`` class, the logged error | ||
| 1330 | + messages are handled using a ``try-except`` block instead of | ||
| 1331 | + repeating the ``logger.error()`` command. | ||
| 1332 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/pull/189 | ||
| 1333 | + | ||
| 1334 | + 9. A new class named ``CustomLogger`` is created in the ``pygad.cnn`` | ||
| 1335 | + module to create a default logger using the ``logging`` module | ||
| 1336 | + assigned to the ``logger`` attribute. This class is extended in all | ||
| 1337 | + other classes in the module. The constructors of these classes have | ||
| 1338 | + a new parameter named ``logger`` which defaults to ``None``. If no | ||
| 1339 | + logger is passed, then the default logger in the ``CustomLogger`` | ||
| 1340 | + class is used. | ||
| 1341 | + | ||
| 1342 | + 10. Except for the ``pygad.nn`` module, the ``print()`` function in all | ||
| 1343 | + other modules are replaced by the ``logging`` module to log | ||
| 1344 | + messages. | ||
| 1345 | + | ||
| 1346 | + 11. The callback functions/methods ``on_fitness()``, ``on_parents()``, | ||
| 1347 | + ``on_crossover()``, and ``on_mutation()`` can return values. These | ||
| 1348 | + returned values override the corresponding properties. The output of | ||
| 1349 | + ``on_fitness()`` overrides the population fitness. The | ||
| 1350 | + ``on_parents()`` function/method must return 2 values representing | ||
| 1351 | + the parents and their indices. The output of ``on_crossover()`` | ||
| 1352 | + overrides the crossover offspring. The output of ``on_mutation()`` | ||
| 1353 | + overrides the mutation offspring. | ||
| 1354 | + | ||
| 1355 | + 12. Fix a bug when adaptive mutation is used while | ||
| 1356 | + ``fitness_batch_size``>1. | ||
| 1357 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/195 | ||
| 1358 | + | ||
| 1359 | + 13. When ``allow_duplicate_genes=False`` and a user-defined | ||
| 1360 | + ``gene_space`` is used, it sometimes happen that there is no room to | ||
| 1361 | + solve the duplicates between the 2 genes by simply replacing the | ||
| 1362 | + value of one gene by another gene. This release tries to solve such | ||
| 1363 | + duplicates by looking for a third gene that will help in solving the | ||
| 1364 | + duplicates. These examples explain how it works. Check `this | ||
| 1365 | + section <https://pygad.readthedocs.io/en/latest/pygad.html#prevent-duplicates-in-gene-values>`__ | ||
| 1366 | + for more information. | ||
| 1367 | + | ||
| 1368 | + 14. Use probabilities to select parents using the rank parent selection | ||
| 1369 | + method. | ||
| 1370 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/discussions/205 | ||
| 1371 | + | ||
| 1372 | + 15. The 2 parameters ``random_mutation_min_val`` and | ||
| 1373 | + ``random_mutation_max_val`` can accept iterables | ||
| 1374 | + (list/tuple/numpy.ndarray) with length equal to the number of genes. | ||
| 1375 | + This enables customizing the mutation range for each individual | ||
| 1376 | + gene. | ||
| 1377 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/discussions/198 | ||
| 1378 | + | ||
| 1379 | + 16. The 2 parameters ``init_range_low`` and ``init_range_high`` can | ||
| 1380 | + accept iterables (list/tuple/numpy.ndarray) with length equal to the | ||
| 1381 | + number of genes. This enables customizing the initial range for each | ||
| 1382 | + individual gene when creating the initial population. | ||
| 1383 | + | ||
| 1384 | + 17. The ``data`` parameter in the ``predict()`` function of the | ||
| 1385 | + ``pygad.kerasga`` module can be assigned a data generator. | ||
| 1386 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/115 | ||
| 1387 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/207 | ||
| 1388 | + | ||
| 1389 | + 18. The ``predict()`` function of the ``pygad.kerasga`` module accepts 3 | ||
| 1390 | + optional parameters: 1) ``batch_size=None``, ``verbose=0``, and | ||
| 1391 | + ``steps=None``. Check documentation of the `Keras | ||
| 1392 | + Model.predict() <https://keras.io/api/models/model_training_apis>`__ | ||
| 1393 | + method for more information. | ||
| 1394 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/issues/207 | ||
| 1395 | + | ||
| 1396 | + 19. The documentation is updated to explain how mutation works when | ||
| 1397 | + ``gene_space`` is used with ``int`` or ``float`` data types. Check | ||
| 1398 | + `this | ||
| 1399 | + section <https://pygad.readthedocs.io/en/latest/pygad.html#limit-the-gene-value-range-using-the-gene-space-parameter>`__. | ||
| 1400 | + https://github.com/ahmedfgad/GeneticAlgorithmPython/discussions/198 | ||
| 1401 | + | ||
| 1293 | 1402 | PyGAD Projects at GitHub | |
| 1294 | 1403 | ======================== | |
| 1295 | 1404 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments