Skip to content

Commit 0302b13

Browse files
committed
add changelog
1 parent 2652329 commit 0302b13

1 file changed

Lines changed: 179 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# Changelog
2+
3+
All notable changes to Gradient-Free-Optimizers are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
For detailed release notes, see [GitHub Releases](https://github.com/SimonBlanke/Gradient-Free-Optimizers/releases).
9+
10+
## [Unreleased]
11+
12+
## [1.9.0] - 2026-01-15
13+
14+
Major release focusing on dependency reduction. scikit-learn and scipy are now optional dependencies with native Python implementations available for all core functionality.
15+
16+
### Added
17+
- Private array backend (`_array_backend`) for pure Python array operations without NumPy
18+
- Private math backend (`_math_backend`) for mathematical operations without SciPy
19+
- Native `DecisionTreeRegressor` implementation
20+
- Native `ExtraTreesRegressor` implementation
21+
- Native `RandomForestRegressor` implementation
22+
- Native `GradientBoostingRegressor` implementation
23+
- `SimpleProgressBar` class as fallback when tqdm is unavailable
24+
- Sigma self-adaptation for `EvolutionStrategyOptimizer`
25+
- `convergence_threshold` parameter for Powell's Method
26+
- Type hints to all optimizer classes and `Search` class
27+
- Comprehensive docstrings for all optimizer classes
28+
- Sphinx documentation with ReadTheDocs integration
29+
- API tests for all optimizer categories
30+
31+
### Changed
32+
- scikit-learn is now an optional dependency (native estimators used by default)
33+
- SciPy is now an optional dependency
34+
- tqdm is now an optional dependency
35+
- Complete reimplementation of Powell's Method with improved line search algorithms
36+
- Reworked README with new 3D optimization animation
37+
- Consolidated CI workflows into single `ci.yml`
38+
- Restructured test directory (`tests/test_main/`, `tests/test_internal/`, etc.)
39+
- Improved error messages with actionable suggestions
40+
41+
### Removed
42+
- `BayesianRidge` estimator
43+
- Linear GP option from Gaussian Process regressor
44+
45+
### Fixed
46+
- Golden section search algorithm in Powell's Method
47+
- Mutable default argument anti-pattern (`constraints=[]` changed to `constraints=None`)
48+
- Missing `@functools.wraps` on internal decorators
49+
- Division by zero edge case in print-times
50+
- Bug in evaluate method
51+
52+
## [1.8.1] - 2025-12-29
53+
54+
Re-release of v1.8.0 with updated package metadata.
55+
56+
## [1.8.0] - 2025-12-29
57+
58+
### Added
59+
- Python 3.14 support
60+
- Package keywords and classifiers for improved discoverability
61+
62+
### Changed
63+
- Dropped Python 3.9 support
64+
- Test performance improvements
65+
66+
### Fixed
67+
- Sporadic test failures in CI
68+
69+
## [1.7.2] - 2025-09-21
70+
71+
### Added
72+
- Native `GaussianProcessRegressor` implementation with RBF kernel
73+
- Native `KernelDensityEstimator` implementation
74+
- `Result` dataclass for structured evaluation results
75+
- `ObjectiveAdapter` class for cleaner objective function handling
76+
- Toy test functions (Sphere, Ackley) for benchmarking
77+
- Python 3.13 support
78+
79+
### Changed
80+
- Refactored memory/caching system using `CachedObjectiveAdapter`
81+
- Refactored `ResultsManager` for improved result collection
82+
- New optimization stopping implementation
83+
- Performance improvements to `normalize` function (up to 90% faster)
84+
- Performance improvements to `LipschitzFunction.find_best_slope` (81% faster)
85+
86+
### Fixed
87+
- Issue with maximize/minimize objective function handling
88+
89+
## [1.7.1] - 2024-12-07
90+
91+
### Added
92+
- Comprehensive docstrings for all optimizer classes
93+
94+
### Changed
95+
- Dropped Python 3.8 support
96+
- Improved type hints for `constraints`, `sampling`, and `initialize` parameters
97+
- Refactored `move_climb` method to `CoreOptimizer`
98+
- Cleaned up class inheritance and removed unused arguments
99+
100+
## [1.6.0] - 2024-08-14
101+
102+
### Added
103+
- Python 3.12 support
104+
- NumPy v2 and Pandas v2 compatibility
105+
- PyTorch optimizer integration example
106+
107+
### Changed
108+
- Migrated from `setup.py` to `pyproject.toml`
109+
- Moved source code into `src/` directory structure
110+
111+
## [1.5.0] - 2024-07-22
112+
113+
### Added
114+
- `GeneticAlgorithmOptimizer` for evolutionary optimization
115+
- `DifferentialEvolutionOptimizer` for population-based optimization
116+
- `mutation_rate` and `crossover_rate` parameters for evolutionary algorithms
117+
118+
### Changed
119+
- Refactored stochastic hill climbing transition logic
120+
- Moved discrete recombination method into base class
121+
122+
### Fixed
123+
- Bug in constrained optimization
124+
125+
## [1.4.0] - 2024-05-11
126+
127+
### Added
128+
- `OrthogonalGridSearchOptimizer` for systematic grid search
129+
- `direction` parameter for grid search optimizer
130+
- Search-space value validation
131+
132+
### Changed
133+
- Dropped Python 3.5, 3.6, and 3.7 support
134+
- Replaced `nth_iter` with `nth_trial` for clearer semantics
135+
- Pandas v2 compatibility improvements
136+
137+
### Fixed
138+
- Probability calculation bug in stochastic hill climbing
139+
- Bugs in stochastic hill climbing and simulated annealing
140+
141+
## [1.3.0] - 2023-04-11
142+
143+
### Added
144+
- Constrained optimization support for most optimizers
145+
- Constrained optimization examples and documentation
146+
147+
### Changed
148+
- Refactored optimizer and search classes into separate APIs
149+
150+
### Fixed
151+
- Evaluation call from parent class
152+
153+
## [1.2.0] - 2022-10-20
154+
155+
### Added
156+
- `SpiralOptimization` algorithm
157+
- `LipschitzOptimizer` algorithm
158+
- `DirectAlgorithm` (DIRECT) for global optimization
159+
- Backend API for low-level optimizer control
160+
- Python 3.10 and 3.11 support
161+
162+
### Changed
163+
- Major refactoring for more consistent optimizer behavior
164+
- Improved low-level API
165+
- Refactored SMBO optimizers into unified pattern
166+
- Refactored expected improvement into separate module
167+
- Core optimizer moved into separate module
168+
169+
### Fixed
170+
- Rotation matrix calculation
171+
- Various fixes for DIRECT algorithm
172+
- Grid search GCD calculation
173+
174+
## [1.0.1] - 2021-12-01
175+
176+
### Fixed
177+
- Bug in grid search
178+
- Random move and random state handling
179+
- Various stability improvements from v1.0.0 release

0 commit comments

Comments
 (0)