Skip to content

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, hyperparameter TypeErrors, 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 NumPy Generator/default_rng seed management protocols for concurrent experimentation and runtime evaluation constraints.
  • docs/guide/VISUALIZATION.md: Implemented production-ready matplotlib execution script to extract fitness_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, and social_constant inside PSO.
  • Native integration of the non-separable Trid unimodal benchmark function including its complete theoretical documentation.
  • Verification scripts and operational examples inside /examples directory (01_basic_usage.py, 02_multimodal_comparison.py, etc.).

Changed

  • PyPI Meta & Package Distribution:
  • Updated and hardened pyproject.toml with 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.9 standard.
  • Refactored Module APIs:
  • Migrated internal core structure file from bee.py to abc.py to 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 within src/evobench/__init__.py.
  • Patched critical parameter silences: Documented the limit hyperparameter in ABC and selection_ratio in EDA.
  • Fixed broken cross-references and structural 404 links across EXAMPLES_GALLERY.md and MkDocs navigation configurations.

[2026-05-06]

Added

  • Implemented MkDocs with the Material theme as the core documentation engine.
  • Created mkdocs.yml for 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/, and faq/.
  • Modularized the API reference, separating the EvolutionaryAlgorithm base 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 old benchmarks.md).

[2026-04-16]

Changed

  • Updated BENCHMARKS.md to 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.py into the benchmarks/ package, separating unimodal and multimodal functions.
    Author: NewtonGomez
  • Implemented BENCHMARK_REGISTRY alongside the get_benchmark utility for dynamic mapping of benchmark functions.
    Author: NewtonGomez
  • Modularized statistics.py into the stats/ package, incorporating core_tests, reporter, and analyzer modules.
    Author: NewtonGomez
  • Updated __init__.py files 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_report with significance highlighted via ANSI colors and dynamic alpha thresholds.
    Author: NewtonGomez
  • Maintained base.py at 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.py to 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.py to run_experiments_2.py, utilizing the new experiment engine and configuring all 5 benchmark functions.
    Author: NewtonGomez
  • Rewrote plotter.py logic to prevent bar overlapping between algorithms.
    Author: galvandvictoria-alt
  • Implemented conditional logic for the trid function.
    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 LICENSE file 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 limit hyperparameter.
  • Integrated Estimation of Distribution Algorithm (EDA) with continuous Gaussian modeling in eda.py.
  • Added docs/benchmarks.md with the mathematical framework for Sphere, Rosenbrock, Ackley, Schwefel 1.2, and Trid.

[2026-04-13]

Added

  • Developed the EvolutionaryAlgorithm abstract class to standardize initialization and state tracking.
  • Implemented selection, crossover, and mutation operators for real-coded representations.
  • Initial project commit.