Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and follows the semantic patterns observed in the repository's commit messages.
[0.1.0] - 2026-06-03
Added
- New Advanced Documentation Modules:
docs/faq/TROUBLESHOOTING.md: Added comprehensive guide solving common API imports, hyperparameterTypeErrors, dimensional boundary mismatches, and environment failures.docs/developer/ARCHITECTURE.md: Documented core software engineering mechanics, detailing package layout, the Facade structure at package root, the centralized Benchmark Registry pattern, and custom algorithm subclassing.docs/guide/PERFORMANCE_AND_REPRODUCIBILITY.md: Introduced modern NumPyGenerator/default_rngseed management protocols for concurrent experimentation and runtime evaluation constraints.docs/guide/VISUALIZATION.md: Implemented production-readymatplotlibexecution script to extractfitness_history, aggregate multi-run stats, and plot logarithmic convergence curves.docs/GLOSSARY.md: Added explicit, academically rigorous definitions for Evolutionary Computation terms (e.g., selection pressure, convergence, population dynamics) to ensure user onboarding consistency.- API Enhancements:
- Full parameter exposure and code-level bindings for
inertia_weight,cognitive_constant, andsocial_constantinsidePSO. - Native integration of the non-separable
Tridunimodal benchmark function including its complete theoretical documentation. - Verification scripts and operational examples inside
/examplesdirectory (01_basic_usage.py,02_multimodal_comparison.py, etc.).
Changed
- PyPI Meta & Package Distribution:
- Updated and hardened
pyproject.tomlwith strict build backend declarations, rich metadata, explicit Trove Classifiers (Topic :: Scientific/Engineering :: Mathematics), and structural repository/documentation index mapping. - Enforced a uniform minimum Python specification boundary across the environment, moving from fragmented version pointers to a strict
Python >= 3.9standard. - Refactored Module APIs:
- Migrated internal core structure file from
bee.pytoabc.pyto align with the Artificial Bee Colony algorithm naming convention.
Fixed
- Critical Architecture Bottlenecks:
- Fixed incomplete Facade Pattern implementation by declaring all operational entrypoints (
PSO,EDA,ABC, algorithms, and benchmarks) explicitly withinsrc/evobench/__init__.py. - Patched critical parameter silences: Documented the
limithyperparameter inABCandselection_ratioinEDA. - Fixed broken cross-references and structural 404 links across
EXAMPLES_GALLERY.mdand MkDocs navigation configurations.
[2026-05-06]
Added
- Implemented MkDocs with the Material theme as the core documentation engine.
- Created
mkdocs.ymlfor centralized project configuration and navigation management. - Integrated MathJax and Arithmatex extensions to support high-quality LaTeX mathematical rendering.
- Added a new English/Spanish landing page (
index.md) with a professional overview.
Refactored
- Major Documentation Overhaul: Migrated from a monolithic file structure to a hierarchical, multi-page architecture.
- Organized documentation into specialized directories:
getting-started/,reference/,theory/,developer/,changelog/, andfaq/. - Modularized the API reference, separating the
EvolutionaryAlgorithmbase class from specific algorithm implementations (PSO, EDA, ABC). - Relocated mathematical foundations and statistical decision flow theories to the
theory/section.
Removed
- Cleaned up the root directory by removing redundant source files (
API_REFERENCE.md,THEORY_AND_STATS.md,DOCS_STRUCTURE.md, and oldbenchmarks.md).
[2026-04-16]
Changed
- Updated
BENCHMARKS.mdto provide clearer definitions of benchmark function characteristics.
Author: NewtonGomez - Modified the statistical analysis view towards a more minimalist approach.
Author: NewtonGomez - Added dependencies to
pyproject.toml.
Author: NewtonGomez
Refactored
- Modularized project architecture to improve maintainability, scalability, and structural clarity.
Author: NewtonGomez - Relocated and split
benchmarks.pyinto thebenchmarks/package, separating unimodal and multimodal functions.
Author: NewtonGomez - Implemented
BENCHMARK_REGISTRYalongside theget_benchmarkutility for dynamic mapping of benchmark functions.
Author: NewtonGomez - Modularized
statistics.pyinto thestats/package, incorporatingcore_tests,reporter, andanalyzermodules.
Author: NewtonGomez - Updated
__init__.pyfiles in algorithms, benchmarks, and stats to expose a cleaner Facade-style API.
Author: NewtonGomez - Standardized naming conventions using aliases for algorithms (
PSO,EDA,ABC) and short names for benchmarks (sphere,ackley).
Author: NewtonGomez - Improved
stat_reportwith significance highlighted via ANSI colors and dynamic alpha thresholds.
Author: NewtonGomez - Maintained
base.pyat the project root as the global architectural contract.
Author: NewtonGomez - Cleaned up local type hints and reinforced internal documentation with docstrings and detailed comments in English.
Author: NewtonGomez
[2026-04-15]
Added
- Added
experiment_engine.pyto automate experiment execution, JSON serialization, and dynamic data unpacking (get_evaluated_benchmarks,unpack_fitness_results).
Author: NewtonGomez - Implemented
roulette_wheel_selection_index()in the operators module to return scalar integers instead of NumPy arrays.
Author: NewtonGomez
Fixed
- Corrected selection logic in
bee.py(Artificial Bee Colony), resolving the ambiguous value error (ValueError) during the Onlooker Bee phase.
Author: NewtonGomez
Changed
- Updated the experiment runner, migrating from
run_experiments.pytorun_experiments_2.py, utilizing the new experiment engine and configuring all 5 benchmark functions.
Author: NewtonGomez - Rewrote
plotter.pylogic to prevent bar overlapping between algorithms.
Author: galvandvictoria-alt - Implemented conditional logic for the
tridfunction.
Author: galvandvictoria-alt - Improved comments in
run_experiments.py.
Author: NewtonGomez - Removed a comment in the ABC algorithm to enable histogram and boxplot visualization.
Author: galvandvictoria-alt
Documentation
- Added initial project documentation in
README.md, including overview, installation, and quickstart guide.
Author: NewtonGomez - Established the base architecture for the
docs/directory for future integration with MkDocs/Sphinx.
Author: NewtonGomez - Added the
LICENSEfile under the MIT license.
Author: NewtonGomez
[2026-04-14]
Added
- Implemented the Artificial Bee Colony (ABC) algorithm in
bee.py. - Incorporated the three main algorithm phases: Employed Bees, Onlooker Bees, and Scout Bees.
- Added a trial counter mechanism to manage abandonment and prevent local optima stagnation via the
limithyperparameter. - Integrated Estimation of Distribution Algorithm (EDA) with continuous Gaussian modeling in
eda.py. - Added
docs/benchmarks.mdwith the mathematical framework for Sphere, Rosenbrock, Ackley, Schwefel 1.2, and Trid.
[2026-04-13]
Added
- Developed the
EvolutionaryAlgorithmabstract class to standardize initialization and state tracking. - Implemented selection, crossover, and mutation operators for real-coded representations.
- Initial project commit.