Releases: edwinb-ai/BioMetaheuristics.jl
Bug fixes and minor improvements
-
There seemed to be a problem with the search bounds for Simulated Annealing, where the bounds were not taken into account at all.
-
Also, the PSO implementation received some minor tweaks. Now the velocities are always clamped between the range [-v_max, v_max].
API implementation
In this new version a new interface has been implemented.
- You can now call the
optimize
function and it will automatically dispatch to either a population-based or trajectory-based implementation. - The documentation, as well as the docstrings, have been updated to reflect this new API. A new example using multithreaded execution has been added.
- The user can now pass a single RNG object is they so wish, or leave it to the API to create a truly randomly seeded one.
- Tests were refactored to reflect this change.
Type refactoring
In this new release, the type hierarchy has been streamlined, removing unnecessary types.
Also, more documentation and code base formatting was performed.
Lastly, code coverage was extend to cover 100% of the code base.
Documentation and CI
The CI for GitHub Actions was broken when dealing with the documentation, so this minor release fixes that.
Also, some docstrings were not displaying correctly and some private functions were in the documentation.
In this minor release, we fixed both issues.
Documentation refactoring and general fixes
Several fixes were performed in this minor release.
- Documentation refactoring, with examples built in the main manual.
- Some code formatting and streamlining.
- Updated dependencies.
- Migrated all the continuous integration workflow to GitHub Actions.
Minor fix to documentation
Added a clarification of where to find the examples in the documentation in the main README file.
Documentation refactoring
In this release, the documentation was refactored to include more examples, with even more detailed instructions, for several use cases.
Also, an API to pass a seed to the implementation in Newtman.jl
was added. This enables full reproducibility of results.
Generalized Simulated Annealing
-
Implementation of the Generalized Simulated Annealing algorithm is now available.
-
The following benchmark functions are also available:
- Goldstein-Price
- Beale
- Lévy
-
All the benchmark functions are now in a separate module called
Newtman.TestFunctions
to avoid cluttering the namespace. This allows users to use the functions whenever they are needed instead of importing them every time.
New algorithm and benchmark function
-
Implementation of the classic simulated annealing algorithm, with its corresponding tests.
-
Added the Rosenbrock function to the benchmark functions.
Simplified API
-
Removed parallel implementation for PSO as this is not needed in the main API
-
Worked on some RNG performance fixes to improve statistical independence
-
Refined some tests for the new simplified API