Releases: hydrosolutions/ctrl-freak
Release list
v0.2.1
Adds an optional evaluate_batch hook on ga() and nsga2() for whole-population ((pop_size, n_params)) batched fitness/objective evaluation, bypassing the per-individual evaluate/lift loop. Behavior is byte-for-byte identical when omitted (the default). See CHANGELOG.md for details.
v0.2.0
ctrl-freak 0.2.0
This release ships a full validation / correctness benchmark suite establishing that ctrl-freak's GA (single-objective) and NSGA-II (multi-objective) implementations match the established libraries pymoo and DEAP under fair, aligned conditions.
Highlights
- Cross-library parity benchmarks across single- and multi-objective problems (ZDT / DTLZ families), with a shared ported SBX operator and an aligned NSGA-II configuration for an apples-to-apples comparison.
- Committed 30-seed results with overlapping-variance equivalence statistics, a rendered report, and a published Validation docs page: https://hydrosolutions.github.io/ctrl-freak/validation/
Compatibility
- No breaking changes. The optimizer API and core are unchanged since 0.1.0 — 0.2.0 is purely additive (the validation/benchmark suite). Existing code continues to work unmodified.
Full changelog: https://github.com/hydrosolutions/ctrl-freak/blob/main/CHANGELOG.md
v0.1.0
First public release of ctrl-freak — a pure-numpy genetic algorithm framework for single-objective (GA) and multi-objective (NSGA-II) optimization.
Highlights:
- ga() and nsga2() with pluggable selection/survival strategies
- Bounded canonical NSGA-II SBX crossover + polynomial mutation
- Single-seed reproducibility (one seed reproduces the entire run)
- Optional joblib-parallel evaluation
- Typed (py.typed), numpy-style docs, MIT licensed
See the changelog: https://github.com/hydrosolutions/ctrl-freak/blob/main/CHANGELOG.md